[PATCH V2 4/4] nvme: lightnvm: add late setup of block size and metadata
Matias Bjørling
mb at lightnvm.io
Thu Feb 15 00:57:39 PST 2018
On 02/12/2018 09:21 PM, Javier Gonzalez wrote:
>
>> On 9 Feb 2018, at 01.27, Matias Bjørling <mb at lightnvm.io> wrote:
>>
>> The nvme driver sets up the size of the nvme namespace in two steps.
>> First it initializes the device with standard logical block and
>> metadata sizes, and then sets the correct logical block and metadata
>> size. Due to the OCSSD 2.0 specification relies on the namespace to
>> expose these sizes for correct initialization, let it be updated
>> appropriately on the LightNVM side as well.
>>
>> Signed-off-by: Matias Bjørling <mb at lightnvm.io>
>> ---
>>
>
> This late initialization breaks ligthnvm's core init since the sector
> size (csecs) is used on the first init part to set the logical block size.
>
> nvm_core_init -> blk_queue_logical_block_size(dev->q, dev_geo->c.csecs);
>
> We can do do a nvme_nvm_revalidate and set this on the revalidation path
> instead of simply updating the info as in nvme_nvm_update_nvm_info().'
I believe that is what the patch does (nvme_nvm_update_nvm_info is
called from the nvme_revalidate_disk context).
The nvm_core_init initialization of the block size is redundant and
should be removed. I'll update the patch.
More information about the Linux-nvme
mailing list