2006-05-22 23:45:12

by Lee Revell

[permalink] [raw]
Subject: Question re: __mlog_cpu_guess in fs/ocfs2/cluster/masklog.h

I am puzzled by this code and comment:

/*
* smp_processor_id() "helpfully" screams when called outside preemptible
* regions in current kernels. sles doesn't have the variants that don't
* scream. just do this instead of trying to guess which we're building
* against.. *sigh*.
*/
#define __mlog_cpu_guess ({ \
unsigned long _cpu = get_cpu(); \
put_cpu(); \
_cpu; \
})

First I think you mean "inside preemptible regions". Second, it screams
because it's a bug to call smp_processor_id() from preemptible code!

Am I missing something?

Lee


2006-05-23 15:27:51

by Zach Brown

[permalink] [raw]
Subject: Re: Question re: __mlog_cpu_guess in fs/ocfs2/cluster/masklog.h


> Am I missing something?

The comment isn't particularly coherent and can be gotten rid of. What
puzzles you about the code?

- z

2006-05-23 16:34:37

by Lee Revell

[permalink] [raw]
Subject: Re: Question re: __mlog_cpu_guess in fs/ocfs2/cluster/masklog.h

On Tue, 2006-05-23 at 08:27 -0700, Zach Brown wrote:
> > Am I missing something?
>
> The comment isn't particularly coherent and can be gotten rid of. What
> puzzles you about the code?

I was wondering how it could not be a bug to use smp_processor_id in
preemptible code, but I see that it's only used for debug output. Sorry
for the noise.

Lee

2006-05-23 16:42:56

by Zach Brown

[permalink] [raw]
Subject: Re: Question re: __mlog_cpu_guess in fs/ocfs2/cluster/masklog.h


> I was wondering how it could not be a bug to use smp_processor_id in
> preemptible code, but I see that it's only used for debug output. Sorry
> for the noise.

No problem, thanks for taking a look in the first place. We'll update
the comment to make it more explicit.

- z