All of lore.kernel.org
 help / color / mirror / Atom feed
From: Changheun Lee <nanich.lee@samsung.com>
To: ming.lei@redhat.com
Cc: Damien.LeMoal@wdc.com, Johannes.Thumshirn@wdc.com,
	asml.silence@gmail.com, axboe@kernel.dk, bvanassche@acm.org,
	gregkh@linuxfoundation.org, hch@infradead.org,
	jisoo2146.oh@samsung.com, junho89.kim@samsung.com,
	linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	mj0123.lee@samsung.com, nanich.lee@samsung.com, osandov@fb.com,
	patchwork-bot@kernel.org, seunghwan.hyun@samsung.com,
	sookwan7.kim@samsung.com, tj@kernel.org, tom.leiming@gmail.com,
	woosung2.lee@samsung.com, yt0928.kim@samsung.com
Subject: Re: [RESEND,v5,1/2] bio: limit bio max size
Date: Tue, 13 Apr 2021 13:37:33 +0900	[thread overview]
Message-ID: <20210413043733.28880-1-nanich.lee@samsung.com> (raw)
In-Reply-To: <YHO9LQUt1e0J6+l9@T590>

> On Sun, Apr 11, 2021 at 10:13:01PM +0000, Damien Le Moal wrote:
> > On 2021/04/09 23:47, Bart Van Assche wrote:
> > > On 4/7/21 3:27 AM, Damien Le Moal wrote:
> > >> On 2021/04/07 18:46, Changheun Lee wrote:
> > >>> I'll prepare new patch as you recommand. It will be added setting of
> > >>> limit_bio_size automatically when queue max sectors is determined.
> > >>
> > >> Please do that in the driver for the HW that benefits from it. Do not do this
> > >> for all block devices.
> > > 
> > > Hmm ... is it ever useful to build a bio with a size that exceeds 
> > > max_hw_sectors when submitting a bio directly to a block device, or in 
> > > other words, if no stacked block driver sits between the submitter and 
> > > the block device? Am I perhaps missing something?
> > 
> > Device performance wise, the benefits are certainly not obvious to me either.
> > But for very fast block devices, I think the CPU overhead of building more
> > smaller BIOs may be significant compared to splitting a large BIO into multiple
> > requests. Though it may be good to revisit this with some benchmark numbers.
> 
> This patch tries to address issue[1] in do_direct_IO() in which
> Changheun observed that other operations takes time between adding page
> to bio.
> 
> However, do_direct_IO() just does following except for adding bio and
> submitting bio:
> 
> - retrieves pages at batch(pin 64 pages each time from VM) and 
> 
> - retrieve block mapping(get_more_blocks), which is still done usually
> very less times for 32MB; for new mapping, clean_bdev_aliases() may
> take a bit time.
> 
> If there isn't system memory pressure, pin 64 pages won't be slow, but
> get_more_blocks() may take a bit time.
> 
> Changheun, can you check if multiple get_more_blocks() is called for submitting
> 32MB in your test?

almost one time called.

> 
> In my 32MB sync dio f2fs test on x86_64 VM, one buffer_head mapping can
> hold 32MB, but it is one freshly new f2fs.
> 
> I'd suggest to understand the issue completely before figuring out one
> solution.

Thank you for your advice. I'll analyze more about your point later. :)
But I think it's different from finding main time spend point in
do_direct_IO(). I think excessive loop should be controlled.
8,192 loops in do_direct_IO() - for 32MB - to submit one bio is too much
on 4KB page system. I want to apply a optional solution to avoid
excessive loop casued by multipage bvec.

Thanks,

Changheun Lee

  parent reply	other threads:[~2021-04-13  4:55 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20210316080104epcas1p11483035c927c2e65600ae90309334b24@epcas1p1.samsung.com>
2021-03-16  7:44 ` [RESEND PATCH v5 1/2] bio: limit bio max size Changheun Lee
     [not found]   ` <CGME20210316080106epcas1p3522dda95e9c97fc39b40b008bbf87c04@epcas1p3.samsung.com>
2021-03-16  7:44     ` [RESEND PATCH v5 2/2] bio: add limit_bio_size sysfs Changheun Lee
2021-04-06 21:05       ` Bart Van Assche
     [not found]         ` <CGME20210407013850epcas1p2d305f138c9fa1431abba1ec44a382de9@epcas1p2.samsung.com>
2021-04-07  1:21           ` Changheun Lee
2021-04-07  5:43             ` Greg KH
     [not found]   ` <CGME20210406014905epcas1p16830a46b7ac6af95a0e2c2c6f4c04859@epcas1p1.samsung.com>
2021-04-06  1:31     ` [RESEND PATCH v5 1/2] bio: limit bio max size Changheun Lee
2021-04-06  7:32       ` Greg KH
     [not found]         ` <CGME20210407003345epcas1p21376df37d3dfe933684139d3beaf9c51@epcas1p2.samsung.com>
2021-04-07  0:16           ` Changheun Lee
2021-04-07  5:05             ` Greg KH
     [not found]               ` <CGME20210407052407epcas1p1d0b5d23ac04a68760f691954e7ada3dd@epcas1p1.samsung.com>
2021-04-07  5:06                 ` Changheun Lee
2021-04-07  5:36                   ` Greg KH
     [not found]                     ` <CGME20210407071241epcas1p2559ea674299b686c9001326894c933bc@epcas1p2.samsung.com>
2021-04-07  6:55                       ` Changheun Lee
2021-04-07  7:40                         ` Greg KH
     [not found]                           ` <CGME20210407094610epcas1p472207e8d3ca0e5e697974c993a2a34f7@epcas1p4.samsung.com>
2021-04-07  9:28                             ` [RESEND,v5,1/2] " Changheun Lee
2021-04-07 10:27                               ` Damien Le Moal
2021-04-09 14:47                                 ` Bart Van Assche
2021-04-11 22:13                                   ` Damien Le Moal
2021-04-12  3:23                                     ` Ming Lei
     [not found]                                       ` <CGME20210413045517epcas1p32b058646dd795e59389401ca997c4cac@epcas1p3.samsung.com>
2021-04-13  4:37                                         ` Changheun Lee [this message]
2021-04-13  5:32                                           ` 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=20210413043733.28880-1-nanich.lee@samsung.com \
    --to=nanich.lee@samsung.com \
    --cc=Damien.LeMoal@wdc.com \
    --cc=Johannes.Thumshirn@wdc.com \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@infradead.org \
    --cc=jisoo2146.oh@samsung.com \
    --cc=junho89.kim@samsung.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=mj0123.lee@samsung.com \
    --cc=osandov@fb.com \
    --cc=patchwork-bot@kernel.org \
    --cc=seunghwan.hyun@samsung.com \
    --cc=sookwan7.kim@samsung.com \
    --cc=tj@kernel.org \
    --cc=tom.leiming@gmail.com \
    --cc=woosung2.lee@samsung.com \
    --cc=yt0928.kim@samsung.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.