Messages in this thread | | | Date | Tue, 17 Nov 2020 13:24:55 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 2/4] x86/bus_lock: Handle warn and fatal in #DB for bus lock |
| |
On Wed, Nov 11, 2020 at 07:20:46PM +0000, Fenghua Yu wrote: > #DB for bus lock is enabled by bus lock detection bit 2 in DEBUGCTL MSR > while #AC for split lock is enabled by split lock detection bit 29 in > TEST_CTRL MSR. > > Delivery of #DB for bus lock in userspace clears DR6[11]. To avoid > confusion in identifying #DB, #DB handler sets the bit to 1 before > returning to the interrupted task. > > Use the existing kernel command line option "split_lock_detect=" to handle > #DB for bus lock: > > split_lock_detect= > #AC for split lock #DB for bus lock > > off Do nothing Do nothing > > warn Kernel OOPs Warn once per task and > Warn once per task and and continues to run. > disable future checking When both features are > supported, warn in #DB > > fatal Kernel OOPs Send SIGBUS to user > Send SIGBUS to user > When both features are > supported, fatal in #AC. > > Default option is "warn". > > Hardware only generates #DB for bus lock detect when CPL>0 to avoid > nested #DB from multiple bus locks while the first #DB is being handled. > So no need to handle #DB for bus lock detected in the kernel. > > Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> > Reviewed-by: Tony Luck <tony.luck@intel.com>
Sane enough I suppose,
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
The one thing I found still missing is a better description of the things tickling SLD vs BLD. IIRC BLD detects a wider range of issues. Therefore it _might_ make sense to allow SLD && BLD when fatal, instead of only SLD.
Still, that's nitpicking.
| |