Messages in this thread | | | Date | Thu, 21 Nov 2019 14:15:22 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v10 6/6] x86/split_lock: Enable split lock detection by kernel parameter |
| |
On Thu, Nov 21, 2019 at 02:01:53PM +0100, Peter Zijlstra wrote: > On Thu, Nov 21, 2019 at 07:04:44AM +0100, Ingo Molnar wrote: > > * Fenghua Yu <fenghua.yu@intel.com> wrote: > > > > + split_lock_detect > > > + [X86] Enable split lock detection > > > + This is a real time or debugging feature. When enabled > > > + (and if hardware support is present), atomic > > > + instructions that access data across cache line > > > + boundaries will result in an alignment check exception. > > > + When triggered in applications the kernel will send > > > + SIGBUS. The kernel will panic for a split lock in > > > + OS code. > > > > It would be really nice to be able to enable/disable this runtime as > > well, has this been raised before, and what was the conclusion? > > It has, previous versions had that. Somehow a lot of things went missing > and we're back to a broken neutered useless mess. > > The problem appears to be that due to hardware design the feature cannot > be virtualized, and instead of then disabling it when a VM runs/exists > they just threw in the towel and went back to useless mode.. :-( > > This feature MUST be default enabled, otherwise everything will > be/remain broken and we'll end up in the situation where you can't use > it even if you wanted to. > > Imagine the BIOS/EFI/firmware containing an #AC exception. At that point > the feature becomes useless, because you cannot enable it without your > machine dying. > > Now, from long and painful experience we all know that if a BIOS can be > wrong, it will be. Therefore this feature will be/is useless as > presented. > > And I can't be arsed to look it up, but we've been making this very same > argument since very early (possible the very first) version. > > So this version goes straight into the bit bucket. Please try again.
Also, just to remind everyone why we really want this. Split lock is a potent, unprivileged, DoS vector.
It works nicely across guests and everything. Furthermore no sane software should have #AC, because RISC machines have been throwing alignment checks on stupid crap like that forever.
And even on x86, where it 'works' it has been a performance nightmare for pretty much ever since we lost the Front Side Bus or something like that.
| |