Lets make wifi fast again!
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: make-wifi-fast@lists.bufferbloat.net
Subject: Re: [Make-wifi-fast] emulating wifi better - coupling qdiscs in netem?
Date: Mon, 18 Jun 2018 15:27:14 -0700	[thread overview]
Message-ID: <f7eb40c2-360d-fa06-dfa2-7be1203462da@gmail.com> (raw)
In-Reply-To: <96697B23-46AB-4BA7-8B7E-2A66C1E67911@heistp.net>



On 06/18/2018 02:54 PM, Pete Heist wrote:
> 
>> On Jun 18, 2018, at 9:44 PM, Dave Taht <dave.taht@gmail.com <mailto:dave.taht@gmail.com>> wrote:
>>
>> This is still without batch releases, yes?
> 
> Yes, I should've tried that earlier, but I’m scratching my head now as to how it works. Perhaps it’s because the old example I’m using for the non-GSO case uses deprecated functions and I ought to just ditch it, but I thought if in my callback I just switched:
> 
> return nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);
> 
> to
> 
> return nfq_set_verdict_batch(qh, id + 8, NF_ACCEPT);
> 
> that my callback might not be called for the subsequent 8 packets I’ve accepted, however it continues to be called for each id sequentially anyway and throughput is no better. If I change 8 to something unreasonable, like 1000000, throughput is cut in half, so it’s doing “something”.
> 
> There are functions in the newer GSO example like nfq_nlmsg_verdict_put, but I don’t see a batch version of that. So, I’m likely missing something…
> 
> BTW I don’t see a change setting SO_BUSY_POLL on nfq’s fd (tried 1000 - 1000000 usec).
>

busy polling does not request SO_BUSY_POLL.

Usually, we simply use non blocking system calls in a big loop.
( nl_socket_get_fd() -> then set the file in O_NDELAY mode)

SO_BUSY_POLL is a way to directly call the NAPI handler of the device (or more precisely RX queue)
feeding packets. This saves the hard interrupt latency.

For NFQUEUE, that would require a bit of plumbing I guess.

Each NF Queue would have to record (in the kernel) the NAPI id of intercepted packets.
-> A bit complicated since the number of RX queues on a NIC/host is quite variable.


  reply	other threads:[~2018-06-18 22:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-30 17:28 Dave Taht
2018-05-30 18:32 ` Bob McMahon
2018-05-30 18:54   ` Dave Taht
2018-05-30 18:58     ` Jonathan Morton
2018-05-30 19:19     ` Bob McMahon
2018-05-30 23:26       ` Dave Taht
2018-05-30 22:57 ` dpreed
2018-06-15 22:30   ` Dave Taht
2018-06-16 22:53     ` Pete Heist
2018-06-17 11:19       ` Jesper Dangaard Brouer
2018-06-17 15:16         ` Pete Heist
2018-06-17 16:09           ` Dave Taht
2018-06-17 18:38             ` Pete Heist
2018-06-17 18:47               ` Jonathan Morton
2018-06-18  9:24                 ` Pete Heist
2018-06-18 16:08                   ` Eric Dumazet
2018-06-18 19:33                     ` Pete Heist
2018-06-18 19:44                       ` Dave Taht
2018-06-18 21:54                         ` Pete Heist
2018-06-18 22:27                           ` Eric Dumazet [this message]
2018-06-17 20:42               ` Dave Taht
2018-06-18  1:02                 ` Eric Dumazet
2018-06-18  0:59       ` Eric Dumazet

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

  List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f7eb40c2-360d-fa06-dfa2-7be1203462da@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    /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