[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1326669030.5287.112.camel@edumazet-laptop>
Date: Mon, 16 Jan 2012 00:10:30 +0100
From: Eric Dumazet <eric.dumazet@...il.com>
To: Yuehai Xu <yuehaixu@...il.com>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
yhxu@...ne.edu
Subject: Re: Why the number of /proc/interrupts doesn't change when nic is
under heavy workload?
Le dimanche 15 janvier 2012 à 17:45 -0500, Yuehai Xu a écrit :
> However, this also means there is a certain core
> needs to handle all softirqs, simply because my smp_affinity of irq
> doesn't work here.
You miss something here. You really should not ask to distribute
hardware irqs on all cores. This is in conflict with RPS, but also with
cache efficiency.
And anyway, if load is high enough, only one core is calling nic poll()
from its NAPI handler.
One cpu handles the nic poll(), and thanks to RPS distributes packets to
other cpus so that they handle (in their softirq handler) the IP stack,
plus the TCP/UDP stack.
> Even RPS can alleviate some softirqs to other
> cores, it doesn't solve the problem 100%.
Problem is we dont know yet what is 'the problem', as you gave litle
info.
(You didnt tell us if your memcached was using TCP or UDP transport)
If your workload consists of many short lived tcp connections , RPS wont
help that much because the three way handshake needs to hold the
listener lock.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists