RE: [RFC][PATCH -next] make pstore/kmsg_dump run after stoppingother cpus in panic path
From: Seiji Aguchi
Date: Mon Oct 17 2011 - 10:11:17 EST
Hi,
Thank you for giving me a comment.
>I have a stupid question: since you have serialized the process procedure via
>smp_send_stop, why still using spin_lock_xxx? Maybe preempt_disable/enable is
>enough?
I added spin_lock_init() in panic path for sharing code with other triggers
such as oops/reboot/emergency_restart because they still need spin_locks.
Do you suggest following code?
<snip>
If(!panic)
spin_lock_irqsave();
.
.
If(!panic)
spin_unlock_restore();
<snip>
I don't stick to current patch.
So I will resend a patch above if you request.
Regarding as preempt_disable/enable, we don't need to call them in panic path because they are
called at the beginning of panic().
<snip>
60 NORET_TYPE void panic(const char * fmt, ...)
61 {
62 static char buf[1024];
63 va_list args;
64 long i, i_next = 0;
65 int state = 0;
66
67 /*
68 * It's possible to come here directly from a panic-assertion and
69 * not have preempt disabled. Some functions called from here want
70 * preempt to be disabled. No point enabling it later though...
71 */
72 preempt_disable();
<snip>
Seiji
èº{.nÇ+·®+%Ëlzwm
ébëæìr¸zX§»®w¥{ayºÊÚë,j¢f£¢·hàz¹®w¥¢¸¢·¦j:+v¨wèjØm¶ÿ¾«êçzZ+ùÝj"ú!¶iOæ¬z·vØ^¶m§ÿðÃnÆàþY&