From: "Luck, Tony" <tony.luck@intel.com>
To: "Williams, Dan J" <dan.j.williams@intel.com>
Cc: "hdegoede@redhat.com" <hdegoede@redhat.com>,
"markgross@kernel.org" <markgross@kernel.org>,
"Joseph, Jithu" <jithu.joseph@intel.com>,
"corbet@lwn.net" <corbet@lwn.net>,
"Raj, Ashok" <ashok.raj@intel.com>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"patches@lists.linux.dev" <patches@lists.linux.dev>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"mingo@redhat.com" <mingo@redhat.com>,
"rostedt@goodmis.org" <rostedt@goodmis.org>,
"Shankar, Ravi V" <ravi.v.shankar@intel.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"platform-driver-x86@vger.kernel.org"
<platform-driver-x86@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"hpa@zytor.com" <hpa@zytor.com>, "bp@alien8.de" <bp@alien8.de>,
"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"andriy.shevchenko@linux.intel.com"
<andriy.shevchenko@linux.intel.com>,
"x86@kernel.org" <x86@kernel.org>
Subject: Re: [RFC 07/10] platform/x86/intel/ifs: Create kthreads for online cpus for scan test
Date: Thu, 3 Mar 2022 11:59:09 -0800 [thread overview]
Message-ID: <YiEeDfuQyqperN9x@agluck-desk3.sc.intel.com> (raw)
In-Reply-To: <09b5b05018a8600ca8fab896790ab16827c80e4e.camel@intel.com>
On Wed, Mar 02, 2022 at 08:17:32PM -0800, Williams, Dan J wrote:
> What is this requirement to try to synchronize CPU execution? Comments
> should explain the "why", the code usually explains the "what".
I need to put some more bits into the Documentation/x86/ifs.rst
because if I had explained the IFS feature better there, you wouldn't
have had to ask this (and some other questions).
IFS works on one CORE at a time. But with HT enabled there are two
logical CPUs that are on that core.
Entering IFS test mode is done by all HT threads writing to the
ACTIVATE_SCAN MSR "together". The microcode for that MSR will
make the first logical CPU to write wait for a while. User can
choose how many cycles to wait with some of the bits in the value
written to the MSR ... in this driver we hard coded 5 milli-seconds.
That seemed plenty to allow for the bottom half of interrupts, or
a perf NMI to knock the HT threads a little bit out of sync with
each other.
So the code flow when running a test is to wake the kthreads for
the logical CPUs that share the core. The threads may wake at
different times, so there is the software sync to get them close
enough.
Then comes the loop to execute the test ... it is a loop because
the core may not complete all "chunks" in one ACTIVATE_SCAN
MSR write ... if it doesn't, the loop restarts execution from
the chunk where IFS execution stopped.
Interrupts are only blocked during the ACTIVATE_SCAN to
increase the chances of completion. But preemption is
disabled for the whole loop so that the threads won't
get too far out of sync.
-Tony
next prev parent reply other threads:[~2022-03-03 19:59 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-01 19:54 [RFC 00/10] Introduce In Field Scan driver Jithu Joseph
2022-03-01 19:54 ` [RFC 01/10] x86/microcode/intel: expose collect_cpu_info_early() for IFS Jithu Joseph
2022-03-01 20:08 ` Greg KH
2022-03-02 0:56 ` Joseph, Jithu
2022-03-02 10:30 ` Borislav Petkov
2022-03-03 1:34 ` Joseph, Jithu
2022-03-01 19:54 ` [RFC 02/10] Documentation: In-Field Scan Jithu Joseph
2022-03-01 20:07 ` Greg KH
2022-03-02 0:58 ` Joseph, Jithu
2022-03-01 19:54 ` [RFC 03/10] platform/x86/intel/ifs: Add driver for " Jithu Joseph
2022-03-02 23:24 ` Williams, Dan J
2022-03-02 23:31 ` Raj, Ashok
2022-03-03 0:02 ` Luck, Tony
2022-03-03 2:04 ` Joseph, Jithu
2022-03-01 19:54 ` [RFC 04/10] platform/x86/intel/ifs: Load IFS Image Jithu Joseph
2022-03-03 2:58 ` Williams, Dan J
2022-03-01 19:54 ` [RFC 05/10] platform/x86/intel/ifs: Check IFS Image sanity Jithu Joseph
2022-03-01 19:54 ` [RFC 06/10] platform/x86/intel/ifs: Authenticate and copy to secured memory Jithu Joseph
2022-03-01 19:54 ` [RFC 07/10] platform/x86/intel/ifs: Create kthreads for online cpus for scan test Jithu Joseph
2022-03-03 4:17 ` Williams, Dan J
2022-03-03 19:59 ` Luck, Tony [this message]
2022-03-04 19:20 ` Joseph, Jithu
2022-03-07 16:52 ` Dan Williams
2022-03-07 17:46 ` Luck, Tony
2022-03-10 21:42 ` Kok, Auke
2022-03-01 19:54 ` [RFC 08/10] platform/x86/intel/ifs: Add IFS sysfs interface Jithu Joseph
2022-03-04 0:31 ` Williams, Dan J
2022-03-04 16:51 ` Luck, Tony
2022-03-04 20:42 ` Joseph, Jithu
2022-03-04 21:01 ` Luck, Tony
2022-03-21 21:15 ` Luck, Tony
2022-03-07 17:38 ` Dan Williams
2022-03-07 19:09 ` Joseph, Jithu
2022-03-07 19:15 ` Dan Williams
2022-03-07 19:55 ` Joseph, Jithu
2022-03-07 20:25 ` Dan Williams
2022-03-07 20:56 ` Joseph, Jithu
2022-03-07 21:28 ` Dan Williams
2022-03-07 21:30 ` gregkh
2022-03-07 21:33 ` Luck, Tony
2022-03-01 19:54 ` [RFC 09/10] platform/x86/intel/ifs: add ABI documentation for IFS Jithu Joseph
2022-03-04 0:57 ` Williams, Dan J
2022-03-01 19:54 ` [RFC 10/10] trace: platform/x86/intel/ifs: Add trace point to track Intel IFS operations Jithu Joseph
2022-03-01 20:17 ` Steven Rostedt
2022-03-02 1:02 ` Joseph, Jithu
2022-03-01 20:10 ` [RFC 00/10] Introduce In Field Scan driver Greg KH
2022-03-01 20:14 ` Greg KH
2022-03-14 23:10 ` Luck, Tony
2022-03-15 7:34 ` Greg KH
2022-03-15 14:59 ` Luck, Tony
2022-03-15 15:26 ` Greg KH
2022-03-15 16:04 ` Dan Williams
2022-03-15 16:09 ` Dan Williams
2022-03-15 16:10 ` Luck, Tony
2022-03-16 8:09 ` Greg KH
2022-03-02 15:33 ` Steven Rostedt
2022-03-02 16:20 ` Greg KH
2022-03-02 13:59 ` Andy Lutomirski
2022-03-02 20:29 ` Luck, Tony
2022-03-02 21:18 ` Andy Lutomirski
2022-03-02 21:41 ` Luck, Tony
2022-03-02 23:11 ` Williams, Dan J
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=YiEeDfuQyqperN9x@agluck-desk3.sc.intel.com \
--to=tony.luck@intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=ashok.raj@intel.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=hpa@zytor.com \
--cc=jithu.joseph@intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=markgross@kernel.org \
--cc=mingo@redhat.com \
--cc=patches@lists.linux.dev \
--cc=platform-driver-x86@vger.kernel.org \
--cc=ravi.v.shankar@intel.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®