From: peterz@infradead.org
To: Fenghua Yu <fenghua.yu@intel.com>
Cc: "Thomas Gleixner" <tglx@linutronix.de>,
"Borislav Petkov" <bp@alien8.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Tony Luck" <tony.luck@intel.com>,
"H Peter Anvin" <hpa@zytor.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Ravi V Shankar" <ravi.v.shankar@intel.com>,
"Xiaoyao Li " <xiaoyao.li@intel.com>, "x86" <x86@kernel.org>,
"linux-kernel" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH RFC] x86/bus_lock: Enable bus lock detection
Date: Wed, 29 Jul 2020 10:49:47 +0200 [thread overview]
Message-ID: <20200729084947.GY119549@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <1595021700-68460-1-git-send-email-fenghua.yu@intel.com>
On Fri, Jul 17, 2020 at 02:35:00PM -0700, Fenghua Yu wrote:
> #DB for bus lock detect fixes all issues in #AC for split lock detect:
> 1) It's architectural ... just need to look at one CPUID bit to know it
> exists
> 2) The IA32_DEBUGCTL MSR, which reports bus lock in #DB, is per-thread.
> So each process or guest can have different behavior.
And it generates a whole new problem due to #DB being an IST, and
> diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
> index b038695f36c5..58725567da39 100644
> --- a/arch/x86/kernel/traps.c
> +++ b/arch/x86/kernel/traps.c
> @@ -812,6 +812,16 @@ static void handle_debug(struct pt_regs *regs, unsigned long dr6, bool user)
> if (!user && !dr6)
> return;
>
> + /* Handle bus lock. */
> + if (!(dr6 & DR_BUS_LOCK)) {
> + cond_local_irq_enable(regs);
> + if (user)
> + handle_user_bus_lock(regs);
> + else
> + handle_kernel_bus_lock(regs);
> + goto out;
> + }
> +
> /*
> * If dr6 has no reason to give us about the origin of this trap,
> * then it's very likely the result of an icebp/int01 trap.
we very much rely on #DB never recursing, which we carefully crafted by
disallowing hardare breakpoints on noinstr code and clearing DR7 early.
But now it can... please keep the pieces.
next prev parent reply other threads:[~2020-07-29 8:50 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-17 21:35 [PATCH RFC] x86/bus_lock: Enable bus lock detection Fenghua Yu
2020-07-29 3:02 ` Sean Christopherson
2020-07-29 8:50 ` peterz
2020-07-29 18:09 ` Yu, Fenghua
2020-07-29 18:46 ` Sean Christopherson
2020-07-29 19:42 ` Fenghua Yu
2020-07-29 20:00 ` Sean Christopherson
2020-07-29 20:09 ` peterz
2020-07-29 20:35 ` Fenghua Yu
2020-07-29 20:39 ` Sean Christopherson
2020-07-29 22:07 ` Fenghua Yu
2020-07-29 23:28 ` Sean Christopherson
2020-07-29 8:49 ` peterz [this message]
2020-07-29 20:40 ` Fenghua Yu
2020-07-29 21:09 ` peterz
2020-07-30 10:08 ` Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200729084947.GY119549@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bp@alien8.de \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=ravi.v.shankar@intel.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=xiaoyao.li@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).