mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
md: avoid potential long delay under pers_lock
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 <[email protected]> Signed-off-by: NeilBrown <[email protected]>
This commit is contained in:
parent
0638bb0e73
commit
50bd377405
1 changed files with 2 additions and 1 deletions
|
|
@ -7187,9 +7187,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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue