From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-x234.google.com (mail-wm0-x234.google.com [IPv6:2a00:1450:400c:c09::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 8F7FD3B2A4 for ; Mon, 18 Jun 2018 15:33:28 -0400 (EDT) Received: by mail-wm0-x234.google.com with SMTP id o13-v6so15914809wmf.4 for ; Mon, 18 Jun 2018 12:33:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heistp.net; s=google; h=from:message-id:mime-version:subject:date:references:to:in-reply-to; bh=/3FeV6z4cWn0AS2l3YvzmWsMnIyStn0H01r9a0DBIPc=; b=BnA4U3yr1MRItr8ZUbj6Au1d3F76Eakw7kqPw5CVYPB8lzEXPRi8aCbgYyZu/HfwhQ PJ9mOEfEgFIvpdyj6ATIYYrikQNGdsm5CCcgNNGWghOErdUf2tYKICwWxnu4LIiBjpnx OcEoad920I3tQ1nb6H091T0mYRNL6AvnmUrwu5ZPfl0EKU9sGjKts6YoLHI0xlW5tJSw v3FV2RtbAaGnx5kRFysB88iKmw3vQJWJYjyRcNfIqObhwi+vO6RnxWziXg3VKI7Xg/na 6JMjfHi1Gp4qSJeZ36xOPLSwVFvHJy0/MtEnq1WIi3EZPvNrD5v4+SwU90kEWNfv28SN AKWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :references:to:in-reply-to; bh=/3FeV6z4cWn0AS2l3YvzmWsMnIyStn0H01r9a0DBIPc=; b=Z+cLRHH87yrAfyvj+sDfkVtaQSwr6T4enQ2+6OjLPJvioMfLONipyG7aQ0/nUHGfyf i/u4udKbJR7lIq4xd9EeMC5mRCMXwIQdv7DoLKuc5WZm7IosGsl3WhveLMuphNkR+i2g fB0Q5FGnlUlbmLoxDi8mzgfzY80XJ8edgOhXqrUO8C3CC6TWkYGknyBAHRsfUHwk84AS a+T/fFNi6D0xvoJvQB+pJ8hlqUYKuJbQ7V3CEBr5ky9C/VvQj7NUT1+drldHv0UH+rFS ULw++JVE/LImOc17WdgXQ1fJjBwPUW1hg2SFwuxy48N4ernv3sk21k7WeDEf68c0+i5Q yCSQ== X-Gm-Message-State: APt69E0jRBdgDnTRb0Q5kU4tUxF73wRZud4qS5RtcmoflKZwBOeuBCr0 xJUBUVdyqEkWeGEeIz5sJ/o9c+vSmqQ= X-Google-Smtp-Source: ADUXVKJV1X/aZnlaJtC6LHEb4kKzNnImwy7AqTXDQJbo05zH6LZhb1iRvaJxTNZ28Sbs4lEyh5EJ5w== X-Received: by 2002:a1c:d388:: with SMTP id k130-v6mr9091202wmg.66.1529350407499; Mon, 18 Jun 2018 12:33:27 -0700 (PDT) Received: from tron.luk.heistp.net (h-1169.lbcfree.net. [185.193.85.130]) by smtp.gmail.com with ESMTPSA id c11-v6sm16366215wri.49.2018.06.18.12.33.26 for (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Jun 2018 12:33:26 -0700 (PDT) From: Pete Heist Content-Type: multipart/alternative; boundary="Apple-Mail=_C0CDB292-56D8-402C-A1B3-901F11B3111B" Message-Id: Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Date: Mon, 18 Jun 2018 21:33:25 +0200 References: <1527721073.171416827@apps.rackspace.com> <150ABF21-FAFC-48E2-9E55-CAA609EAE449@heistp.net> <20180617131921.09bf5353@redhat.com> <5CC11C44-6C78-410D-B699-B4B1A6F5FBDD@heistp.net> <8f5915f8-7dad-f881-b0c8-f6b03165c675@gmail.com> To: Make-Wifi-fast In-Reply-To: <8f5915f8-7dad-f881-b0c8-f6b03165c675@gmail.com> X-Mailer: Apple Mail (2.3124) Subject: Re: [Make-wifi-fast] emulating wifi better - coupling qdiscs in netem? X-BeenThere: make-wifi-fast@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jun 2018 19:33:28 -0000 --Apple-Mail=_C0CDB292-56D8-402C-A1B3-901F11B3111B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On Jun 18, 2018, at 6:08 PM, Eric Dumazet = wrote: >=20 > nfq_set_mode(qh, NFQNL_COPY_PACKET, 0xffff) >=20 > -> >=20 > nfq_set_mode(qh, NFQNL_COPY_PACKET, 128); // assuming you want to = inspect headers Thanks for that. I see flat RTTs, and a sometimes significant increase = in throughputs. Unexpectedly, nfq with GSO throughputs are higher than = without nfq at all. ping mean (min-max) RTTs: APU2, nfq without GSO: 80 us -> 82 us APU2, nfq with GSO: 85 us -> 83 us 2011 MBP, nfq without GSO: 13 us -> 14 us 2011 MBP, nfq with GSO: 14 us -> 13 us iperf3 throughputs: APU2, nfq without GSO: 391 -> 415 Mbps APU2, nfq with GSO: 3.35 -> 6.07 Gbps [higher than no nfqueue, 5.55 -> = 6.07] 2011 MBP, nfq without GSO: 1.48 Gbps -> 2.73 Gbps 2011 MBP, nfq with GSO: 38.0 Gbps -> 45.5 Gbps [higher than no nfqueue, = 39.2 -> 45.5] --Apple-Mail=_C0CDB292-56D8-402C-A1B3-901F11B3111B Content-Type: multipart/mixed; boundary="Apple-Mail=_2149DB34-7F3A-4AD6-A76E-03886DC5CB94" --Apple-Mail=_2149DB34-7F3A-4AD6-A76E-03886DC5CB94 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii
On Jun 18, 2018, at 6:08 PM, Eric Dumazet <eric.dumazet@gmail.com> = wrote:

nfq_set_mode(qh, NFQNL_COPY_PACKET, = 0xffff)

->

nfq_set_mode(qh, NFQNL_COPY_PACKET, 128); = // assuming you want to inspect headers

Thanks for that. I see flat RTTs, and a = sometimes significant increase in throughputs. Unexpectedly, nfq with = GSO throughputs are higher than without nfq at all.

ping mean (min-max) = RTTs:

APU2, nfq without GSO: 80 us = -> 82 us
APU2, nfq with GSO: 85 us -> 83 = us
2011 MBP, nfq without GSO: 13 us -> 14 us
2011 MBP, nfq with GSO: 14 us -> 13 us

iperf3 = throughputs:

APU2, nfq without GSO: 391 -> 415 Mbps
APU2, nfq with GSO: 3.35 -> 6.07 Gbps [higher than no = nfqueue, 5.55 -> 6.07]
2011 = MBP, nfq without GSO: 1.48 Gbps -> 2.73 Gbps
2011 MBP, nfq with GSO: 38.0 Gbps -> 45.5 Gbps = [higher than no nfqueue, 39.2 -> 45.5]

= --Apple-Mail=_2149DB34-7F3A-4AD6-A76E-03886DC5CB94 Content-Disposition: attachment; filename=nfqtest.tar.gz Content-Type: application/x-gzip; x-unix-mode=0644; name="nfqtest.tar.gz" Content-Transfer-Encoding: base64 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 0eKL4wamcsDJAKAAAA== --Apple-Mail=_2149DB34-7F3A-4AD6-A76E-03886DC5CB94 Content-Transfer-Encoding: 7bit Content-Type: text/html; charset=us-ascii
--Apple-Mail=_2149DB34-7F3A-4AD6-A76E-03886DC5CB94-- --Apple-Mail=_C0CDB292-56D8-402C-A1B3-901F11B3111B--