Re: [PATCH 2/4] x86 mmiotrace: fix relay-buffer-full flag for SMP

From: Pekka Paalanen
Date: Tue Feb 05 2008 - 16:15:11 EST


On Tue, 05 Feb 2008 21:44:07 +0100
Eric Dumazet <dada1@xxxxxxxxxxxxx> wrote:

> Pekka Paalanen a écrit :
> > diff --git a/arch/x86/kernel/mmiotrace/mmio-mod.c b/arch/x86/kernel/mmiotrace/mmio-mod.c
> > index 82ae920..f492b65 100644
> > --- a/arch/x86/kernel/mmiotrace/mmio-mod.c
> > +++ b/arch/x86/kernel/mmiotrace/mmio-mod.c
> > @@ -47,9 +48,13 @@ struct trap_reason {
> > int active_traces;
> > };
> >
> > +/* Accessed per-cpu. */
> > static struct trap_reason pf_reason[NR_CPUS];
> > static struct mm_io_header_rw cpu_trace[NR_CPUS];
> >
> > +/* Access to this is not per-cpu. */
> > +static atomic_t dropped[NR_CPUS];
> > +
>
> Please dont introduce NR_CPUS new arrays, since people are working hard to zap
> them from kernel.
>
> You probably can use a per_cpu variable ?

Yes, it would probably be more appropriate to use DEFINE_PER_CPU()
for 'pf_reason' and 'cpu_trace', but I wasn't sure since the examples
of DEFINE_PER_CPU I saw always had integers or pointers, not
whole structs. Is it okay for whole structs?

'dropped' on the other hand is not accessed in per-cpu style, any cpu
may access any element. DEFINE_PER_CPU is not valid here, is it?

Thanks for the note, I knew I should fix that at some point.

--
Pekka Paalanen
http://www.iki.fi/pq/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/