diff mbox series

null_blk: add memory_backed module parameter

Message ID 20220531185231.169102-1-vincent.fu@samsung.com (mailing list archive)
State New, archived
Headers show
Series null_blk: add memory_backed module parameter | expand

Commit Message

Vincent Fu May 31, 2022, 6:52 p.m. UTC
Allow the memory_backed option to be set via a module parameter.
Currently memory-backed null_blk devices can only be created using
configfs. Having a module parameter makes it easier to create these
devices.

This patch was originally submitted by Akinobu Mita in 2020 but received
no response. I modified the original patch to apply cleanly and reworded
the documentation from the original patch.

Originally-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
---
 Documentation/block/null_blk.rst | 8 ++++++++
 drivers/block/null_blk/main.c    | 5 +++++
 2 files changed, 13 insertions(+)

Comments

Jens Axboe May 31, 2022, 7:01 p.m. UTC | #1
On 5/31/22 12:52 PM, Vincent Fu wrote:
> Allow the memory_backed option to be set via a module parameter.
> Currently memory-backed null_blk devices can only be created using
> configfs. Having a module parameter makes it easier to create these
> devices.
> 
> This patch was originally submitted by Akinobu Mita in 2020 but received
> no response. I modified the original patch to apply cleanly and reworded
> the documentation from the original patch.

Ideally we'd have full parity between what can be set at module load
time and configfs setup, doesn't really make any sense to have them not
be identical.

Patch looks fine to me.
diff mbox series

Patch

diff --git a/Documentation/block/null_blk.rst b/Documentation/block/null_blk.rst
index edbbab2f1..618a491fa 100644
--- a/Documentation/block/null_blk.rst
+++ b/Documentation/block/null_blk.rst
@@ -72,6 +72,14 @@  submit_queues=[1..nr_cpus]: Default: 1
 hw_queue_depth=[0..qdepth]: Default: 64
   The hardware queue depth of the device.
 
+memory_backed=[0/1]: Default: 0
+  Whether or not to use a memory buffer to respond to IO requests
+
+  =  =============================================
+  0  Transfer no data in response to IO requests
+  1  Use a memory buffer to respond to IO requests
+  =  =============================================
+
 Multi-queue specific parameters
 -------------------------------
 
diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index 539cfeac2..e97623c55 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -203,6 +203,10 @@  static int g_hw_queue_depth = 64;
 module_param_named(hw_queue_depth, g_hw_queue_depth, int, 0444);
 MODULE_PARM_DESC(hw_queue_depth, "Queue depth for each hardware queue. Default: 64");
 
+static bool g_memory_backed;
+module_param_named(memory_backed, g_memory_backed, bool, 0444);
+MODULE_PARM_DESC(memory_backed, "Create a memory-backed block device. Default: false");
+
 static bool g_use_per_node_hctx;
 module_param_named(use_per_node_hctx, g_use_per_node_hctx, bool, 0444);
 MODULE_PARM_DESC(use_per_node_hctx, "Use per-node allocation for hardware context queues. Default: false");
@@ -656,6 +660,7 @@  static struct nullb_device *null_alloc_dev(void)
 	dev->irqmode = g_irqmode;
 	dev->hw_queue_depth = g_hw_queue_depth;
 	dev->blocking = g_blocking;
+	dev->memory_backed = g_memory_backed;
 	dev->use_per_node_hctx = g_use_per_node_hctx;
 	dev->zoned = g_zoned;
 	dev->zone_size = g_zone_size;