Commit 3ddf20c9 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

srcu: Shrink Tiny SRCU a bit more



This commit rearranges Tiny SRCU's srcu_struct structure, substitutes
u8 for bool, and shrinks counters down to short.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent 41f36481
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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]));