Linux RAID subsystem development
 help / color / mirror / Atom feed
* [PATCH] md: avoid potential long delay under pers_lock
@ 2014-09-25  7:28 Chao Yu
  2014-09-25 16:51 ` Henrique de Moraes Holschuh
  2014-09-26  0:36 ` NeilBrown
  0 siblings, 2 replies; 5+ messages in thread
From: Chao Yu @ 2014-09-25  7:28 UTC (permalink / raw)
  To: neilb; +Cc: linux-raid, linux-kernel

printk may cause long time lapse if value of printk_delay in sysctl is
configured large by user. If register_md_personality takes long time to print in
spinlock pers_lock, we may encounter high CPU usage rate when there are other
pers_lock competitors who may be blocked to spin.
We can avoid this condition by moving printk out of coverage of pers_lock
spinlock.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
---
 drivers/md/md.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index e02de05..5fcf215 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7200,9 +7200,10 @@ static const struct file_operations md_seq_fops = {
 
 int register_md_personality(struct md_personality *p)
 {
+	printk(KERN_INFO "md: %s personality registered for level %d\n",
+						p->name, p->level);
 	spin_lock(&pers_lock);
 	list_add_tail(&p->list, &pers_list);
-	printk(KERN_INFO "md: %s personality registered for level %d\n", p->name, p->level);
 	spin_unlock(&pers_lock);
 	return 0;
 }
-- 
2.0.1.474.g72c7794

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-09-26  8:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-25  7:28 [PATCH] md: avoid potential long delay under pers_lock Chao Yu
2014-09-25 16:51 ` Henrique de Moraes Holschuh
2014-09-26  8:56   ` Chao Yu
2014-09-26  0:36 ` NeilBrown
2014-09-26  8:59   ` Chao Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox