Re: [my_cpu_ptr 1/5] Introduce my_cpu_ptr()

Rusty Russell
2009-05-31T03:19:21Z

On Sat, 30 May 2009 01:07:48 am Christoph Lameter wrote:
> On Fri, 29 May 2009, Rusty Russell wrote:
> > > Have not seen it but it would be a bit confusing since
> > > we already have get_cpu* which must be paired with put_cpu*
> > > because of the refcount taking (get_cpu_var and get_cpu).
> > > get_cpu_ptr() would not have to be paired.
> >
> > To clarify, get_cpu_ptr() would be paired with put_cpu_ptr().
> > __get_cpu_ptr() would be the "raw" one:
> >
> > #define get_cpu_ptr(xx) per_cpu_ptr(xx, get_cpu())
> > #define __get_cpu_ptr(xx) per_cpu_ptr(xx, smp_processor_id())
>
> Hmmm.. That would be a major change in semantics.

It's exactly like get_cpu_var. For better or worse, let's not invent YA new
convention.

> How would that look for atomic per cpu ops?
>
> get_cpu_ptr_inc(per_cpu_ptr1);
> __get_cpu_ptr_inc(per_cpu_ptr2)
> put_cpu_ptr()
>
> vs.
>
> this_cpu_inc(per_cpu_ptr1)
> this_cpu_inc(per_cpu_ptr2)

Well, get_* doesn't really make sense for any function which doesn't return a
value.

So that name question doesn't really have a clear convention answer: we could
re-use cpu_local_inc() since I think we decided to kill local_t. I slightly
prefer it over "this_cpu_*" since we're not actually doing anything to the cpu
itself, but I don't think anyone will get too confused and think that after
this executes their CPU will be stepping 11. :)

Thanks,
Rusty.