On Thu, Aug 30, 2012 at 11:18:23AM -0700, Paul E. McKenney wrote:
> From: Dimitri Sivanich <[email protected]>
> 
> The fields in the rcu_state structure that are protected by the
> root rcu_node structure's ->lock can share a cache line with the
> fields protected by ->onofflock.  This can result in excessive
> memory contention on large systems, so this commit applies
> ____cacheline_internodealigned_in_smp to the ->onofflock field in
> order to segregate them.
> 
> Signed-off-by: Dimitri Sivanich <[email protected]>
> Signed-off-by: Paul E. McKenney <[email protected]>
> Tested-by: Dimitri Sivanich <[email protected]>

Reviewed-by: Josh Triplett <[email protected]>

>  kernel/rcutree.h |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/kernel/rcutree.h b/kernel/rcutree.h
> index effb273..5d92b80 100644
> --- a/kernel/rcutree.h
> +++ b/kernel/rcutree.h
> @@ -394,7 +394,8 @@ struct rcu_state {
>  
>       /* End of fields guarded by root rcu_node's lock. */
>  
> -     raw_spinlock_t onofflock;               /* exclude on/offline and */
> +     raw_spinlock_t onofflock ____cacheline_internodealigned_in_smp;
> +                                             /* exclude on/offline and */
>                                               /*  starting new GP. */
>       struct rcu_head *orphan_nxtlist;        /* Orphaned callbacks that */
>                                               /*  need a grace period. */
> -- 
> 1.7.8
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to