[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1265695598.4236.95.camel@edumazet-laptop>
Date: Tue, 09 Feb 2010 07:06:38 +0100
From: Eric Dumazet <eric.dumazet@...il.com>
To: Stephen Hemminger <shemminger@...tta.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
David Miller <davem@...emloft.net>, pstaszewski@...are.pl,
netdev@...r.kernel.org
Subject: Re: [PATCH] dst: call cond_resched() in dst_gc_task()
Le lundi 08 février 2010 à 15:50 -0800, Stephen Hemminger a écrit :
> No, cache doesn't help.
>
> Robert who is the expert in this area, runs with FIB TRIE and
> no routing cache.
Who knows, it probably depends on many factors. I always run with cache
enabled, because it saves cycles on moderate load.
FIB_TRIE is unrelated here, if routing table is very small, it fits HASH
or TRIE.
Pawel hit the bug with tunables that basically enabled the cache but in
a non helpful way (filling the list of busy dst). User error combined
with a lazy kernel function :)
Please note that conversion from softirq to workqueue, without
scheduling point, might/probably use same cpu for handling network irqs
and running dst_gc_task() :
On big routers, admins usually use irq affinities, so we can have very
litle cpu time available to run other tasks on those cpus.
After this patch, I believe that scheduler is allowed to migrate
dst_gc_task() to an idle cpu.
Another point (for 2.6.34) to address is the dst_gc_mutex that can delay
NETDEV_UNREGISTER/NETDEV_DOWN events for a long period.
--
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