From: Al Viro on
On Tue, Jan 26, 2010 at 12:22:07AM +0900, Tejun Heo wrote:
> This patchset adds __percpu sparse annotations to all percpu users
> covered by x86_64 allmodconfig. __percpu annotation teaches sparse
> that percpu variables live in a separate address space and can't be
> accessed directly without going through percpu accessors. This allows
> detection of most percpu access mistakes involving both static and
> dyanmic percpu variables.
>
> This patchset contains the following eight patches.
>
> 0001-percpu-add-__percpu-sparse-annotations-to-core-kerne.patch
> 0002-percpu-add-__percpu-sparse-annotations-to-fs.patch
> 0003-percpu-add-__percpu-sparse-annotations-to-net.patch
> 0004-percpu-add-__percpu-sparse-annotations-to-net-driver.patch
> 0005-percpu-add-__percpu-sparse-annotations-to-x86.patch
> 0006-percpu-add-__percpu-sparse-annotations-to-trace.patch
> 0007-percpu-add-__percpu-sparse-annotations-to-hw_breakpo.patch
> 0008-percpu-add-__percpu-sparse-annotations-to-what-s-lef.patch
>
> As these annotations are for sparse, none of the above patches affects
> normal kernel build and most of the conversions are straight-forward
> and trivial. There are a few places where the conversion isn't
> completely straight-forward (but still fairly trivial). Those are
> mentioned in each patch description.
>
> I can route the patch through percpu and conflict resolution, if
> necessary, wouldn't be difficult at all for these changes. If anyone
> wants to route one of these patches through a different tree, please
> let me know. All that's necessary would be adding dummy __percpu
> definition to the patch.
>
> If nobody objects, I'll push these into percpu tree in three or four
> days.

Um. Where *is* the definition of __percpu? Presumably, that'd be
something like __attribute__((noderef,address_space(4)) under ifdef
__CHECKER__ and empty otherwise? If so, I'm fine with that patchset,
provided that it does grow that #define and becomes self-contained...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Tejun Heo on
Hello,

On 01/26/2010 08:14 AM, Al Viro wrote:
> Um. Where *is* the definition of __percpu? Presumably, that'd be
> something like __attribute__((noderef,address_space(4)) under ifdef
> __CHECKER__ and empty otherwise? If so, I'm fine with that patchset,
> provided that it does grow that #define and becomes self-contained...

Ah... sorry, I forgot about the base tree. The definition has been in
the percpu tree for some time now. The patchset is on top of the
following branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git for-next

and the series is available as git tree in the following branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git percpu-sparse-review

The definition is in include/linux/compiler.h.

# define __percpu __attribute__((noderef, address_space(3)))

which gets replaced by dummy def if !__CHECKER__.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Tejun Heo on
On 01/26/2010 12:22 AM, Tejun Heo wrote:
> If nobody objects, I'll push these into percpu tree in three or four
> days.

Patchset pushed out w/ the array workarounds dropped.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/