<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dnbd3.git/src/kernel/dnbd3_main.h, branch fuse_cow_2</title>
<subtitle>Distributed Network Block Device 3 --rewrite for Kernel 3.x</subtitle>
<id>https://git.openslx.org/dnbd3.git/atom/src/kernel/dnbd3_main.h?h=fuse_cow_2</id>
<link rel='self' href='https://git.openslx.org/dnbd3.git/atom/src/kernel/dnbd3_main.h?h=fuse_cow_2'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/'/>
<updated>2021-06-16T09:41:00+00:00</updated>
<entry>
<title>[KERNEL] Add support for Linux kernels without blk-mq (e.g. CentOS 7)</title>
<updated>2021-06-16T09:41:00+00:00</updated>
<author>
<name>Manuel Bentele</name>
</author>
<published>2021-06-15T10:26:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca'/>
<id>urn:sha1:75e9f49df8ff7f00a2c28ee1e30f1d87bcce4bca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Removes duplicate word 'of' in license headers</title>
<updated>2021-04-16T06:20:06+00:00</updated>
<author>
<name>Manuel Bentele</name>
</author>
<published>2021-04-16T06:20:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=f7cca217a3696980a72564f57bad4597ddbe9df5'/>
<id>urn:sha1:f7cca217a3696980a72564f57bad4597ddbe9df5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Implement best_count logic for load balancing</title>
<updated>2021-03-26T12:44:47+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2021-03-26T12:44:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=3a7891e26aec9e5d15d21a78cb317926d96f51e9'/>
<id>urn:sha1:3a7891e26aec9e5d15d21a78cb317926d96f51e9</id>
<content type='text'>
Similar logic already exists in the fuse client:
Count how many times in a row a server was fastest when
measuring RTTs, and lower the switching threshold
more the higher the count gets.
</content>
</entry>
<entry>
<title>[KERNEL] Use sockaddr instead of dnbd3_host_t where possible</title>
<updated>2021-03-24T15:07:15+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2021-03-24T15:07:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=c73bc9413da8bc964d82e0a58525c7280cc1a456'/>
<id>urn:sha1:c73bc9413da8bc964d82e0a58525c7280cc1a456</id>
<content type='text'>
Convert dnbd3_host_t to struct sockaddr immediately when
adding alt servers, so we don't have to convert it every time
we establish a connection. Additionally we can now use %pISpc
in printf-like functions instead of having if/else constructs
whenever we want to print an address.
</content>
</entry>
<entry>
<title>[KERNEL] Synchronous add/remove of alt-servers via IOCTL</title>
<updated>2021-03-23T15:00:55+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2021-03-23T15:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=b9c11caeb31d1066979b8554f565f24abfe475f6'/>
<id>urn:sha1:b9c11caeb31d1066979b8554f565f24abfe475f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Refactor code to satisfy Linux kernel code style</title>
<updated>2021-03-12T13:52:47+00:00</updated>
<author>
<name>Manuel Bentele</name>
</author>
<published>2021-03-12T13:52:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=52a4ac3ede9b5bbc8015105d6fd5524c70e9bef5'/>
<id>urn:sha1:52a4ac3ede9b5bbc8015105d6fd5524c70e9bef5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Fix several connect/disconnect race conditions</title>
<updated>2020-11-19T12:48:14+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2020-11-19T12:48:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=a1caec1f2bebe09f685716f13d7b55f84d8a8145'/>
<id>urn:sha1:a1caec1f2bebe09f685716f13d7b55f84d8a8145</id>
<content type='text'>
Previously disconnect was protected against concurrent calls, but connect
wasn't. It was easy to crash the kernel when calling connect and
disconnect IOCTLs in a tight loop concurrently.
A global lock was introduced to make sure only one caller can change the
connection state at a time. dev-&gt;connection_lock needs to be aquired
when calling dnbd3_net_connect or _disconnect.
This atomic_t based locking mechanism should be turned into a mutex in a
next step, relying on mutex_trylock for cases where we don't have the
cmpxchg-schedule() loop.

Along the way it was noticed that the send/receive timeouts don't apply
to kernel_connect, which might have been the case in older 3.x kernel
versions. A crude workaround using nonblocking connect has been
introduced to emulate this, but a clean solution for this is welcomed.

Also, devices are now properly closed on module unload.
</content>
</entry>
<entry>
<title>[KERNEL] add manual switching of dnbd3-server to specified server</title>
<updated>2020-11-10T06:42:40+00:00</updated>
<author>
<name>Manuel Bentele</name>
</author>
<published>2020-11-10T06:42:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=5a430387ffc52d1520e3c6bbc7ef664b282c9644'/>
<id>urn:sha1:5a430387ffc52d1520e3c6bbc7ef664b282c9644</id>
<content type='text'>
This patch adds the feature to manually switch the dnbd3-server to a
specified server. The switching is implemented by the use of the ioctl
call SWITCH.
</content>
</entry>
<entry>
<title>[KERNEL]: change probing logic to select first available server</title>
<updated>2020-11-09T05:54:54+00:00</updated>
<author>
<name>Manuel Bentele</name>
</author>
<published>2020-11-09T05:54:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=03db52349890088b8ceaec17736bbd2d0769b52a'/>
<id>urn:sha1:03db52349890088b8ceaec17736bbd2d0769b52a</id>
<content type='text'>
This patch changes the probing logic to select the first available
dnbd3-server submitted by the ioctl OPEN call. All other specified
dnbd3-servers are added to the alternative server list and do not have
to be available.
</content>
</entry>
<entry>
<title>[KERNEL, CLIENT]: submit and probe multiple dnbd3-server with ioctl OPEN</title>
<updated>2020-11-06T11:44:43+00:00</updated>
<author>
<name>Manuel Bentele</name>
</author>
<published>2020-11-06T11:44:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=ef92307fd49e75482c7599caf68685afc1807512'/>
<id>urn:sha1:ef92307fd49e75482c7599caf68685afc1807512</id>
<content type='text'>
The ioctl OPEN call for DNBD3 devices exposed by the dnbd3 Linux kernel
module, is extended with a fixed array of dnbd3 hosts. The fixed array
allows the dnbd3-client to submit host information (IP address and port)
of multiple dnbd3-servers. This information is used to probe all
submitted dnbd3-servers and add them to the alternative dnbd3-server
list. If at least one dnbd3-server is not reachable, the OPEN ioctl call
will abort with an error code.
</content>
</entry>
</feed>
