Re: [PATCHSET core/percpu] percpu: convert most archs to dynamicpercpu
From: Martin Schwidefsky
Date: Wed May 20 2009 - 04:43:49 EST
On Wed, 20 May 2009 16:37:32 +0900
Tejun Heo <tj@xxxxxxxxxx> wrote:
> Hello,
>
> Please do NOT pull before maintainers of alpha and s390 ack. Upon
> ack, please pull from the following git tree.
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git tj-percpu
>
> This patchset is combination of the last patch of
> percpu-use-dynamic-percpu-allocator-as-default patchset[1] and patches
> inspired by alpha conversion patch[2] posted by Ivan Kokshaysky.
>
> 0001-percpu-use-dynamic-percpu-allocator-as-the-default.patch
> 0002-linker-script-throw-away-.discard-section.patch
> 0003-percpu-clean-up-percpu-variable-definitions.patch
> 0004-percpu-enforce-global-uniqueness-and-disallow-in-fu.patch
> 0005-alpha-kill-unnecessary-__used-attribute-in-PER_CPU_.patch
> 0006-alpha-switch-to-dynamic-percpu-allocator.patch
> 0007-s390-switch-to-dynamic-percpu-allocator.patch
>
> 0001 is mostly unchanged except for added Acked-by's.
>
> 0002-0003 prepare for percpu variable definition update - .discard is
> thrown away on all archs when linking kernel and modules, static
> percpu variables in functions are moved outside of the function and
> all static percpu variables are given unique names.
>
> 0004 updates percpu variable definition such that all percpu variables
> in the same link unit have unique names regardless of its scope
> (static or global) and disallow in-function static definitions. The
> new definition uses dummy variables in .discard to enforce the
> declaration/definition semantics and always defines percpu variables
> as globals. This allows archs to add 'weak' attribute if necessary.
>
> 0005-0006 converts alpha to use 'weak' attribute instead of inline
> assembly to generate GOT based reference when referencing percpu
> variables from modules, which in turn allows conversion to dynamic
> percpu allocator.
>
> 0007 does the same for s390.
>
> The new DECLARE/DEFINE macros implement the following behaviors.
>
> a. DECLARE + static DEFINE -> compile error
>
> b. multiple non-static DEFINEs with the same name -> compile error
>
> c. multiple static/global DEFINEs with the same name -> compile error
>
> d. in function static DEFINEs -> compile error
>
> #a and #b are expected behaviors on DECLARE/DEFINE macros in general.
> #c and #d are necessary to allow 'weak' attribute on certain archs.
> Please note that the rules are applied consistently whether 'weak'
> attribute is specified or not. This eases catching mistakes and makes
> things less confusing.
>
> Test config boots and works fine on x86_64. alpha and s390 are
> compile tested and verified to generate necessary code for external
> references but I don't have any way to actually verify them, so please
> test them. :-)
>
> all-yes-config on x86_64 is building now. Ergggh... I want more
> memory. Okay, completed successfully.
Just tested the patch-series on s390. Works fine:
Acked-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Kudos to Tejun and Ivan :-)
--
blue skies,
Martin.
"Reality continues to ruin my life." - Calvin.
--
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/