Re: [PATCH v2 3/4] x86/split_lock: Handle #AC exception for split lock

From: Dave Hansen
Date: Fri Jun 29 2018 - 13:30:01 EST


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.