From: Mark Ruijter <MRuijter@onestopsystems.com>
To: Keith Busch <kbusch@kernel.org>,
Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Cc: "hch@lst.de" <hch@lst.de>,
"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
"sagi@grimberg.me" <sagi@grimberg.me>
Subject: Re: [PATCH] nvmet: introduce use_vfs ns-attr
Date: Thu, 24 Oct 2019 11:30:18 +0000 [thread overview]
Message-ID: <FA6B6A9F-649B-4B58-99D0-2D09076E2482@onestopsystems.com> (raw)
In-Reply-To: <20191024020003.GA2148@redsun51.ssa.fujisawa.hgst.com>
Hi Keith,
You are right, that check and the goto should be included.
Note that I wrote this patch to prove that a performance problem exists when using raid1.
Either the md raid1 driver or the io-cmd-bdev.c code has issues.
When you add an additional layer like the VFS the performance should typically drop with 5~10%.
However in this case the performance increases even though the nvme target uses direct-io and the random writes do not get merged by the VFS.
Thanks,
Mark Ruijter
Op 24-10-19 04:00 heeft Keith Busch <kbusch@kernel.org> geschreven:
On Wed, Oct 23, 2019 at 01:17:15PM -0700, Chaitanya Kulkarni wrote:
> @@ -45,17 +46,27 @@ int nvmet_file_ns_enable(struct nvmet_ns *ns)
>
> ret = vfs_getattr(&ns->file->f_path,
> &stat, STATX_SIZE, AT_STATX_FORCE_SYNC);
> - if (ret)
> - goto err;
> -
> - ns->size = stat.size;
> - /*
> - * i_blkbits can be greater than the universally accepted upper bound,
> - * so make sure we export a sane namespace lba_shift.
> - */
> - ns->blksize_shift = min_t(u8,
> - file_inode(ns->file)->i_blkbits, 12);
> + if (ret) {
> + pr_err("failed to stat device file %s\n",
> + ns->device_path);
Why remove the 'goto err' from this condition? The code that proceeds
may be using an uninitialized 'stat' without it.
> + }
>
> + if (stat.size == 0 && ns->use_vfs) {
> + bdev = blkdev_get_by_path(ns->device_path,
> + FMODE_READ | FMODE_WRITE, NULL);
> + if (IS_ERR(bdev))
> + goto err;
> + ns->size = i_size_read(bdev->bd_inode);
> + ns->blksize_shift = blksize_bits(bdev_logical_block_size(bdev));
> + } else {
> + /*
> + * i_blkbits can be greater than the universally accepted upper
> + * bound, so make sure we export a sane namespace lba_shift.
> + */
> + ns->size = stat.size;
> + ns->blksize_shift = min_t(u8,
> + file_inode(ns->file)->i_blkbits, 12);
> + }
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
next prev parent reply other threads:[~2019-10-24 11:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-23 20:17 [PATCH] nvmet: introduce use_vfs ns-attr Chaitanya Kulkarni
2019-10-24 2:00 ` Keith Busch
2019-10-24 11:30 ` Mark Ruijter [this message]
2019-10-25 4:05 ` Keith Busch
2019-10-25 4:26 ` Keith Busch
2019-10-25 8:44 ` Mark Ruijter
2019-10-26 1:06 ` Keith Busch
2019-10-27 15:03 ` hch
2019-10-27 16:06 ` Mark Ruijter
2019-10-28 0:55 ` Keith Busch
2019-10-28 7:26 ` Chaitanya Kulkarni
2019-10-28 7:32 ` Chaitanya Kulkarni
2019-10-28 7:35 ` hch
2019-10-28 7:38 ` Chaitanya Kulkarni
2019-10-28 7:43 ` hch
2019-10-28 8:04 ` Chaitanya Kulkarni
2019-10-28 8:01 ` Keith Busch
2019-10-28 8:41 ` Mark Ruijter
2019-10-25 3:29 ` Chaitanya Kulkarni
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=FA6B6A9F-649B-4B58-99D0-2D09076E2482@onestopsystems.com \
--to=mruijter@onestopsystems.com \
--cc=chaitanya.kulkarni@wdc.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).