Skip to content

[Feature Request] Enable CONFIG_BLK_DEV_UBLK=m in the AL2027 kernel (7.1) #6

Description

@rndjams

Summary

Please enable the userspace block driver (ublk) as a loadable module —
CONFIG_BLK_DEV_UBLK=m — in the Amazon Linux 2027 kernel. It is currently disabled in the
AL2027 preview (kernel 7.1):

# CONFIG_BLK_DEV_UBLK is not set

Related

This mirrors amazonlinux/amazon-linux-2023#1077, where the Amazon Linux team indicated they
would "likely enable it starting from kernels 6.18." AL2027 ships kernel 7.1 (> 6.18), so
this request is to confirm AL2027 is included in that change and to track it in the
AL2027 tracker.

Use case

A userspace block device workload built on ublk — the io_uring-based framework for
implementing block devices in userspace via ublksrv. It's the modern, high-performance
successor to NBD/TCMU-style approaches for custom storage backends and disaggregated/network
storage frontends. Without the in-tree module enabled, AL2027 requires an out-of-tree module
build on every host.

Requested change

CONFIG_BLK_DEV_UBLK=m

For both x86_64 and aarch64. Enabling during the preview window is strongly preferred so
it's present at GA.

Impact / risk

  • Tristate module — compiled, not loaded by default → no boot-time, memory, or
    attack-surface cost on hosts that don't use it.
  • Mainline since 6.0, actively maintained; AL2027's 7.1 source already contains the
    driver (drivers/block/ublk_drv.c).
  • Depends only on io_uring/block infrastructure already enabled in the AL kernel.
  • Already enabled as a module in other Amazon-built kernels.

Verified workaround (in the meantime)

Confirmed on AL2027 (kernel 7.1.0-88.111.amzn2027.x86_64) that the in-tree driver builds
cleanly out-of-tree, loads (unsigned, kernel taint — Secure Boot off, CONFIG_MODULE_SIG_FORCE
not set), and runs end-to-end with ublksrv (null + loop targets, filesystem write/read
verified). Full runbook, including a DKMS package that survives kernel upgrades:
https://gist.github.com/rndjams/fae438dbbc1780443b0170693803719e

Note: the module must be loaded from /lib/modules/<kver>/extra (correct SELinux label under
enforcing=1), not from a home directory.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions