From: Emerson Busson <emersonbusson@gmail.com>
To: linux-block@vger.kernel.org
Cc: axboe@kernel.dk, linux-kernel@vger.kernel.org, emersonbusson@gmail.com
Subject: [PATCH v3 0/2] drivers/block: add RamShared hardware-accelerated VRAM block driver
Date: Thu, 17 Sep 2026 22:39:53 -0300 [thread overview]
Message-ID: <20260917223828.ramshared-v3-0-cover@gmail.com> (raw)
This patch series introduces the RamShared hardware-accelerated
block driver (drivers/block/ramshared).
Following RFC v1 and RFC v2 discussions on linux-block@vger.kernel.org,
this series promotes RamShared to formal PATCH v3 submission with
hardened IOCTL boundary controls, 64-bit DMA masks, linear error
unwinding, and empirical multi-tier stress qualification.
RamShared maps discrete GPU video memory (VRAM) apertures over direct
PCIe DMA to provide an ultra-low latency, non-rotational block device
with a synchronous .rw_page swapout path.
Key Design Highlights:
1. blk-mq multi-queue parallel request processing with atomic gendisk
allocation.
2. Synchronous .rw_page fast-path in block_device_operations for
zero-allocation swapout under direct memory reclaim pressure.
3. PCIe AER error handling with pci_error_handlers to contain link
resets.
4. Comprehensive multi-kernel compatibility across 5.15 LTS through
6.18+ and mainline 7.0+ (Ubuntu 24.04 LTS HWE stack).
v2 -> v3 changes:
- drivers/block/ramshared/control.c: add dedicated IOCTL control
operations with strict user-input validation and bounds checking.
- drivers/block/ramshared/main.c: enforce 64-bit DMA mask with
dma_set_mask_and_coherent() during PCI device initialization.
- drivers/block/ramshared/main.c: add safe linear error unwinding with
pci_clear_master() and cleanup on add_disk() failure.
- drivers/block/ramshared/queue.c: map internal driver status codes
cleanly to blk_status_t semantic Linux block layer errors.
- drivers/block/ramshared/compat.h: add set_capacity_and_notify()
cross-kernel compatibility shim for modern kernel block layers.
- drivers/block/ramshared/Makefile: link control.o into driver object.
- Promote from RFC to formal PATCH v3 for upstream consideration.
v1 -> v2 changes:
- drivers/block/ramshared/queue.c: use check_shl_overflow() to prevent
64-bit integer overflow when shifting sector to byte offsets.
- drivers/block/ramshared/queue.c: enforce PCIe BAR0 boundary validation
before memory-mapped I/O.
- drivers/block/ramshared/main.c: ensure pci_clear_master() is called
during linear error unwinding in probe failure paths and device
teardown.
- drivers/block/ramshared/main.c: clamp queue_depth module parameter
within [1..4096].
- drivers/block/ramshared/ramshared.h: wrap function declarations to
conform to 80-column kernel coding style.
Testing & Quality Gates:
- checkpatch.pl --strict: 0 errors, 0 checks.
- sparse semantic address-space analysis: PASS (__iomem verified).
- Multi-tier saturation benchmark: 9,840 MB swap holding continuous
dirty page write cycles under PCIe Direct DMA with 0.00 ms access
latency and PASS_ZERO_PANIC stability verdict.
- Memory stress battery: sustained 11.61 GB/s PCIe reclaim throughput
with 0.0% PSI stalls and 0 kernel OOM kills.
Signed-off-by: Emerson Busson <emersonbusson@gmail.com>
next reply other threads:[~2026-09-18 1:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 1:39 Emerson Busson [this message]
2026-09-18 1:39 ` [PATCH v3 1/2] drivers/block/ramshared: add hardware-accelerated VRAM block driver Emerson Busson
2026-09-18 1:39 ` [PATCH v3 2/2] drivers/block: integrate ramshared driver into build system Emerson Busson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260917223828.ramshared-v3-0-cover@gmail.com \
--to=emersonbusson@gmail.com \
--cc=axboe@kernel.dk \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.