Skip to contentSkip to conversation

Tested LBA size ?

DISCUSSION Olivier Mallinger - IP Maker 4 participants 6 messages Mar 2, 2016 – Mar 3, 2016 NVMe

lore
Share & tools
lore
#0 lore raw

Hello.

Does anyone already experience to use a NVMe SSD with a namespace defined with a LBA size higher or equal to 8kB.
I successfully tested a device with LBA sizes of 512 bytes, 1kB, 2kB or 4kB. But when I use a LBA size of 8kB, the NVMe initialization is good but I can not see any read command access to drive after.
The controller is enable but the host does not perform any access expect for CSTS read.
My host page size is 4kB.

Any idea (bad configuration, ...) ? I don't understand what is expecting
the driver.
Thanks.
Regards.
Olivier.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: olivier_mallinger.vcf
Type: text/x-vcard
Size: 316 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20160302/e2256369/attachment.vcf>

#1 lore raw

Hi Olivier,

Linux in general does not support LBA sizes bigger than the VM page size.

#2 lore raw

Hi Christoph.

Sorry, I am not a specialist of Linux.
By VM, you mean "Virtual Machine" ?
Can I conclude that VM page size is generally 4kB today ? an you confirm that ?

Thanks.
Regards.
Olivier.

Le 03/03/2016 09:47, Christoph Hellwig a ?crit :

Quoted 4 lines

Hi Olivier,

Linux in general does not support LBA sizes bigger than the VM page size.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: olivier_mallinger.vcf
Type: text/x-vcard
Size: 316 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20160303/89262dd7/attachment-0001.vcf>

#3 lore raw
Quoted 1 line · Olivier Mallinger - IP Maker

By VM, you mean "Virtual Machine" ?

VM -- Virtual Memory

Quoted 2 lines

Can I conclude that VM page size is generally 4kB today ? an you confirm that ?

Probably. 4k is the most common VM page size. It's the only supported size on x86. If using something else, YMMV. To confirm, run:

  # getconf PAGESIZE
#4 lore raw

So, "getconf PAGESIZE" returns 4096.

For my understanding, in NVMe system for data transfers, basically two sizes have to be managed :
- MPS :Memory Page Size which defines the size of pages to be transferred
- LBA data size which defines the size of the logical block.

From the NVMe controller point of view, these two value needs to be
computed for each command (Read/Write) to know the number of page (MPS) to be transferred.
So controller has to be able to support all combination of MPS and LBA size.

From the Linux point of view, your answer make me think that all is
based on PAGESIZE and so PAGESIZE defined both MPS and LBA Size (or at least their maximum values as it works with 512 bytes LBA size for example). Am I right ? And so a NVMe device including namespace with LBA size higher than 4kB will never work on a Linux with a PAGESIZE set to 4096 ?

Thanks.
Regards.
Olivier.

Le 03/03/2016 15:17, Keith Busch a ?crit :

Quoted 10 lines · Olivier Mallinger - IP Maker
Quoted 1 line

By VM, you mean "Virtual Machine" ?

VM -- Virtual Memory

Quoted 2 lines

Can I conclude that VM page size is generally 4kB today ? an you confirm that ?

Probably. 4k is the most common VM page size. It's the only supported size on x86. If using something else, YMMV. To confirm, run:

   # getconf PAGESIZE

-------------- next part --------------
A non-text attachment was scrubbed...
Name: olivier_mallinger.vcf
Type: text/x-vcard
Size: 316 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20160303/778c2c90/attachment.vcf>

#5 lore raw

For what its worth, Linux on OpenPower typically runs with a memory page size of 64kB. That would give the opportunity to test with a larger LBA.

Tom

"Linux-nvme" <linux-nvme-bounces at lists.infradead.org> wrote on 03/03/2016 08:56:07 AM:

Quoted 3 lines

From: Olivier Mallinger - IP Maker <olivier.mallinger at ip-maker.com>
To: Keith Busch <keith.busch at intel.com>
Cc: Christoph Hellwig <hch at infradead.org>,

linux-nvme at lists.infradead.org

Quoted 9 lines

Date: 03/03/2016 08:58 AM
Subject: Re: Tested LBA size ?
Sent by: "Linux-nvme" <linux-nvme-bounces at lists.infradead.org>

So, "getconf PAGESIZE" returns 4096.

For my understanding, in NVMe system for data transfers, basically two sizes have to be managed :
- MPS :Memory Page Size which defines the size of pages to be

transferred

Quoted 6 lines

- LBA data size which defines the size of the logical block.

From the NVMe controller point of view, these two value needs to be
computed for each command (Read/Write) to know the number of page (MPS) to be transferred.
So controller has to be able to support all combination of MPS and LBA

size.

Quoted 4 lines

From the Linux point of view, your answer make me think that all is
based on PAGESIZE and so PAGESIZE defined both MPS and LBA Size (or at least their maximum values as it works with 512 bytes LBA size for

example).

Quoted 16 lines

Am I right ? And so a NVMe device including namespace with LBA size higher than 4kB will never work on a Linux with a PAGESIZE set to 4096 ?

Thanks.
Regards.
Olivier.

Le 03/03/2016 15:17, Keith Busch a ?crit :

Quoted 1 line

On Thu, Mar 03, 2016 at 10:58:15AM +0100, Olivier Mallinger - IP

Quoted 6 lines · Maker
Quoted 1 line

By VM, you mean "Virtual Machine" ?

VM -- Virtual Memory

Quoted 2 lines

Can I conclude that VM page size is generally 4kB today ? an you confirm that ?

Probably. 4k is the most common VM page size. It's the only supported

size

Quoted 9 lines
Quoted 3 lines

on x86. If using something else, YMMV. To confirm, run:

   # getconf PAGESIZE

[attachment "olivier_mallinger.vcf" deleted by Thomas Gooding/ Rochester/IBM] _______________________________________________ Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme