lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <20070912121830.4d2e3940.dada1@cosmosbay.com> Date: Wed, 12 Sep 2007 12:18:30 +0200 From: Eric Dumazet <dada1@...mosbay.com> To: Christoph Hellwig <hch@...radead.org> Cc: Herbert Xu <herbert@...dor.apana.org.au>, David Miller <davem@...emloft.net>, "netdev@...r.kernel.org" <netdev@...r.kernel.org> Subject: Re: [PATCH] NET : convert IP route cache garbage colleciton from softirq processing to a workqueue On Wed, 12 Sep 2007 11:00:54 +0100 Christoph Hellwig <hch@...radead.org> wrote: > This looks nice in general, getting things out of softirq context is > always good. I am preparing a patch to net/ipv4/route.c to migrate rt_check_expire() as well. > > On Tue, Sep 11, 2007 at 02:56:13PM +0200, Eric Dumazet wrote: > > #if RT_CACHE_DEBUG >= 2 > > static atomic_t dst_total = ATOMIC_INIT(0); > > #endif > > -static unsigned long dst_gc_timer_expires; > > -static unsigned long dst_gc_timer_inc = DST_GC_MAX; > > -static void dst_run_gc(unsigned long); > > +static struct { > > + spinlock_t lock; > > + struct dst_entry *list; > > + unsigned long timer_inc; > > + unsigned long timer_expires; > > +} dst_garbage = { > > + .lock = __SPIN_LOCK_UNLOCKED(dst_garbage.lock), > > + .timer_inc = DST_GC_MAX, > > +}; > > Can you please et rid of this useless struct? It just complicates > the code and means we can't use the proper DEFINE_SPINLOCK initializer. When using the standard DEFINE_SPINLOCK initializer, the lock is in the data section, while list is in bss section. This 'useless struct' makes lock/list being on the same cache line, so reduces latency of __dst_free(). I wish more structures in kernel be used instead of relying on random placement of the linker... > > > +DECLARE_DELAYED_WORK(dst_gc_work, dst_gc_task); > > This should be static. Yes I agree - 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