Messages in this thread | | | Subject | Re: 2.6.9-rc3-mm2 | From | Rusty Russell <> | Date | Fri, 15 Oct 2004 11:38:05 +1000 |
| |
On Wed, 2004-10-06 at 00:07, Dominik Karall wrote: > On Monday 04 October 2004 11:02, Andrew Morton wrote: > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc3/2.6 > >.9-rc3-mm2/ > > some more scheduling/preempt problems. following patches were applied: > --- > 25/include/linux/netfilter_ipv4/ip_conntrack.h~conntrack-preempt-safety-fix > Mon Oct 4 14:36:19 2004 > +++ 25-akpm/include/linux/netfilter_ipv4/ip_conntrack.h Mon Oct 4 14:37:02 > 2004 > @@ -311,10 +311,11 @@ struct ip_conntrack_stat > unsigned int expect_delete; > }; > > -#define CONNTRACK_STAT_INC(count) \ > - do { \ > - per_cpu(ip_conntrack_stat, get_cpu()).count++; \ > - put_cpu(); \ > +#define CONNTRACK_STAT_INC(count) \ > + do { \ > + preempt_disable(); \ > + per_cpu(ip_conntrack_stat, smp_processor_id()).count++; \ > + preempt_disable(); \ > } while (0)
Please, please please! Never use per_cpu(XXX, smp_processor_id())! In this case, it's "get_cpu_var(ip_conntrack_stat).count++; put_cpu(), although I think this code should only be called in a softirq, so a simple "__get_cpu_var(ip_conntrack_stat).count++;" is sufficient.
Rusty. -- Anyone who quotes me in their signature is an idiot -- Rusty Russell
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |