[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