Code-style fixes
Subsystems (2)
cover Code-style fixes
Hello!
This patch series fixes some historical code-style issues in RCU:
1. If any branch of an if-then-else uses curly brackets, then
all branches are supposed to.
2. One exception to the 80-column rule is strings, which are
not supposed to be broken across lines in deference to people attempting to find error messages printed by the kernel.
Thanx, Paul
b/include/linux/rcupdate.h | 3 +-- b/kernel/rcutiny_plugin.h | 3 ++- b/kernel/rcutorture.c | 3 ++- b/kernel/rcutree.c | 7 ++++--- b/kernel/rcutree_plugin.h | 18 ++++++++++-------- b/kernel/rcutree_trace.c | 25 ++++++++++++------------- b/lib/list_debug.c | 6 ++---- kernel/rcutorture.c | 33 ++++++++++++++------------------- 8 files changed, 47 insertions(+), 51 deletions(-)
RFC PATCH 1/2 rcu: Fix code-style issues involving "else"
From: "Paul E. McKenney" <[email protected]>
The Linux kernel coding style says that single-statement blocks should omit curly braces unless the other leg of the "if" statement has multiple statements, in which case the curly braces should be included. This commit fixes RCU's violations of this rule.
--- kernel/rcutiny_plugin.h | 3 ++- kernel/rcutorture.c | 3 ++- kernel/rcutree.c | 7 ++++--- kernel/rcutree_plugin.h | 18 ++++++++++-------- 4 files changed, 18 insertions(+), 13 deletions(-)
kernel/rcutiny_plugin.h +2 -1
@@ -351,8 +351,9 @@ static int rcu_initiate_boost(void) rcu_preempt_ctrlblk.boost_tasks = rcu_preempt_ctrlblk.gp_tasks;invoke_rcu_callbacks (); - }else + }else {RCU_TRACE (rcu_initiate_boost_trace ()); + }return 1 ; }
kernel/rcutorture.c +2 -1
@@ -407,8 +407,9 @@ rcu_torture_cb(struct rcu_head *p)if (++rp->rtort_pipe_count >=RCU_TORTURE_PIPE_LEN ) { rp->rtort_mbtest =0 ;rcu_torture_free (rp); - }else + }else { cur_ops->deferred_free (rp); + } }static int rcu_no_completed (void )
kernel/rcutree.c +4 -3
@@ -893,8 +893,9 @@ static void __note_new_gpnum(struct rcu_state *rsp, struct rcu_node *rnp, structif (rnp->qsmask & rdp->grpmask) { rdp->qs_pending =1 ; rdp->passed_quiesce =0 ; - }else + }else { rdp->qs_pending =0 ; + }zero_cpu_stall_ticks (rdp); } }
@@ -2115,9 +2116,9 @@ void synchronize_sched_expedited(void)put_online_cpus ();/* No joy, try again later. Or just synchronize_sched(). */ -if (trycount++ <10 ) +if (trycount++ <10 ) {udelay (trycount *num_online_cpus ()); -else { + }else {synchronize_sched ();return ; }
kernel/rcutree_plugin.h +10 -8
@@ -398,8 +398,9 @@ static noinline void rcu_read_unlock_special(struct task_struct *t) rnp->grphi, !!rnp->gp_tasks);rcu_report_unblock_qs_rnp (rnp, flags); - }else + }else {raw_spin_unlock_irqrestore (&rnp->lock, flags); + }#ifdef CONFIG_RCU_BOOST /* Unboost if we were boosted. */
@@ -429,9 +430,9 @@ void __rcu_read_unlock(void) {struct task_struct *t = current; -if (t->rcu_read_lock_nesting !=1 ) +if (t->rcu_read_lock_nesting !=1 ) { --t->rcu_read_lock_nesting; -else { + }else {barrier ();/* critical section before exit code. */ t->rcu_read_lock_nesting =INT_MIN ;barrier ();/* assign before ->rcu_read_unlock_special load */
@@ -824,9 +825,9 @@ sync_rcu_preempt_exp_init(struct rcu_state *rsp, struct rcu_node *rnp)int must_wait =0 ;raw_spin_lock_irqsave (&rnp->lock, flags); -if (list_empty (&rnp->blkd_tasks)) +if (list_empty (&rnp->blkd_tasks)) {raw_spin_unlock_irqrestore (&rnp->lock, flags); -else { + }else { rnp->exp_tasks = rnp->blkd_tasks.next;rcu_initiate_boost (rnp, flags);/* releases rnp->lock */ must_wait =1 ;
@@ -870,9 +871,9 @@ void synchronize_rcu_expedited(void)* expedited grace period for us, just leave. */ while (!mutex_trylock (&sync_rcu_preempt_exp_mutex)) { -if (trycount++ <10 ) +if (trycount++ <10 ) {udelay (trycount *num_online_cpus ()); -else { + }else {synchronize_rcu ();return ; }
@@ -2213,8 +2214,9 @@ static void rcu_prepare_for_idle(int cpu)if (rcu_cpu_has_callbacks (cpu)) {trace_rcu_prep_idle ("More callbacks" );invoke_rcu_core (); - }else + }else {trace_rcu_prep_idle ("Callbacks drained" ); + } }/*
Signature · 1 line
1.7.8
RFC PATCH 2/2 rcu: Fix broken strings in RCU's source code.
From: "Paul E. McKenney" <[email protected]>
Although the C language allows you to break strings across lines, doing this makes it hard for people to find the Linux kernel code corresponding to a given console message. This commit therefore fixes broken strings throughout RCU's source code.
--- include/linux/rcupdate.h | 3 +-- kernel/rcutorture.c | 33 ++++++++++++++------------------- kernel/rcutree_trace.c | 25 ++++++++++++------------- lib/list_debug.c | 6 ++---- 4 files changed, 29 insertions(+), 38 deletions(-)
include/linux/rcupdate.h +1 -2
@@ -432,8 +432,7 @@ extern int rcu_my_thread_group_empty(void);static inline void rcu_preempt_sleep_check (void ) {rcu_lockdep_assert (!lock_is_held (&rcu_lock_map), -"Illegal context switch in RCU read-side " -"critical section" ); +"Illegal context switch in RCU read-side critical section" ); }#else /* #ifdef CONFIG_PROVE_RCU */ static inline void rcu_preempt_sleep_check (void )
kernel/rcutorture.c +14 -19
@@ -49,8 +49,7 @@#include <asm/byteorder.h> MODULE_LICENSE ("GPL" ); -MODULE_AUTHOR ("Paul E. McKenney <[email protected]> and " -"Josh Triplett <[email protected]>" ); +MODULE_AUTHOR ("Paul E. McKenney <[email protected]> and Josh Triplett <[email protected]>" );static int nreaders =-1 ;/* # reader threads, defaults to 2*ncpus */ static int nfakewriters =4 ;/* # fake writer threads */
@@ -1184,27 +1183,27 @@ rcu_torture_printk(char *page) } cnt +=sprintf (&page[cnt],"%s%s " , torture_type,TORTURE_FLAG ); cnt +=sprintf (&page[cnt], -"rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " -"rtmbe: %d rtbke: %ld rtbre: %ld " -"rtbf: %ld rtb: %ld nt: %ld " -"onoff: %ld/%ld:%ld/%ld " -"barrier: %ld/%ld:%ld" , +"rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " , rcu_torture_current, rcu_torture_current_version,list_empty (&rcu_torture_freelist),atomic_read (&n_rcu_torture_alloc),atomic_read (&n_rcu_torture_alloc_fail), -atomic_read (&n_rcu_torture_free), +atomic_read (&n_rcu_torture_free)); + cnt +=sprintf (&page[cnt],"rtmbe: %d rtbke: %ld rtbre: %ld " ,atomic_read (&n_rcu_torture_mberror), n_rcu_torture_boost_ktrerror, - n_rcu_torture_boost_rterror, + n_rcu_torture_boost_rterror); + cnt +=sprintf (&page[cnt],"rtbf: %ld rtb: %ld nt: %ld " , n_rcu_torture_boost_failure, n_rcu_torture_boosts, - n_rcu_torture_timers, + n_rcu_torture_timers); + cnt +=sprintf (&page[cnt],"onoff: %ld/%ld:%ld/%ld " , n_online_successes, n_online_attempts, n_offline_successes, - n_offline_attempts, + n_offline_attempts); + cnt +=sprintf (&page[cnt],"barrier: %ld/%ld:%ld" , n_barrier_successes, n_barrier_attempts, n_rcu_torture_barrier_error);
@@ -1446,8 +1445,7 @@ rcu_torture_shutdown(void *arg) delta = shutdown_time - jiffies_snap;if (verbose)printk (KERN_ALERT "%s" TORTURE_FLAG -"rcu_torture_shutdown task: %lu " -"jiffies remaining\n" , +"rcu_torture_shutdown task: %lu jiffies remaining\n" , torture_type, delta);schedule_timeout_interruptible (delta); jiffies_snap =ACCESS_ONCE (jiffies);
@@ -1499,8 +1497,7 @@ rcu_torture_onoff(void *arg)if (cpu_down (cpu) ==0 ) {if (verbose)printk (KERN_ALERT "%s" TORTURE_FLAG -"rcu_torture_onoff task: " -"offlined %d\n" , +"rcu_torture_onoff task: offlined %d\n" , torture_type, cpu); n_offline_successes++; }
@@ -1513,8 +1510,7 @@ rcu_torture_onoff(void *arg)if (cpu_up (cpu) ==0 ) {if (verbose)printk (KERN_ALERT "%s" TORTURE_FLAG -"rcu_torture_onoff task: " -"onlined %d\n" , +"rcu_torture_onoff task: onlined %d\n" , torture_type, cpu); n_online_successes++; }
@@ -1932,8 +1928,7 @@ rcu_torture_init(void)return -EINVAL ; }if (cur_ops->fqs ==NULL && fqs_duration !=0 ) { -printk (KERN_ALERT "rcu-torture: ->fqs NULL and non-zero " -"fqs_duration, fqs disabled.\n" ); +printk (KERN_ALERT "rcu-torture: ->fqs NULL and non-zero fqs_duration, fqs disabled.\n" ); fqs_duration =0 ; }if (cur_ops->init)
kernel/rcutree_trace.c +12 -13
@@ -201,8 +201,7 @@ static const struct file_operations rcudata_csv_fops = {static void print_one_rcu_node_boost (struct seq_file *m,struct rcu_node *rnp) { - seq_printf(m, "%d:%d tasks=%c%c%c%c kt=%c ntb=%lu neb=%lu nnb=%lu " - "j=%04x bt=%04x\n", + seq_printf(m, "%d:%d tasks=%c%c%c%c kt=%c ntb=%lu neb=%lu nnb=%lu ", rnp->grplo, rnp->grphi, "T."[list_empty(&rnp->blkd_tasks)], "N."[!rnp->gp_tasks],
@@ -210,11 +209,11 @@ static void print_one_rcu_node_boost(struct seq_file *m, struct rcu_node *rnp)"B." [!rnp->boost_tasks],convert_kthread_status (rnp->boost_kthread_status), rnp->n_tasks_boosted, rnp->n_exp_boosts, - rnp->n_normal_boosts, + rnp->n_normal_boosts); +seq_printf (m,"j=%04x bt=%04x\n" , (int )(jiffies &0xffff ), (int )(rnp->boost_time &0xffff )); - seq_printf(m, "%s: nt=%lu egt=%lu bt=%lu nb=%lu ny=%lu nos=%lu\n", - " balk", + seq_printf(m, " balk: nt=%lu egt=%lu bt=%lu nb=%lu ny=%lu nos=%lu\n", rnp->n_balk_blkd_tasks, rnp->n_balk_exp_gp_tasks, rnp->n_balk_boost_tasks,
@@ -270,11 +269,11 @@ static void print_one_rcu_state(struct seq_file *m, struct rcu_state *rsp)struct rcu_node *rnp; gpnum = rsp->gpnum; -seq_printf (m,"c=%lu g=%lu s=%d jfq=%ld j=%x " -"nfqs=%lu/nfqsng=%lu(%lu) fqlh=%lu oqlen=%ld/%ld\n" , +seq_printf (m,"c=%lu g=%lu s=%d jfq=%ld j=%x " , rsp->completed, gpnum, rsp->fqs_state, (long )(rsp->jiffies_force_qs - jiffies), - (int )(jiffies &0xffff ), + (int )(jiffies &0xffff )); +seq_printf (m,"nfqs=%lu/nfqsng=%lu(%lu) fqlh=%lu oqlen=%ld/%ld\n" , rsp->n_force_qs, rsp->n_force_qs_ngp, rsp->n_force_qs - rsp->n_force_qs_ngp, rsp->n_force_qs_lh, rsp->qlen_lazy, rsp->qlen);
@@ -366,16 +365,16 @@ static const struct file_operations rcugp_fops = {static void print_one_rcu_pending (struct seq_file *m,struct rcu_data *rdp) { - seq_printf(m, "%3d%cnp=%ld " - "qsp=%ld rpq=%ld cbr=%ld cng=%ld " - "gpc=%ld gps=%ld nf=%ld nn=%ld\n", +seq_printf (m,"%3d%cnp=%ld " , rdp->cpu,cpu_is_offline (rdp->cpu) ?'!' :' ' , - rdp->n_rcu_pending, + rdp->n_rcu_pending); +seq_printf (m,"qsp=%ld rpq=%ld cbr=%ld cng=%ld " , rdp->n_rp_qs_pending, rdp->n_rp_report_qs, rdp->n_rp_cb_ready, - rdp->n_rp_cpu_needs_gp, + rdp->n_rp_cpu_needs_gp); + seq_printf(m, "gpc=%ld gps=%ld nf=%ld nn=%ld\n", rdp->n_rp_gp_completed, rdp->n_rp_gp_started, rdp->n_rp_need_fqs,
lib/list_debug.c +2 -4
@@ -84,12 +84,10 @@ void __list_add_rcu(struct list_head *new, struct list_head *prev, struct list_head *next) { WARN(next->prev != prev, -"list_add_rcu corruption. next->prev should be " -"prev (%p), but was %p. (next=%p).\n" , +"list_add_rcu corruption. next->prev should be prev (%p), but was %p. (next=%p).\n" , prev, next->prev, next);WARN (prev->next != next, -"list_add_rcu corruption. prev->next should be " -"next (%p), but was %p. (prev=%p).\n" , +"list_add_rcu corruption. prev->next should be next (%p), but was %p. (prev=%p).\n" , next, prev->next, prev); new->next = next; new->prev = prev;
Signature · 1 line
1.7.8
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
Quoted 6 lines · Paul E. McKenney
From: "Paul E. McKenney" <[email protected]>
Although the C language allows you to break strings across lines, doing this makes it hard for people to find the Linux kernel code corresponding to a given console message. This commit therefore fixes broken strings throughout RCU's source code.
While I'm not a strict 80 chars zealot, I do find exceedingly long lines utterly annoying, editors either wrap them in the most hideous way or you don't see them.
I'm not going make a big fuss, but I don't think such patches are an improvement.
Josh Triplett
maintainerRe: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
Quoted 11 lines · Peter Zijlstra
Quoted 6 lines · Paul E. McKenney
From: "Paul E. McKenney" <[email protected]>
Although the C language allows you to break strings across lines, doing this makes it hard for people to find the Linux kernel code corresponding to a given console message. This commit therefore fixes broken strings throughout RCU's source code.
While I'm not a strict 80 chars zealot, I do find exceedingly long lines utterly annoying, editors either wrap them in the most hideous way or you don't see them.
For the most part, printable strings should have a final formatted length of less than 80 characters so that they don't wrap in dmesg, and preferably a bit less so that they don't wrap when prefixed with a high-resolution timestamp. Two main problems cause those strings to take up more than 80 characters in source code: format specifiers that take up more room than the parameters they format, and indentation plus the name of the printing function. Even keeping those in mind, lines with strings on them shouldn't end up insanely long; if they do, perhaps that indicates that the lines should have some newlines in the middle.
- Josh Triplett
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
In reply to Peter ZijlstraQuoted 6 lines · Peter Zijlstra
Quoted 4 lines · Paul E. McKenney
Although the C language allows you to break strings across lines, doing this makes it hard for people to find the Linux kernel code corresponding to a given console message. This commit therefore fixes broken strings throughout RCU's source code.
Quoted 6 lines
While I'm not a strict 80 chars zealot, I do find exceedingly long lines utterly annoying, editors either wrap them in the most hideous way or you don't see them.
I'm not going make a big fuss, but I don't think such patches are an improvement.
Would it be feasible to teach "git grep" to treat strings broken across lines as one string?
Related wishes: teach "git grep" to only show hits in strings, or to only show hits in comments, or to only show hits in code (ie, not strings or comments).
Paul Bolle
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
In reply to Peter ZijlstraQuoted 11 lines · Peter Zijlstra
Quoted 6 lines · Paul E. McKenney
From: "Paul E. McKenney" <[email protected]>
Although the C language allows you to break strings across lines, doing this makes it hard for people to find the Linux kernel code corresponding to a given console message. This commit therefore fixes broken strings throughout RCU's source code.
While I'm not a strict 80 chars zealot, I do find exceedingly long lines utterly annoying, editors either wrap them in the most hideous way or you don't see them.
Well, but if it's exceedingly long in the editor then it's probably exceedingly long in the syslog as well and need fixing, right?
Or it's printed inside some exceedingly deep nested block of code, which too could use improvement, right?
Thanks,
Ingo
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
Quoted 15 lines · Ingo Molnar
Quoted 11 lines · Peter Zijlstra
Quoted 6 lines · Paul E. McKenney
From: "Paul E. McKenney" <[email protected]>
Although the C language allows you to break strings across lines, doing this makes it hard for people to find the Linux kernel code corresponding to a given console message. This commit therefore fixes broken strings throughout RCU's source code.
While I'm not a strict 80 chars zealot, I do find exceedingly long lines utterly annoying, editors either wrap them in the most hideous way or you don't see them.
Quoted 6 lines
Well, but if it's exceedingly long in the editor then it's probably exceedingly long in the syslog as well and need fixing, right?
Or it's printed inside some exceedingly deep nested block of code, which too could use improvement, right?
The longest source-code line produced by this patch is 104 characters.
I am hoping that this is not considered excessively long!
Thanx, Paul
Josh Triplett
maintainerRe: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
In reply to Paul E. McKenneyQuoted 27 lines · Paul E. McKenney
kernel/rcutorture.c +6
-8@@ -1184,27 +1183,27 @@ rcu_torture_printk(char *page) } cnt +=sprintf (&page[cnt],"%s%s " , torture_type,TORTURE_FLAG ); cnt +=sprintf (&page[cnt], - "rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " - "rtmbe: %d rtbke: %ld rtbre: %ld " - "rtbf: %ld rtb: %ld nt: %ld " - "onoff: %ld/%ld:%ld/%ld " - "barrier: %ld/%ld:%ld", +"rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " , rcu_torture_current, rcu_torture_current_version,list_empty (&rcu_torture_freelist),atomic_read (&n_rcu_torture_alloc),atomic_read (&n_rcu_torture_alloc_fail), - atomic_read(&n_rcu_torture_free), +atomic_read (&n_rcu_torture_free)); + cnt +=sprintf (&page[cnt],"rtmbe: %d rtbke: %ld rtbre: %ld " ,atomic_read (&n_rcu_torture_mberror), n_rcu_torture_boost_ktrerror, - n_rcu_torture_boost_rterror, + n_rcu_torture_boost_rterror); + cnt +=sprintf (&page[cnt],"rtbf: %ld rtb: %ld nt: %ld " , n_rcu_torture_boost_failure, n_rcu_torture_boosts, - n_rcu_torture_timers, + n_rcu_torture_timers);
kernel/rcutorture.c rcu_torture_printk(char *page) · line 1209
Quoted 10 lines
kernel/rcutorture.c +3
-1+ cnt +=sprintf (&page[cnt],"onoff: %ld/%ld:%ld/%ld " , n_online_successes, n_online_attempts, n_offline_successes, - n_offline_attempts, + n_offline_attempts); + cnt +=sprintf (&page[cnt],"barrier: %ld/%ld:%ld" , n_barrier_successes, n_barrier_attempts, n_rcu_torture_barrier_error);
A change like this placates tools like checkpatch, but doesn't actually fix the problem. :)
- Josh Triplett
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
Quoted 33 lines · Josh Triplett
Quoted 32 lines · Paul E. McKenney
kernel/rcutorture.c +7
-9@@ -1184,27 +1183,27 @@ rcu_torture_printk(char *page) } cnt +=sprintf (&page[cnt],"%s%s " , torture_type,TORTURE_FLAG ); cnt +=sprintf (&page[cnt], - "rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " - "rtmbe: %d rtbke: %ld rtbre: %ld " - "rtbf: %ld rtb: %ld nt: %ld " - "onoff: %ld/%ld:%ld/%ld " - "barrier: %ld/%ld:%ld", +"rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " , rcu_torture_current, rcu_torture_current_version,list_empty (&rcu_torture_freelist),atomic_read (&n_rcu_torture_alloc),atomic_read (&n_rcu_torture_alloc_fail), - atomic_read(&n_rcu_torture_free), +atomic_read (&n_rcu_torture_free)); + cnt +=sprintf (&page[cnt],"rtmbe: %d rtbke: %ld rtbre: %ld " ,atomic_read (&n_rcu_torture_mberror), n_rcu_torture_boost_ktrerror, - n_rcu_torture_boost_rterror, + n_rcu_torture_boost_rterror); + cnt +=sprintf (&page[cnt],"rtbf: %ld rtb: %ld nt: %ld " , n_rcu_torture_boost_failure, n_rcu_torture_boosts, - n_rcu_torture_timers, + n_rcu_torture_timers); + cnt += sprintf(&page[cnt], "onoff: %ld/%ld:%ld/%ld ", n_online_successes, n_online_attempts, n_offline_successes, - n_offline_attempts,
Quoted 8 lines
kernel/rcutorture.c rcu_torture_printk(char *page) · line 1209
Quoted 5 lines
kernel/rcutorture.c +2
-0+ n_offline_attempts); + cnt +=sprintf (&page[cnt],"barrier: %ld/%ld:%ld" , n_barrier_successes, n_barrier_attempts, n_rcu_torture_barrier_error);A change like this placates tools like checkpatch, but doesn't actually fix the problem. :)
The formatting would frustrate most people trying to grep for the debugfs output anyway, though.
But the main reason for the change is that it makes it easier to see which quantity goes with which sprintf() format specifier. (Lazy and self-indulgent, I know!!!)
Thanx, Paul
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
In reply to Paul E. McKenneykernel/rcutorture.c rcu_torture_printk(char *page) · line 1191
Quoted 6 lines · Paul E. McKenney
cnt += sprintf(&page[cnt],kernel/rcutorture.c +0
-5-"rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " -"rtmbe: %d rtbke: %ld rtbre: %ld " -"rtbf: %ld rtb: %ld nt: %ld " -"onoff: %ld/%ld:%ld/%ld " - "barrier: %ld/%ld:%ld",
The paranoid side of me would've used:
cnt += snprintf(page + cnt, PAGE_SIZE - cnt, ...);
Re: [PATCH RFC tip/core/rcu 2/2] rcu: Fix broken strings in RCU's source code.
Quoted 11 lines · Peter Zijlstra
kernel/rcutorture.c rcu_torture_printk(char *page) · line 1191
Quoted 6 lines · Paul E. McKenney
cnt += sprintf(&page[cnt],kernel/rcutorture.c +0
-5-"rtc: %p ver: %lu tfle: %d rta: %d rtaf: %d rtf: %d " -"rtmbe: %d rtbke: %ld rtbre: %ld " -"rtbf: %ld rtb: %ld nt: %ld " -"onoff: %ld/%ld:%ld/%ld " - "barrier: %ld/%ld:%ld",The paranoid side of me would've used:
cnt += snprintf(page + cnt, PAGE_SIZE - cnt, ...);
OK, added to the todo list. ;-)
Thanx, Paul
Re: [PATCH RFC tip/core/rcu 1/2] rcu: Fix code-style issues involving "else"
In reply to Paul E. McKenneyQuoted 9 lines · Paul E. McKenney
From: "Paul E. McKenney" <[email protected]>
The Linux kernel coding style says that single-statement blocks should omit curly braces unless the other leg of the "if" statement has multiple statements, in which case the curly braces should be included. This commit fixes RCU's violations of this rule.
Signed-off-by Paul E. McKenney <[email protected]>Signed-off-by Paul E. McKenney <[email protected]>
Quoted 122 lines
kernel/rcutiny_plugin.h +2
-1@@ -351,8 +351,9 @@ static int rcu_initiate_boost(void) rcu_preempt_ctrlblk.boost_tasks = rcu_preempt_ctrlblk.gp_tasks;invoke_rcu_callbacks (); - }else + }else {RCU_TRACE (rcu_initiate_boost_trace ()); + }return 1 ; }kernel/rcutorture.c +2
-1@@ -407,8 +407,9 @@ rcu_torture_cb(struct rcu_head *p)if (++rp->rtort_pipe_count >=RCU_TORTURE_PIPE_LEN ) { rp->rtort_mbtest =0 ;rcu_torture_free (rp); - }else + }else { cur_ops->deferred_free (rp); + } }static int rcu_no_completed (void )kernel/rcutree.c +4
-3@@ -893,8 +893,9 @@ static void __note_new_gpnum(struct rcu_state *rsp, struct rcu_node *rnp, structif (rnp->qsmask & rdp->grpmask) { rdp->qs_pending =1 ; rdp->passed_quiesce =0 ; - }else + }else { rdp->qs_pending =0 ; + }zero_cpu_stall_ticks (rdp); } }@@ -2115,9 +2116,9 @@ void synchronize_sched_expedited(void)put_online_cpus ();/* No joy, try again later. Or just synchronize_sched(). */ -if (trycount++ <10 ) +if (trycount++ <10 ) {udelay (trycount *num_online_cpus ()); -else { + }else {synchronize_sched ();return ; }kernel/rcutree_plugin.h +10
-8@@ -398,8 +398,9 @@ static noinline void rcu_read_unlock_special(struct task_struct *t) rnp->grphi, !!rnp->gp_tasks);rcu_report_unblock_qs_rnp (rnp, flags); - }else + }else {raw_spin_unlock_irqrestore (&rnp->lock, flags); + }#ifdef CONFIG_RCU_BOOST /* Unboost if we were boosted. */ @@ -429,9 +430,9 @@ void __rcu_read_unlock(void) {struct task_struct *t = current; -if (t->rcu_read_lock_nesting !=1 ) +if (t->rcu_read_lock_nesting !=1 ) { --t->rcu_read_lock_nesting; -else { + }else {barrier ();/* critical section before exit code. */ t->rcu_read_lock_nesting =INT_MIN ;barrier ();/* assign before ->rcu_read_unlock_special load */ @@ -824,9 +825,9 @@ sync_rcu_preempt_exp_init(struct rcu_state *rsp, struct rcu_node *rnp)int must_wait =0 ;raw_spin_lock_irqsave (&rnp->lock, flags); -if (list_empty (&rnp->blkd_tasks)) +if (list_empty (&rnp->blkd_tasks)) {raw_spin_unlock_irqrestore (&rnp->lock, flags); -else { + }else { rnp->exp_tasks = rnp->blkd_tasks.next;rcu_initiate_boost (rnp, flags);/* releases rnp->lock */ must_wait =1 ;@@ -870,9 +871,9 @@ void synchronize_rcu_expedited(void)* expedited grace period for us, just leave. */ while (!mutex_trylock (&sync_rcu_preempt_exp_mutex)) { -if (trycount++ <10 ) +if (trycount++ <10 ) {udelay (trycount *num_online_cpus ()); -else { + }else {synchronize_rcu ();return ; }@@ -2213,8 +2214,9 @@ static void rcu_prepare_for_idle(int cpu)if (rcu_cpu_has_callbacks (cpu)) {trace_rcu_prep_idle ("More callbacks" );invoke_rcu_core (); - }else + }else {trace_rcu_prep_idle ("Callbacks drained" ); + } }/* Signature · 1 line
1.7.8
Re: [PATCH RFC tip/core/rcu 1/2] rcu: Fix code-style issues involving "else"
In reply to Paul E. McKenneyQuoted 7 lines · Paul E. McKenney
From: "Paul E. McKenney" <[email protected]>
The Linux kernel coding style says that single-statement blocks should omit curly braces unless the other leg of the "if" statement has multiple statements, in which case the curly braces should be included. This commit fixes RCU's violations of this rule.
Quoted 9 lines
Signed-off-by Paul E. McKenney <[email protected]>Signed-off-by Paul E. McKenney <[email protected]>--- kernel/rcutiny_plugin.h | 3 ++- kernel/rcutorture.c | 3 ++- kernel/rcutree.c | 7 ++++--- kernel/rcutree_plugin.h | 18 ++++++++++-------- 4 files changed, 18 insertions(+), 13 deletions(-)