From: Stefan Hajnoczi <stefanha@redhat.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCHSET v3 0/5] Add support for epoll min_wait
Date: Tue, 8 Nov 2022 09:00:49 -0500 [thread overview]
Message-ID: <Y2phEZKYuSmPL5B5@fedora> (raw)
In-Reply-To: <4281b354-d67d-2883-d966-a7816ed4f811@kernel.dk>
[-- Attachment #1: Type: text/plain, Size: 1543 bytes --]
On Mon, Nov 07, 2022 at 02:38:52PM -0700, Jens Axboe wrote:
> On 11/7/22 1:56 PM, Stefan Hajnoczi wrote:
> > Hi Jens,
> > NICs and storage controllers have interrupt mitigation/coalescing
> > mechanisms that are similar.
>
> Yep
>
> > NVMe has an Aggregation Time (timeout) and an Aggregation Threshold
> > (counter) value. When a completion occurs, the device waits until the
> > timeout or until the completion counter value is reached.
> >
> > If I've read the code correctly, min_wait is computed at the beginning
> > of epoll_wait(2). NVMe's Aggregation Time is computed from the first
> > completion.
> >
> > It makes me wonder which approach is more useful for applications. With
> > the Aggregation Time approach applications can control how much extra
> > latency is added. What do you think about that approach?
>
> We only tested the current approach, which is time noted from entry, not
> from when the first event arrives. I suspect the nvme approach is better
> suited to the hw side, the epoll timeout helps ensure that we batch
> within xx usec rather than xx usec + whatever the delay until the first
> one arrives. Which is why it's handled that way currently. That gives
> you a fixed batch latency.
min_wait is fine when the goal is just maximizing throughput without any
latency targets.
The min_wait approach makes it hard to set a useful upper bound on
latency because unlucky requests that complete early experience much
more latency than requests that complete later.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2022-11-08 14:02 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-30 22:01 [PATCHSET v3 0/5] Add support for epoll min_wait Jens Axboe
2022-10-30 22:01 ` [PATCH 1/6] eventpoll: cleanup branches around sleeping for events Jens Axboe
2022-10-30 22:01 ` [PATCH 2/6] eventpoll: don't pass in 'timed_out' to ep_busy_loop() Jens Axboe
2022-10-30 22:02 ` [PATCH 3/6] eventpoll: split out wait handling Jens Axboe
2022-10-30 22:02 ` [PATCH 4/6] eventpoll: move expires to epoll_wq Jens Axboe
2022-10-30 22:02 ` [PATCH 5/6] eventpoll: move file checking earlier for epoll_ctl() Jens Axboe
2022-10-30 22:02 ` [PATCH 6/6] eventpoll: add support for min-wait Jens Axboe
2022-11-08 22:14 ` Soheil Hassas Yeganeh
2022-11-08 22:20 ` Jens Axboe
2022-11-08 22:25 ` Willem de Bruijn
2022-11-08 22:29 ` Jens Axboe
2022-11-08 22:44 ` Willem de Bruijn
2022-11-08 22:41 ` Soheil Hassas Yeganeh
2022-12-01 18:00 ` Jens Axboe
2022-12-01 18:39 ` Soheil Hassas Yeganeh
2022-12-01 18:41 ` Jens Axboe
2022-11-02 17:46 ` [PATCHSET v3 0/5] Add support for epoll min_wait Willem de Bruijn
2022-11-02 17:54 ` Jens Axboe
2022-11-02 23:09 ` Willem de Bruijn
2022-11-02 23:37 ` Jens Axboe
2022-11-02 23:51 ` Willem de Bruijn
2022-11-02 23:57 ` Jens Axboe
2022-11-05 17:39 ` Jens Axboe
2022-11-05 18:05 ` Willem de Bruijn
2022-11-05 18:46 ` Jens Axboe
2022-11-07 13:25 ` Willem de Bruijn
2022-11-07 14:19 ` Jens Axboe
2022-11-07 10:10 ` David Laight
2022-11-07 20:56 ` Stefan Hajnoczi
2022-11-07 21:38 ` Jens Axboe
2022-11-08 14:00 ` Stefan Hajnoczi [this message]
2022-11-08 14:09 ` Jens Axboe
2022-11-08 16:10 ` Stefan Hajnoczi
2022-11-08 16:15 ` Jens Axboe
2022-11-08 17:24 ` Stefan Hajnoczi
2022-11-08 17:28 ` Jens Axboe
2022-11-08 20:29 ` Stefan Hajnoczi
2022-11-09 10:09 ` David Laight
2022-11-10 10:13 ` Willem de Bruijn
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=Y2phEZKYuSmPL5B5@fedora \
--to=stefanha@redhat.com \
--cc=axboe@kernel.dk \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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).