linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Cc: "Pankaj Raghav" <p.raghav@samsung.com>,
	"Adam Manzanares" <a.manzanares@samsung.com>,
	"Javier González" <javier.gonz@samsung.com>,
	"kanchan Joshi" <joshi.k@samsung.com>,
	"Jens Axboe" <axboe@kernel.dk>, "Keith Busch" <kbusch@kernel.org>,
	"Christoph Hellwig" <hch@lst.de>,
	"Sagi Grimberg" <sagi@grimberg.me>,
	"Matias Bjørling" <matias.bjorling@wdc.com>,
	jiangbo.365@bytedance.com, "Pankaj Raghav" <pankydev8@gmail.com>,
	"Kanchan Joshi" <joshiiitr@gmail.com>,
	linux-block@vger.kernel.org, linux-nvme@lists.infradead.org
Subject: Re: [PATCH 4/6] nvme: zns: Add support for power_of_2 emulation to NVMe ZNS devices
Date: Thu, 10 Mar 2022 12:35:19 -0800	[thread overview]
Message-ID: <YiphB2Me63kD7T5t@bombadil.infradead.org> (raw)
In-Reply-To: <bdb92eac-59ef-3ba1-16cb-31219e3a264b@opensource.wdc.com>

On Thu, Mar 10, 2022 at 06:43:47AM +0900, Damien Le Moal wrote:
> On 3/9/22 23:33, Pankaj Raghav wrote:
> > On 2022-03-09 05:04, Damien Le Moal wrote:
> >> So for a power of 2 zone sized device, you are forcing an indirect call,
> >> always. Not acceptable. What is the point of that po2_zone_emu boolean
> >> you added to the queue ?
> > This is a good point and we had a discussion about this internally.
> > Initially I had something like this:
> > if (!blk_queue_is_po2_zone_emu(disk))
> > 	return sector >> (ns->lba_shift - SECTOR_SHIFT);
> > else
> > 	return __nvme_sect_to_lba_po2(ns, sec);
> 
> No need for the else.

If true then great.

> > But @Luis indicated that it was better to set an op which comes at a cost of indirection
> > instead of having a runtime check with a if/else in the **hot path**. The code also looks
> > more clear with having an op.
> 
> The indirect call using a function pointer makes the code obscure. And
> the cost of that call is far greater and always present compared to the
> CPU branch prediction which will luckily avoid most of the time taking
> the wrong branch of an if.

The goal was to ensure no performance impact, and given a hot path
was involved and we simply cannot microbench append as there is no
way / API to do that, we can't be sure. But if you are certain that
there is no perf impact, it would be wonderful to live without it.

Thanks for the suggestion and push!

  Luis

  reply	other threads:[~2022-03-10 20:35 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20220308165414eucas1p106df0bd6a901931215cfab81660a4564@eucas1p1.samsung.com>
2022-03-08 16:53 ` [PATCH 0/6] power_of_2 emulation support for NVMe ZNS devices Pankaj Raghav
     [not found]   ` <CGME20220308165421eucas1p20575444f59702cd5478cb35fce8b72cd@eucas1p2.samsung.com>
2022-03-08 16:53     ` [PATCH 1/6] nvme: zns: Allow ZNS drives that have non-power_of_2 zone size Pankaj Raghav
2022-03-08 17:14       ` Keith Busch
2022-03-08 17:43         ` Pankaj Raghav
2022-03-09  3:40       ` Damien Le Moal
2022-03-09 13:19         ` Pankaj Raghav
2022-03-09  3:44       ` Damien Le Moal
2022-03-09 13:35         ` Pankaj Raghav
     [not found]   ` <CGME20220308165428eucas1p14ea0a38eef47055c4fa41d695c5a249d@eucas1p1.samsung.com>
2022-03-08 16:53     ` [PATCH 2/6] block: Add npo2_zone_setup callback to block device fops Pankaj Raghav
2022-03-09  3:46       ` Damien Le Moal
2022-03-09 14:02         ` Pankaj Raghav
     [not found]   ` <CGME20220308165432eucas1p18b36a238ef3f5a812ee7f9b0e52599a5@eucas1p1.samsung.com>
2022-03-08 16:53     ` [PATCH 3/6] block: add a bool member to request_queue for power_of_2 emulation Pankaj Raghav
     [not found]   ` <CGME20220308165436eucas1p1b76f3cb5b4fa1f7d78b51a3b1b44d160@eucas1p1.samsung.com>
2022-03-08 16:53     ` [PATCH 4/6] nvme: zns: Add support for power_of_2 emulation to NVMe ZNS devices Pankaj Raghav
2022-03-09  4:04       ` Damien Le Moal
2022-03-09 14:33         ` Pankaj Raghav
2022-03-09 21:43           ` Damien Le Moal
2022-03-10 20:35             ` Luis Chamberlain [this message]
2022-03-10 23:50               ` Damien Le Moal
2022-03-11  0:56                 ` Luis Chamberlain
     [not found]   ` <CGME20220308165443eucas1p17e61670a5057f21a6c073711b284bfeb@eucas1p1.samsung.com>
2022-03-08 16:53     ` [PATCH 5/6] null_blk: forward the sector value from null_handle_memory_backend Pankaj Raghav
     [not found]   ` <CGME20220308165448eucas1p12c7c302a4b239db64b49d54cc3c1f0ac@eucas1p1.samsung.com>
2022-03-08 16:53     ` [PATCH 6/6] null_blk: Add support for power_of_2 emulation to the null blk device Pankaj Raghav
2022-03-09  4:09       ` Damien Le Moal
2022-03-09 14:42         ` Pankaj Raghav
2022-03-10  9:47   ` [PATCH 0/6] power_of_2 emulation support for NVMe ZNS devices Christoph Hellwig
2022-03-10 12:57     ` Pankaj Raghav
2022-03-10 13:07       ` Matias Bjørling
2022-03-10 13:14         ` Javier González
2022-03-10 14:58           ` Matias Bjørling
2022-03-10 15:07             ` Keith Busch
2022-03-10 15:16               ` Javier González
2022-03-10 23:44                 ` Damien Le Moal
2022-03-10 15:13             ` Javier González
2022-03-10 14:44       ` Christoph Hellwig
2022-03-11 20:19         ` Luis Chamberlain
2022-03-11 20:51           ` Keith Busch
2022-03-11 21:04             ` Luis Chamberlain
2022-03-11 21:31               ` Keith Busch
2022-03-11 22:24                 ` Luis Chamberlain
2022-03-12  7:58                   ` Damien Le Moal
2022-03-14  7:35                     ` Christoph Hellwig
2022-03-14  7:45                       ` Damien Le Moal
2022-03-14  7:58                         ` Christoph Hellwig
2022-03-14 10:49                         ` Javier González
2022-03-14 14:16                           ` Matias Bjørling
2022-03-14 16:23                             ` Luis Chamberlain
2022-03-14 19:30                               ` Matias Bjørling
2022-03-14 19:51                                 ` Luis Chamberlain
2022-03-15 10:45                                   ` Matias Bjørling
2022-03-14 19:55                             ` Javier González
2022-03-15 12:32                               ` Matias Bjørling
2022-03-15 13:05                                 ` Javier González
2022-03-15 13:14                                   ` Matias Bjørling
2022-03-15 13:26                                     ` Javier González
2022-03-15 13:30                                       ` Christoph Hellwig
2022-03-15 13:52                                         ` Javier González
2022-03-15 14:03                                           ` Matias Bjørling
2022-03-15 14:14                                           ` Johannes Thumshirn
2022-03-15 14:27                                             ` David Sterba
2022-03-15 19:56                                               ` Pankaj Raghav
2022-03-15 15:11                                             ` Javier González
2022-03-15 18:51                                             ` Pankaj Raghav
2022-03-16  8:37                                               ` Johannes Thumshirn
2022-03-15 17:00                                         ` Luis Chamberlain
2022-03-16  0:07                                           ` Damien Le Moal
2022-03-16  0:23                                             ` Luis Chamberlain
2022-03-16  0:46                                               ` Damien Le Moal
2022-03-16  1:24                                                 ` Luis Chamberlain
2022-03-16  1:44                                                   ` Damien Le Moal
2022-03-16  2:13                                                     ` Luis Chamberlain
2022-03-16  2:27                                               ` Martin K. Petersen
2022-03-16  2:41                                                 ` Luis Chamberlain
2022-03-16  8:44                                                 ` Javier González
2022-03-15 13:39                                       ` Matias Bjørling
2022-03-16  0:00                                   ` Damien Le Moal
2022-03-16  8:57                                     ` Javier González
2022-03-16 16:18                                     ` Pankaj Raghav
2022-03-14  8:36                     ` Matias Bjørling
2022-03-11 22:23             ` Adam Manzanares
2022-03-11 22:30               ` Keith Busch
2022-03-21 16:21             ` Jonathan Derrick
2022-03-21 16:44               ` Keith Busch
2022-03-10 17:38     ` Adam Manzanares
2022-03-14  7:36       ` Christoph Hellwig

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=YiphB2Me63kD7T5t@bombadil.infradead.org \
    --to=mcgrof@kernel.org \
    --cc=a.manzanares@samsung.com \
    --cc=axboe@kernel.dk \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=hch@lst.de \
    --cc=javier.gonz@samsung.com \
    --cc=jiangbo.365@bytedance.com \
    --cc=joshi.k@samsung.com \
    --cc=joshiiitr@gmail.com \
    --cc=kbusch@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=matias.bjorling@wdc.com \
    --cc=p.raghav@samsung.com \
    --cc=pankydev8@gmail.com \
    --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).