From da846dd402d6a15c81c90f45325087429e86cda5 Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Tue, 13 Dec 2022 20:08:23 +0100 Subject: [PATCH] spdkcli: add uring bdev support Change-Id: I0cd99636c69dcd4fe07c7329be8d67367ea7782c Signed-off-by: Karol Latecki Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15907 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- python/spdk/spdkcli/ui_node.py | 34 +++++++++++++++++++ python/spdk/spdkcli/ui_root.py | 9 +++++ .../match_files/spdkcli_raid.test.match | 1 + .../match_files/spdkcli_vhost.test.match | 1 + .../match_files/spdkcli_virtio_pci.test.match | 1 + 5 files changed, 46 insertions(+) diff --git a/python/spdk/spdkcli/ui_node.py b/python/spdk/spdkcli/ui_node.py index 6ba4ae246..e01ed2ed3 100644 --- a/python/spdk/spdkcli/ui_node.py +++ b/python/spdk/spdkcli/ui_node.py @@ -82,6 +82,7 @@ class UIBdevs(UINode): UIVirtioBlkBdev(self) UIVirtioScsiBdev(self) UIRaidBdev(self) + UIUringBdev(self) class UILvolStores(UINode): @@ -865,3 +866,36 @@ class UIRaidBdev(UIBdev): name - raid bdev name """ self.delete(name) + + +class UIUringBdev(UIBdev): + def __init__(self, parent): + UIBdev.__init__(self, "uring", parent) + + def delete(self, name): + self.get_root().bdev_uring_delete(name=name) + + def ui_command_create(self, filename, name, block_size): + """ + Construct a uring bdev. + + Arguments: + filename - Path to device or file. + name - Name to use for bdev. + block_size - Integer, block size to use when constructing bdev. + """ + + block_size = self.ui_eval_param(block_size, "number", None) + ret_name = self.get_root().bdev_uring_create(filename=filename, + name=name, + block_size=int(block_size)) + self.shell.log.info(ret_name) + + def ui_command_delete(self, name): + """ + Deletes a uring bdev. + + Arguments: + name - uring bdev name + """ + self.delete(name) diff --git a/python/spdk/spdkcli/ui_root.py b/python/spdk/spdkcli/ui_root.py index ec37822ff..5eb4e12ad 100644 --- a/python/spdk/spdkcli/ui_root.py +++ b/python/spdk/spdkcli/ui_root.py @@ -260,6 +260,15 @@ class UIRoot(UINode): def bdev_raid_delete(self, **kwargs): rpc.bdev.bdev_raid_delete(self.client, **kwargs) + @verbose + def bdev_uring_create(self, **kwargs): + response = rpc.bdev.bdev_uring_create(self.client, **kwargs) + return response + + @verbose + def bdev_uring_delete(self, **kwargs): + rpc.bdev.bdev_uring_delete(self.client, **kwargs) + @verbose @is_method_available def bdev_virtio_scsi_get_devices(self): diff --git a/test/spdkcli/match_files/spdkcli_raid.test.match b/test/spdkcli/match_files/spdkcli_raid.test.match index b8403767f..ad095f75f 100644 --- a/test/spdkcli/match_files/spdkcli_raid.test.match +++ b/test/spdkcli/match_files/spdkcli_raid.test.match @@ -13,5 +13,6 @@ o- bdevs ....................................................................... | o- testraid $(S) [Size=16.0M, Not claimed] o- rbd ................................................................................................................ [Bdevs: 0] o- split_disk ......................................................................................................... [Bdevs: 0] + o- uring .............................................................................................................. [Bdevs: 0] o- virtioblk_disk ..................................................................................................... [Bdevs: 0] o- virtioscsi_disk .................................................................................................... [Bdevs: 0] diff --git a/test/spdkcli/match_files/spdkcli_vhost.test.match b/test/spdkcli/match_files/spdkcli_vhost.test.match index b225c40be..eed2e1f9c 100644 --- a/test/spdkcli/match_files/spdkcli_vhost.test.match +++ b/test/spdkcli/match_files/spdkcli_vhost.test.match @@ -30,6 +30,7 @@ o- / ........................................................................... | | o- Nvme0n1p1 $(S) [Size=$(FP)G, Not claimed] | | o- Nvme0n1p2 $(S) [Size=$(FP)G, Not claimed] | | o- Nvme0n1p3 $(S) [Size=$(FP)G, Not claimed] + | o- uring ............................................................................................................ [Bdevs: 0] | o- virtioblk_disk ................................................................................................... [Bdevs: 0] | o- virtioscsi_disk .................................................................................................. [Bdevs: 0] o- lvol_stores .................................................................................................. [Lvol stores: 2] diff --git a/test/spdkcli/match_files/spdkcli_virtio_pci.test.match b/test/spdkcli/match_files/spdkcli_virtio_pci.test.match index 5caf84e56..26d00e168 100644 --- a/test/spdkcli/match_files/spdkcli_virtio_pci.test.match +++ b/test/spdkcli/match_files/spdkcli_virtio_pci.test.match @@ -12,6 +12,7 @@ o- bdevs ....................................................................... o- raid_volume ........................................................................................................ [Bdevs: 0] o- rbd ................................................................................................................ [Bdevs: 0] o- split_disk ......................................................................................................... [Bdevs: 0] + o- uring .............................................................................................................. [Bdevs: 0] o- virtioblk_disk ..................................................................................................... [Bdevs: 1] | o- virtioblk_pci $(S) [Size=$(FP)M, Not claimed] o- virtioscsi_disk .................................................................................................... [Bdevs: 1]