[PATCH 5/5] nvme: enable logical block size > PAGE_SIZE
Luis Chamberlain
mcgrof at kernel.org
Sat May 11 16:09:48 PDT 2024
On Fri, May 10, 2024 at 12:29:06PM +0200, hare at kernel.org wrote:
> From: Pankaj Raghav <p.raghav at samsung.com>
>
> Don't set the capacity to zero for when logical block size > PAGE_SIZE
> as the block device with iomap aops support allocating block cache with
> a minimum folio order.
>
> Signed-off-by: Pankaj Raghav <p.raghav at samsung.com>
> Signed-off-by: Hannes Reinecke <hare at kernel.org>
> ---
> drivers/nvme/host/core.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 828c77fa13b7..5f1308daa74f 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -1963,11 +1963,10 @@ static bool nvme_update_disk_info(struct nvme_ns *ns, struct nvme_id_ns *id,
> bool valid = true;
>
> /*
> - * The block layer can't support LBA sizes larger than the page size
> - * or smaller than a sector size yet, so catch this early and don't
> - * allow block I/O.
> + * The block layer can't support LBA sizes smaller than a sector size,
> + * so catch this early and don't allow block I/O.
> */
> - if (head->lba_shift > PAGE_SHIFT || head->lba_shift < SECTOR_SHIFT) {
> + if (head->lba_shift < SECTOR_SHIFT) {
We can't just do this, we need to consider the actual nvme cap (test it,
and if it crashes and below what the page cache supports, then we have
to go below) and so to make the enablment easier. So we could just move
this to helper [0]. Then when the bdev cache patch goes through the
check for CONFIG_BUFFER_HEAD can be removed, if this goes first.
We crash if we go above 1 MiB today, we should be able to go up to 2
MiB but that requires some review to see what stupid thing is getting
in the way.
[0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/commit/?h=20240408-lbs-scsi-kludge&id=1f7f4dce548cc11872e977939a872b107c68ad53
Luis
More information about the Linux-nvme
mailing list