Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1704159

Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt

From Ross Zwisler <ross.zwisler@linux.intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt
Date 2017-08-04 20:30 +0200
Message-ID <uaPwd-29t-1@gated-at.bofh.it> (permalink)
References (3 earlier) <uac1P-oK-3@gated-at.bofh.it> <uavHb-5FN-1@gated-at.bofh.it> <uaBWi-1E7-3@gated-at.bofh.it> <uaFZU-4wN-9@gated-at.bofh.it> <uaPcT-20M-31@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Fri, Aug 04, 2017 at 11:01:08AM -0700, Dan Williams wrote:
> [ adding Dave who is working on a blk-mq + dma offload version of the
> pmem driver ]
> 
> On Fri, Aug 4, 2017 at 1:17 AM, Minchan Kim <minchan@kernel.org> wrote:
> > On Fri, Aug 04, 2017 at 12:54:41PM +0900, Minchan Kim wrote:
> [..]
> >> Thanks for the testing. Your testing number is within noise level?
> >>
> >> I cannot understand why PMEM doesn't have enough gain while BTT is significant
> >> win(8%). I guess no rw_page with BTT testing had more chances to wait bio dynamic
> >> allocation and mine and rw_page testing reduced it significantly. However,
> >> in no rw_page with pmem, there wasn't many cases to wait bio allocations due
> >> to the device is so fast so the number comes from purely the number of
> >> instructions has done. At a quick glance of bio init/submit, it's not trivial
> >> so indeed, i understand where the 12% enhancement comes from but I'm not sure
> >> it's really big difference in real practice at the cost of maintaince burden.
> >
> > I tested pmbench 10 times in my local machine(4 core) with zram-swap.
> > In my machine, even, on-stack bio is faster than rw_page. Unbelievable.
> >
> > I guess it's really hard to get stable result in severe memory pressure.
> > It would be a result within noise level(see below stddev).
> > So, I think it's hard to conclude rw_page is far faster than onstack-bio.
> >
> > rw_page
> > avg     5.54us
> > stddev  8.89%
> > max     6.02us
> > min     4.20us
> >
> > onstack bio
> > avg     5.27us
> > stddev  13.03%
> > max     5.96us
> > min     3.55us
> 
> The maintenance burden of having alternative submission paths is
> significant especially as we consider the pmem driver ising more
> services of the core block layer. Ideally, I'd want to complete the
> rw_page removal work before we look at the blk-mq + dma offload
> reworks.
> 
> The change to introduce BDI_CAP_SYNC is interesting because we might
> have use for switching between dma offload and cpu copy based on
> whether the I/O is synchronous or otherwise hinted to be a low latency
> request. Right now the dma offload patches are using "bio_segments() >
> 1" as the gate for selecting offload vs cpu copy which seem
> inadequate.

Okay, so based on the feedback above and from Jens[1], it sounds like we want
to go forward with removing the rw_page() interface, and instead optimize the
regular I/O path via on-stack BIOS and dma offload, correct?

If so, I'll prepare patches that fully remove the rw_page() code, and let
Minchan and Dave work on their optimizations.

[1]: https://lkml.org/lkml/2017/8/3/803

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Ross Zwisler <ross.zwisler@linux.intel.com> - 2017-08-03 00:20 +0200
  Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Minchan Kim <minchan@kernel.org> - 2017-08-03 02:20 +0200
    Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Dan Williams <dan.j.williams@intel.com> - 2017-08-03 02:40 +0200
    Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Christoph Hellwig <hch@lst.de> - 2017-08-03 10:10 +0200
      Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Minchan Kim <minchan@kernel.org> - 2017-08-04 03:00 +0200
    Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Ross Zwisler <ross.zwisler@linux.intel.com> - 2017-08-03 23:20 +0200
      Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Jens Axboe <axboe@kernel.dk> - 2017-08-03 23:20 +0200
      Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Minchan Kim <minchan@kernel.org> - 2017-08-04 06:00 +0200
        Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Minchan Kim <minchan@kernel.org> - 2017-08-04 10:20 +0200
          Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Dan Williams <dan.j.williams@intel.com> - 2017-08-04 20:10 +0200
            Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Ross Zwisler <ross.zwisler@linux.intel.com> - 2017-08-04 20:30 +0200
              Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Dan Williams <dan.j.williams@intel.com> - 2017-08-04 20:30 +0200
                Re: [PATCH 0/3] remove rw_page() from brd, pmem and btt Minchan Kim <minchan@kernel.org> - 2017-08-07 10:30 +0200

csiph-web