<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dnbd3.git/src/kernel/blk.c, branch isfant</title>
<subtitle>Distributed Network Block Device 3 --rewrite for Kernel 3.x</subtitle>
<id>https://git.openslx.org/dnbd3.git/atom/src/kernel/blk.c?h=isfant</id>
<link rel='self' href='https://git.openslx.org/dnbd3.git/atom/src/kernel/blk.c?h=isfant'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/'/>
<updated>2025-06-25T12:04:32+00:00</updated>
<entry>
<title>[KERNEL] Add CentOS 9.6 support</title>
<updated>2025-06-25T12:04:32+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2025-06-25T12:04:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=4c7320e259da02fed8098f41f8b856310ec41c1f'/>
<id>urn:sha1:4c7320e259da02fed8098f41f8b856310ec41c1f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Fix compile for 6.11+</title>
<updated>2024-12-11T14:06:50+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2024-12-11T14:06:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=02b42e07e79e607fea718cb94bc791967b6e17f8'/>
<id>urn:sha1:02b42e07e79e607fea718cb94bc791967b6e17f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Fix build on 5.15 kernels &gt;= 5.15.132</title>
<updated>2024-03-15T15:17:23+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2024-03-15T15:17:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=3febe4eb2cc3527818739a7591a23b4ae1f0eb3f'/>
<id>urn:sha1:3febe4eb2cc3527818739a7591a23b4ae1f0eb3f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Set fake RTT to 500ms on manual server switch</title>
<updated>2024-01-18T16:03:14+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2024-01-18T16:03:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=fe9c6275b38c95f10aba2fd25977e57721df5d4e'/>
<id>urn:sha1:fe9c6275b38c95f10aba2fd25977e57721df5d4e</id>
<content type='text'>
5ms was apparently way too low and lead to frequent switch-aways from
the local dnbd3-server on heavy load during bootup.
</content>
</entry>
<entry>
<title>[KERNEL] Add Rocky 9 support</title>
<updated>2023-06-07T16:11:43+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2023-02-06T15:44:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=050865679a0582c4c7e112f3cce2368421f062fd'/>
<id>urn:sha1:050865679a0582c4c7e112f3cce2368421f062fd</id>
<content type='text'>
Co-authored-by: Jonathan Bauer &lt;jonathan.bauer@rz.uni-freiburg.de&gt;
Co-authored-by: Manuel Messner &lt;mm@skelett.io&gt;
</content>
</entry>
<entry>
<title>[KERNEL] Update for Linux 6.1</title>
<updated>2023-01-09T17:03:24+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2023-01-09T17:03:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=b5aafc8f1bad5e90a9dbd51adb45127d2e26dd7a'/>
<id>urn:sha1:b5aafc8f1bad5e90a9dbd51adb45127d2e26dd7a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] Adapt to Linux 5.18</title>
<updated>2022-06-14T15:23:19+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2022-06-14T15:23:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=a59e4a337a82e32612fbc7fdd2e93287b826abf2'/>
<id>urn:sha1:a59e4a337a82e32612fbc7fdd2e93287b826abf2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[KERNEL] IOCTL_SWITCH: Always boost/fake RTT values</title>
<updated>2022-03-24T14:03:34+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2022-03-24T14:03:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=9abe9e6b16e3e460ac4e8e5c1fd75d8745d8fea7'/>
<id>urn:sha1:9abe9e6b16e3e460ac4e8e5c1fd75d8745d8fea7</id>
<content type='text'>
Even if we didn't switch because we already use the requested server.
</content>
</entry>
<entry>
<title>[KERNEL] Fix possible stall when switching server</title>
<updated>2022-03-04T13:05:46+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2022-03-04T13:05:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=9c0d227bbaf261888280da649ddc63fc750cac22'/>
<id>urn:sha1:9c0d227bbaf261888280da649ddc63fc750cac22</id>
<content type='text'>
If we switch to a different server when we only have something in
the send list but nothing in the recv list, the send worker would
not have gotten invoked. Now we unconditionally trigger the send
worker when asked to re-queue any pending requests.
</content>
</entry>
<entry>
<title>[KERNEL] Refactor to use workqueues and blk-mq only</title>
<updated>2022-02-18T20:34:55+00:00</updated>
<author>
<name>Simon Rettberg</name>
</author>
<published>2022-02-12T22:56:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/dnbd3.git/commit/?id=eb2876f6542af2bfa47c7a6905ecc4f81f1d2ad3'/>
<id>urn:sha1:eb2876f6542af2bfa47c7a6905ecc4f81f1d2ad3</id>
<content type='text'>
Using workqueues frees us from having to manage the lifecycle
of three dedicated threads. Discovery (alt server checks) and
sending keepalive packets is now done using work on the
power efficient system queue. Sending and receiving happens
via dedicated work queues with higher priority.

blk-mq has also been around for quite a while in the kernel,
so switching to it doesn't hurt backwards compatibility.
As the code is now refactored to work more as blk-mq is designed,
backwards compatibility even improved while at the same time
freeing us from an arsenal of macros that were required to make
the blk-mq port look and feel like the old implementation.
For example, the code now compiles on CentOS 7 with kernel 3.10
without requiring special macros to detect the heavily modified
RedHat kernel with all its backported features.

A few other design limitations have been rectified along the way,
e.g. switching to another server now doesn't internally disconnect
from the current one first, which theoretically could lead to a
non-working setup, if the new server isn't reachable and then -
because of some transient network error - switching back also
fails. As the discover-thread was torn down from the disconnect
call, the connection would also not repair itself eventually.
we now establish the new connection in parallel to the old one,
and only if that succeeds do we replace the old one with it,
similar to how the automatic alt-server switch already does it.
</content>
</entry>
</feed>
