From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Fenghua Yu <fenghua.yu@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@alien8.de>, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
"Shanbhogue, Vedvyas" <vedvyas.shanbhogue@intel.com>,
"Luck, Tony" <tony.luck@intel.com>, H Peter Anvin <hpa@zytor.com>,
Andy Lutomirski <luto@kernel.org>,
"Shankar, Ravi V" <ravi.v.shankar@intel.com>,
"Li, Xiaoyao" <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 13:00:33 -0700 [thread overview]
Message-ID: <20200729200033.GJ27751@linux.intel.com> (raw)
In-Reply-To: <20200729194259.GA318576@otcwcpicx6.sc.intel.com>
On Wed, Jul 29, 2020 at 07:42:59PM +0000, Fenghua Yu wrote:
> > Smushing the two into a single option is confusing, e.g. from the table
> > below it's not at all clear what will happen if sld=fatal, both features
> > are supported, and the kernel generates a split lock.
> >
> > Given that both SLD (per-core, not architectural) and BLD (#DB recursion and
> > inverted DR6 flag) have warts, it would be very nice to enable/disable them
> > independently. The lock to non-WB behavior for BLD may also be problematic,
> > e.g. maybe it turns out that fixing drivers to avoid locks to non-WB isn't
> > as straightforward as avoiding split locks.
>
> But the two features are related if both of them are enabled in hardware:
> If a split lock happens, SLD will generate #AC before instruction execution
> and BLD will generate #DB after instruction execution.
>
> The software needs to make them exclusive. The same kernel option reflects
> the relationship and make them exclusive, e.g. "fatal" enables SLD and
> disables BLD, "warn" does the other way.
Why do they need to be exclusive? We've already established that BLD catches
things that SLD does not. What's wrong with running sld=fatal and bld=ratelimit
so that split locks never happen and kill applications, and non-WB locks are
are ratelimited?
Sure, sld==warn with bld!=off is a bit silly, but the kernel can easily handle
that particular case.
> If using two different kernel options, the user needs to give right options
> to make both work, e.g. can the user give this combination
> "split_lock_detect=fatal bus_lock_detect=warn"? What does the combination
> mean?
Split locks are fatal, non-WB locks are logged but not fatal.
> There could be many combinations of the two options, some of them
> are meaningful and some of them aren't. Maintaining the combinations is
> unnecessary complex, right?
Honestly, it seems less complex than deciphering the resulting behavior from
that table.
sld=off|warn|fatal
bld=off|warn|ratelimit
As above, sld then could become
if (sld == warn && bld != off) {
pr_warn("disabling SLD in favor of BLD\n");
sld = off;
}
Everything else should simply work. The necessary refactoring for SLD should
be minimial as well.
next prev parent reply other threads:[~2020-07-29 20:00 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 [this message]
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
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=20200729200033.GJ27751@linux.intel.com \
--to=sean.j.christopherson@intel.com \
--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=peterz@infradead.org \
--cc=ravi.v.shankar@intel.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=vedvyas.shanbhogue@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.