[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87r1stmi1x.fsf@nanos.tec.linutronix.de>
Date: Thu, 30 Jul 2020 12:08:26 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: peterz@...radead.org, Fenghua Yu <fenghua.yu@...el.com>
Cc: Borislav Petkov <bp@...en8.de>, Ingo Molnar <mingo@...hat.com>,
Tony Luck <tony.luck@...el.com>, H Peter Anvin <hpa@...or.com>,
Andy Lutomirski <luto@...nel.org>,
Ravi V Shankar <ravi.v.shankar@...el.com>,
Xiaoyao Li <xiaoyao.li@...el.com>, x86 <x86@...nel.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH RFC] x86/bus_lock: Enable bus lock detection
peterz@...radead.org writes:
> On Wed, Jul 29, 2020 at 08:40:57PM +0000, Fenghua Yu wrote:
>> Can we disable Bus Lock Detection before handle it and re-enable it
>> after handle it? Will that resolve the recursion issue?
>
> Because WRMSR is cheap, right?
>
> You have to unconditionally {dis,en}able it on #DB entry/exit. Not only
> when it's a DR_BUS_LOCK, _always_. Then maybe. I'm too tired to think
> through the IST mess.
>
> IST's suck, they're horrible crap.
>
> Suppose we get a #DB, then we get an NMI right before it does WRMSR, so
> BUS_LOCK is still on, then the NMI does a dodgy LOCK op, we die.
>
> So that means, you get to disable it on every NMI-like exception too,
> but we happen to care about performance for those, you loose.
>
> Also, what happens if you have a hardware watchpoint on the instruction
> that causes DR_BUS_LOCK? Does that work as expected?
Q: Why on earth are Intel hardware folks cramming this into #DB?
A: Just because there was a bit left in DR6 to indicate it, right?
Q: Why can't hardware folks talk to us _before_ they make the x86 exception
trainwreck even worse?
A: Just because they know that we'd tell them to go back to the drawing
board.
Q: Is that going to be supported by the kernel?
A: No, go back to the drawing board and talk to us _before_ coming back
with the next half thought out tinkerware cast in silicon.
I'm really tired of wasting time dealing with such misfeatures which create
more problems than they solve.
Thanks,
Thomas
Powered by blists - more mailing lists