From: Maxim Levitsky <mlevitsk@redhat.com> To: Damien Le Moal <Damien.LeMoal@wdc.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Cc: Keith Busch <kbusch@kernel.org>, Josef Bacik <josef@toxicpanda.com>, "open list:BLOCK LAYER" <linux-block@vger.kernel.org>, Sagi Grimberg <sagi@grimberg.me>, Jens Axboe <axboe@kernel.dk>, "open list:NVM EXPRESS DRIVER" <linux-nvme@lists.infradead.org>, "open list:SCSI CDROM DRIVER" <linux-scsi@vger.kernel.org>, Tejun Heo <tj@kernel.org>, Bart Van Assche <bvanassche@acm.org>, "Martin K. Petersen" <martin.petersen@oracle.com>, Jason Wang <jasowang@redhat.com>, Maxim Levitsky <maximlevitsky@gmail.com>, Stefan Hajnoczi <stefanha@redhat.com>, Colin Ian King <colin.king@canonical.com>, "Michael S. Tsirkin" <mst@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Ulf Hansson <ulf.hansson@linaro.org>, Ajay Joshi <Ajay.Joshi@wdc.com>, Ming Lei <ming.lei@redhat.com>, "open list:SONY MEMORYSTICK SUBSYSTEM" <linux-mmc@vger.kernel.org>, Christoph Hellwig <hch@lst.de>, Satya Tangirala <satyat@google.com>, "open list:NETWORK BLOCK DEVICE (NBD)" <nbd@other.debian.org>, Hou Tao <houtao1@huawei.com>, Jens Axboe <axboe@fb.com>, "open list:VIRTIO CORE AND NET DRIVERS" <virtualization@lists.linux-foundation.org>, "James E.J. Bottomley" <jejb@linux.ibm.com>, Alex Dubov <oakad@yahoo.com> Subject: Re: [PATCH 05/10] block: null: use blk_is_valid_logical_block_size Date: Tue, 21 Jul 2020 15:42:07 +0300 [thread overview] Message-ID: <435f1c04b58bd2298be3166b7bab458640927118.camel@redhat.com> (raw) In-Reply-To: <CY4PR04MB3751882A6BDF7C073D6ECF88E7780@CY4PR04MB3751.namprd04.prod.outlook.com> On Tue, 2020-07-21 at 11:15 +0000, Damien Le Moal wrote: > On 2020/07/21 19:54, Maxim Levitsky wrote: > > This slightly changes the behavier of the driver, > > s/behavier/behavior Thanks. This is one of the typos I make very consistently. > > > when given invalid block size (non power of two, or below 512 bytes), > > but shoudn't matter. > > > > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> > > --- > > drivers/block/null_blk_main.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c > > index 87b31f9ca362e..e4df4b903b90b 100644 > > --- a/drivers/block/null_blk_main.c > > +++ b/drivers/block/null_blk_main.c > > @@ -1684,8 +1684,8 @@ static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set *set) > > > > static int null_validate_conf(struct nullb_device *dev) > > { > > - dev->blocksize = round_down(dev->blocksize, 512); > > - dev->blocksize = clamp_t(unsigned int, dev->blocksize, 512, 4096); > > + if (!blk_is_valid_logical_block_size(dev->blocksize)) > > + return -ENODEV; > > > > if (dev->queue_mode == NULL_Q_MQ && dev->use_per_node_hctx) { > > if (dev->submit_queues != nr_online_nodes) > > @@ -1865,7 +1865,7 @@ static int __init null_init(void) > > struct nullb *nullb; > > struct nullb_device *dev; > > > > - if (g_bs > PAGE_SIZE) { > > + if (!blk_is_valid_logical_block_size(g_bs)) { > > pr_warn("invalid block size\n"); > > pr_warn("defaults block size to %lu\n", PAGE_SIZE); > > g_bs = PAGE_SIZE; > > Not sure if this change is OK. Shouldn't the if here be kept as is and > blk_is_valid_logical_block_size() called after it to check values lower than 4K ? The thing is that this driver supports two ways of creating the block devices. On module load it creates by default a single block device and it uses g_bs as its block size, but then it also has configfs based interface that allows to create more block devices. The default is taken also from g_bs but then user can change it ( via those NULLB_DEVICE_ATTR wrappers) I changed the behavior slightly, that now if user supplies bad value, it will be rejected instead of finding closest valid value. In addition to that there is very small bug that didn't bother to fix in this series (but I will in next one). The bug is that when null_validate_conf fails, it return value is overriden with -ENOMEM, which gives the user a wrong error message. Thanks for the review! Best regards, Maxim Levitsky > >
WARNING: multiple messages have this Message-ID (diff)
From: Maxim Levitsky <mlevitsk@redhat.com> To: Damien Le Moal <Damien.LeMoal@wdc.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Cc: Keith Busch <kbusch@kernel.org>, Josef Bacik <josef@toxicpanda.com>, "open list:BLOCK LAYER" <linux-block@vger.kernel.org>, Sagi Grimberg <sagi@grimberg.me>, Jens Axboe <axboe@kernel.dk>, "open list:NVM EXPRESS DRIVER" <linux-nvme@lists.infradead.org>, "open list:SCSI CDROM DRIVER" <linux-scsi@vger.kernel.org>, Tejun Heo <tj@kernel.org>, Bart Van Assche <bvanassche@acm.org>, "Martin K. Petersen" <martin.petersen@oracle.com>, Jason Wang <jasowang@redhat.com>, Maxim Levitsky <maximlevitsky@gmail.com>, Stefan Hajnoczi <stefanha@redhat.com>, Colin Ian King <colin.king@canonical.com>, "Michael S. Tsirkin" <mst@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Ulf Hansson <ulf.hansson@linaro.org>, Ajay Joshi <Ajay.Joshi@wdc.com>, Ming Lei <ming.lei@redhat.> Subject: Re: [PATCH 05/10] block: null: use blk_is_valid_logical_block_size Date: Tue, 21 Jul 2020 15:42:07 +0300 [thread overview] Message-ID: <435f1c04b58bd2298be3166b7bab458640927118.camel@redhat.com> (raw) In-Reply-To: <CY4PR04MB3751882A6BDF7C073D6ECF88E7780@CY4PR04MB3751.namprd04.prod.outlook.com> On Tue, 2020-07-21 at 11:15 +0000, Damien Le Moal wrote: > On 2020/07/21 19:54, Maxim Levitsky wrote: > > This slightly changes the behavier of the driver, > > s/behavier/behavior Thanks. This is one of the typos I make very consistently. > > > when given invalid block size (non power of two, or below 512 bytes), > > but shoudn't matter. > > > > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> > > --- > > drivers/block/null_blk_main.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c > > index 87b31f9ca362e..e4df4b903b90b 100644 > > --- a/drivers/block/null_blk_main.c > > +++ b/drivers/block/null_blk_main.c > > @@ -1684,8 +1684,8 @@ static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set *set) > > > > static int null_validate_conf(struct nullb_device *dev) > > { > > - dev->blocksize = round_down(dev->blocksize, 512); > > - dev->blocksize = clamp_t(unsigned int, dev->blocksize, 512, 4096); > > + if (!blk_is_valid_logical_block_size(dev->blocksize)) > > + return -ENODEV; > > > > if (dev->queue_mode == NULL_Q_MQ && dev->use_per_node_hctx) { > > if (dev->submit_queues != nr_online_nodes) > > @@ -1865,7 +1865,7 @@ static int __init null_init(void) > > struct nullb *nullb; > > struct nullb_device *dev; > > > > - if (g_bs > PAGE_SIZE) { > > + if (!blk_is_valid_logical_block_size(g_bs)) { > > pr_warn("invalid block size\n"); > > pr_warn("defaults block size to %lu\n", PAGE_SIZE); > > g_bs = PAGE_SIZE; > > Not sure if this change is OK. Shouldn't the if here be kept as is and > blk_is_valid_logical_block_size() called after it to check values lower than 4K ? The thing is that this driver supports two ways of creating the block devices. On module load it creates by default a single block device and it uses g_bs as its block size, but then it also has configfs based interface that allows to create more block devices. The default is taken also from g_bs but then user can change it ( via those NULLB_DEVICE_ATTR wrappers) I changed the behavior slightly, that now if user supplies bad value, it will be rejected instead of finding closest valid value. In addition to that there is very small bug that didn't bother to fix in this series (but I will in next one). The bug is that when null_validate_conf fails, it return value is overriden with -ENOMEM, which gives the user a wrong error message. Thanks for the review! Best regards, Maxim Levitsky > >
next prev parent reply other threads:[~2020-07-21 12:42 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-21 10:52 [PATCH 00/10] RFC: move logical block size checking to the block core Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 10:52 ` [PATCH 01/10] block: introduce blk_is_valid_logical_block_size Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:05 ` Damien Le Moal 2020-07-21 11:05 ` Damien Le Moal 2020-07-21 11:09 ` Maxim Levitsky 2020-07-21 11:09 ` Maxim Levitsky 2020-07-21 11:31 ` Damien Le Moal 2020-07-21 11:31 ` Damien Le Moal 2020-07-21 15:13 ` Christoph Hellwig 2020-07-21 15:13 ` Christoph Hellwig 2020-07-22 8:50 ` Maxim Levitsky 2020-07-22 8:50 ` Maxim Levitsky 2020-07-23 9:13 ` [block] 4c873fbf07: WARNING:at_block/blk-settings.c:#blk_queue_logical_block_size kernel test robot 2020-07-23 9:13 ` kernel test robot 2020-07-21 10:52 ` [PATCH 02/10] block: virtio-blk: check logical block size Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:07 ` Damien Le Moal 2020-07-21 11:07 ` Damien Le Moal 2020-07-21 15:14 ` Christoph Hellwig 2020-07-21 15:14 ` Christoph Hellwig 2020-07-22 2:55 ` Martin K. Petersen 2020-07-22 2:55 ` Martin K. Petersen 2020-07-22 9:11 ` Maxim Levitsky 2020-07-22 9:11 ` Maxim Levitsky 2020-07-28 14:27 ` Maxim Levitsky 2020-07-29 4:32 ` Martin K. Petersen 2020-07-28 15:44 ` Stefan Hajnoczi 2020-07-21 10:52 ` [PATCH 03/10] block: loop: use blk_is_valid_logical_block_size Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:08 ` Damien Le Moal 2020-07-21 11:08 ` Damien Le Moal 2020-07-21 10:52 ` [PATCH 04/10] block: nbd: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:09 ` Damien Le Moal 2020-07-21 11:09 ` Damien Le Moal 2020-07-21 10:52 ` [PATCH 05/10] block: null: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:15 ` Damien Le Moal 2020-07-21 11:15 ` Damien Le Moal 2020-07-21 12:42 ` Maxim Levitsky [this message] 2020-07-21 12:42 ` Maxim Levitsky 2020-07-21 10:52 ` [PATCH 06/10] block: ms_block: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:17 ` Damien Le Moal 2020-07-21 11:17 ` Damien Le Moal 2020-07-21 10:52 ` [PATCH 07/10] block: mspro_blk: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:17 ` Damien Le Moal 2020-07-21 11:17 ` Damien Le Moal 2020-07-21 10:52 ` [PATCH 08/10] block: nvme: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:23 ` Damien Le Moal 2020-07-21 11:23 ` Damien Le Moal 2020-07-21 10:52 ` [PATCH 09/10] block: scsi: sd: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:25 ` Damien Le Moal 2020-07-21 11:25 ` Damien Le Moal 2020-07-21 12:55 ` Maxim Levitsky 2020-07-21 12:55 ` Maxim Levitsky 2020-07-21 10:52 ` [PATCH 10/10] block: scsi: sr: " Maxim Levitsky 2020-07-21 10:52 ` Maxim Levitsky 2020-07-21 11:29 ` Damien Le Moal 2020-07-21 11:29 ` Damien Le Moal
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=435f1c04b58bd2298be3166b7bab458640927118.camel@redhat.com \ --to=mlevitsk@redhat.com \ --cc=Ajay.Joshi@wdc.com \ --cc=Damien.LeMoal@wdc.com \ --cc=axboe@fb.com \ --cc=axboe@kernel.dk \ --cc=bvanassche@acm.org \ --cc=colin.king@canonical.com \ --cc=hch@lst.de \ --cc=houtao1@huawei.com \ --cc=jasowang@redhat.com \ --cc=jejb@linux.ibm.com \ --cc=josef@toxicpanda.com \ --cc=kbusch@kernel.org \ --cc=linux-block@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-nvme@lists.infradead.org \ --cc=linux-scsi@vger.kernel.org \ --cc=martin.petersen@oracle.com \ --cc=maximlevitsky@gmail.com \ --cc=ming.lei@redhat.com \ --cc=mst@redhat.com \ --cc=nbd@other.debian.org \ --cc=oakad@yahoo.com \ --cc=pbonzini@redhat.com \ --cc=sagi@grimberg.me \ --cc=satyat@google.com \ --cc=stefanha@redhat.com \ --cc=tj@kernel.org \ --cc=ulf.hansson@linaro.org \ --cc=virtualization@lists.linux-foundation.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: linkBe 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.