From: Eric Dumazet <dada1@cosmosbay.com>
To: Christoph Lameter <cl@linux.com>
Cc: David Miller <davem@davemloft.net>,
Michael Chan <mchan@broadcom.com>,
Ben Hutchings <bhutchings@solarflare.com>,
netdev@vger.kernel.org
Subject: Re: Network latency regressions from 2.6.22 to 2.6.29 (results with IRQ affinity)
Date: Mon, 20 Apr 2009 20:46:34 +0200 [thread overview]
Message-ID: <49ECC30A.9040501@cosmosbay.com> (raw)
In-Reply-To: <alpine.DEB.1.10.0904201410430.3361@qirst.com>
Christoph Lameter a écrit :
> On Mon, 20 Apr 2009, Eric Dumazet wrote:
>
>>> Sounds very good. If I just knew what you are measuring.
>> Rephrasing my email, I was measuring latencies on the receiving machine,
>> by using tcpdump and doing substraction of 'answer_time' and 'request_time'
>> Thing is that timestamps dont care about hardware delays.
>> (we note time when RX interrupt delivers the packet, and time right before giving frame to hardware)
>>
>>
>> 21:04:23.780421 IP 192.168.20.112.9001 > 192.168.20.110.9000: UDP, length 300 (request)
>> 21:04:23.780428 IP 192.168.20.110.9000 > 192.168.20.112.9001: UDP, length 300 (answer)
>>
>> Here, [21:04:23.780428 - 21:04:23.780421] = 7 us
>>
>> So my results are extensively published :)
>
> But they are not comparable with my results. There could be other effects
> in the system call API etc that have caused this regression. Plus tcpdump
> causes additional copies of the packet to be delivered to user space.
Yep, this was all mentioned in my mail.
I wanted to compare latencies on receiver only, ruling out hardware, and ruling out sender (no need to reboot it)
These latencies are higher than ones without tcpdump, since more copies are involved with tcpdump.
About system call API effects, they are included in my tests.
Since :
t0 : time we receive packet from NIC
-> wakeup user process, scheduler...
User process returns from the recvfrom() copy from system to user space
User process does the sendto() copy from user to system space
t1: -> calling dev_start_xmit()
packet given to NIC driver (idle during the tests, so should really send the packet asap)
User call again recvfrom() and block (this one is not accounted in latency, as in your test)
t2: NIC driver acknowledge the TX
delta = t1 - t0
One thing that could hurt is the TX done interrupt, but this is done a few us after "t1" so it
doesnt hurt your workload, since next frame is received at least 100us after the last answer...
(cpu is idle 99%)
Point is that even with tcpdump running, latencies are very good on 2.6.30-rc2, and were very good
with 2.6.22. I see no significant increase/decrease...
>
>>> CONFIG_HPET_TIMER=y
>>> CONFIG_HPET_EMULATE_RTC=y
>>> CONFIG_NR_CPUS=32
>>> CONFIG_SCHED_SMT=y
>> OK, I had "# CONFIG_SCHED_SMT is not set"
>> I'll try with this option set
>
> Should not be relevant since the processor has no hyperthreading.
>
>> Are you running a 32 or 64 bits kernel ?
>
> Test was done using a 64 bit kernel.
Ok, I'll try 64bit too :)
1 us is time to access about 10 false shared cache lines.
64 bit arches store less pointers/long per cache line.
So a 64 bit kernel could be slower on this kind of workload in the general case (if several cpus play the game)
next prev parent reply other threads:[~2009-04-20 18:47 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-16 16:10 Network latency regressions from 2.6.22 to 2.6.29 Christoph Lameter
2009-04-16 17:21 ` Rick Jones
2009-04-16 19:06 ` Christoph Lameter
2009-04-16 19:29 ` Eric Dumazet
2009-04-16 19:33 ` Christoph Lameter
2009-04-16 22:47 ` David Miller
2009-04-17 13:46 ` Christoph Lameter
2009-04-17 21:43 ` Ilpo Järvinen
2009-04-16 20:05 ` Rick Jones
2009-04-16 18:07 ` Ben Hutchings
2009-04-16 19:02 ` Christoph Lameter
2009-04-16 21:19 ` Ben Hutchings
2009-04-16 22:47 ` David Miller
2009-04-16 19:43 ` Eric Dumazet
2009-04-16 19:50 ` Eric Dumazet
2009-04-16 20:01 ` Christoph Lameter
2009-04-16 23:00 ` David Miller
2009-04-17 16:42 ` Network latency regressions from 2.6.22 to 2.6.29 (results with IRQ affinity) Christoph Lameter
2009-04-18 8:18 ` Eric Dumazet
2009-04-18 8:20 ` Eric Dumazet
2009-04-18 19:43 ` Eric Dumazet
2009-04-20 17:29 ` Christoph Lameter
2009-04-20 17:57 ` Eric Dumazet
2009-04-20 18:13 ` Christoph Lameter
2009-04-20 18:46 ` Eric Dumazet [this message]
2009-04-20 19:16 ` Christoph Lameter
2009-04-20 20:07 ` Eric Dumazet
2009-04-20 21:14 ` Christoph Lameter
2009-04-20 21:52 ` Eric Dumazet
2009-04-21 14:00 ` Christoph Lameter
2009-04-21 19:36 ` Network latency regressions from 2.6.22 to 2.6.29 (MSI off) Christoph Lameter
2009-04-20 19:44 ` Network latency regressions from 2.6.22 to 2.6.29 (results with IRQ affinity) Evgeniy Polyakov
2009-04-16 19:55 ` Network latency regressions from 2.6.22 to 2.6.29 Christoph Lameter
2009-04-16 21:57 ` Michael Chan
2009-04-17 13:47 ` Christoph Lameter
2009-04-16 22:59 ` David Miller
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=49ECC30A.9040501@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=bhutchings@solarflare.com \
--cc=cl@linux.com \
--cc=davem@davemloft.net \
--cc=mchan@broadcom.com \
--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).