On 06/29/2018 10:16 AM, Fenghua Yu wrote:
> On Fri, Jun 29, 2018 at 09:33:54AM -0700, Luck, Tony wrote:
>>>> +  WARN_ONCE(1, "A split lock issue is detected. Please FIX it\n");
>>>
>>> But, warning here is also not super useful.  Shouldn't we be dumping out
>>> the info in 'regs' instead of the current context?  We don't care about
>>> the state in the #AC handler, we care about 'regs'.
> 
> But WARN dump not only the state in the #AC handler, but also dump the regs
> in the current context. And WARN dumps stack.

Oh, I forgot about the fancy stack following.  That might give us useful
output, although mixed with useless output about the #AC handler.

But, in any case, could you please at least confirm that this does what
you think it does?  *Actually* generate #AC inside the kernel, with this
code, and share the output?

>> Maybe:
>>
>>      WARN_ONCE(1, "split lock detected at %pF\n", regs[EIP]);
> 
> Should we dump redundant regs info while WARN shows them all already?

I bet it actually makes it easier to read the output and locate the real
source of the problem.  It's especially important if you're going to do
the WARN_() from the #AC handler with all the #AC information as noise
in the warning.

Reply via email to