From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: "Maciej Żenczykowski" <zenczykowski@gmail.com>
Cc: "Maciej Żenczykowski" <maze@google.com>,
"Linux USB Mailing List" <linux-usb@vger.kernel.org>,
"Brooke Basile" <brookebasile@gmail.com>,
"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
"Felipe Balbi" <balbi@kernel.org>,
"Lorenzo Colitti" <lorenzo@google.com>
Subject: Re: [PATCH] usb: f_ncm: only first packet of aggregate needs to start timer
Date: Wed, 9 Jun 2021 10:34:50 +0200 [thread overview]
Message-ID: <YMB9Knbpif9AopIJ@kroah.com> (raw)
In-Reply-To: <YMB7hD2fLwlHY4/t@kroah.com>
On Wed, Jun 09, 2021 at 10:27:48AM +0200, Greg Kroah-Hartman wrote:
> On Tue, Jun 08, 2021 at 01:54:38AM -0700, Maciej Żenczykowski wrote:
> > From: Maciej Żenczykowski <maze@google.com>
> >
> > The reasoning for this change is that if we already had
> > a packet pending, then we also already had a pending timer,
> > and as such there is no need to reschedule it.
> >
> > This also prevents packets getting delayed 60 ms worst case
> > under a tiny packet every 290us transmit load, by keeping the
> > timeout always relative to the first queued up packet.
> > (300us delay * 16KB max aggregation / 80 byte packet =~ 60 ms)
> >
> > As such the first packet is now at most delayed by 300us.
> >
> > Under low transmit load, this will simply result in us sending
> > a shorter aggregate, as originally intended.
> >
> > This patch has the benefit of greatly reducing (by ~10 factor
> > with 1500 byte frames aggregated into 16 kiB) the number of
> > (potentially pretty costly) updates to the hrtimer.
> >
> > Cc: Brooke Basile <brookebasile@gmail.com>
> > Cc: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> > Cc: Felipe Balbi <balbi@kernel.org>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Lorenzo Colitti <lorenzo@google.com>
> > Signed-off-by: Maciej Żenczykowski <maze@google.com>
> > ---
> > drivers/usb/gadget/function/f_ncm.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c
> > index 0d23c6c11a13..855127249f24 100644
> > --- a/drivers/usb/gadget/function/f_ncm.c
> > +++ b/drivers/usb/gadget/function/f_ncm.c
> > @@ -1101,11 +1101,11 @@ static struct sk_buff *ncm_wrap_ntb(struct gether *port,
> > ncm->ndp_dgram_count = 1;
> >
> > /* Note: we skip opts->next_ndp_index */
> > - }
> >
> > - /* Delay the timer. */
> > - hrtimer_start(&ncm->task_timer, TX_TIMEOUT_NSECS,
> > - HRTIMER_MODE_REL_SOFT);
> > + /* Start the timer. */
> > + hrtimer_start(&ncm->task_timer, TX_TIMEOUT_NSECS,
> > + HRTIMER_MODE_REL_SOFT);
> > + }
> >
> > /* Add the datagram position entries */
> > ntb_ndp = skb_put_zero(ncm->skb_tx_ndp, dgram_idx_len);
>
> Nice, hopefully this helps out a lot on the systems where re-arming
> timers are slow.
And that's what the changelog said, I need more coffee...
prev parent reply other threads:[~2021-06-09 8:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-08 8:54 [PATCH] usb: f_ncm: only first packet of aggregate needs to start timer Maciej Żenczykowski
2021-06-09 8:27 ` Greg Kroah-Hartman
2021-06-09 8:34 ` Greg Kroah-Hartman [this message]
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=YMB9Knbpif9AopIJ@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=balbi@kernel.org \
--cc=brookebasile@gmail.com \
--cc=bryan.odonoghue@linaro.org \
--cc=linux-usb@vger.kernel.org \
--cc=lorenzo@google.com \
--cc=maze@google.com \
--cc=zenczykowski@gmail.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.