lkml.org 
[lkml]   [2017]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 25/88] srcu: Shrink Tiny SRCU a bit more
    Date
    This commit rearranges Tiny SRCU's srcu_struct structure, substitutes
    u8 for bool, and shrinks counters down to short.

    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    ---
    include/linux/srcutiny.h | 8 ++++----
    kernel/rcu/rcutorture.c | 2 +-
    2 files changed, 5 insertions(+), 5 deletions(-)

    diff --git a/include/linux/srcutiny.h b/include/linux/srcutiny.h
    index 42311ee0334f..b8859179b001 100644
    --- a/include/linux/srcutiny.h
    +++ b/include/linux/srcutiny.h
    @@ -27,15 +27,15 @@
    #include <linux/swait.h>

    struct srcu_struct {
    - int srcu_lock_nesting[2]; /* srcu_read_lock() nesting depth. */
    + short srcu_lock_nesting[2]; /* srcu_read_lock() nesting depth. */
    + short srcu_idx; /* Current reader array element. */
    + u8 srcu_gp_running; /* GP workqueue running? */
    + u8 srcu_gp_waiting; /* GP waiting for readers? */
    struct swait_queue_head srcu_wq;
    /* Last srcu_read_unlock() wakes GP. */
    unsigned long srcu_gp_seq; /* GP seq # for callback tagging. */
    struct rcu_segcblist srcu_cblist;
    /* Pending SRCU callbacks. */
    - int srcu_idx; /* Current reader array element. */
    - bool srcu_gp_running; /* GP workqueue running? */
    - bool srcu_gp_waiting; /* GP waiting for readers? */
    struct work_struct srcu_work; /* For driving grace periods. */
    #ifdef CONFIG_DEBUG_LOCK_ALLOC
    struct lockdep_map dep_map;
    diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
    index ae6e574d4cf5..a58592b73f19 100644
    --- a/kernel/rcu/rcutorture.c
    +++ b/kernel/rcu/rcutorture.c
    @@ -609,7 +609,7 @@ static void srcu_torture_stats(void)
    pr_cont("\n");
    #elif defined(CONFIG_TINY_SRCU)
    idx = READ_ONCE(srcu_ctlp->srcu_idx) & 0x1;
    - pr_alert("%s%s Tiny SRCU per-CPU(idx=%d): (%d,%d)\n",
    + pr_alert("%s%s Tiny SRCU per-CPU(idx=%d): (%hd,%hd)\n",
    torture_type, TORTURE_FLAG, idx,
    READ_ONCE(srcu_ctlp->srcu_lock_nesting[!idx]),
    READ_ONCE(srcu_ctlp->srcu_lock_nesting[idx]));
    --
    2.5.2
    \
     
     \ /
      Last update: 2017-05-26 00:20    [W:4.063 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site