mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nikolay Borisov <nik.borisov@suse.com>
To: David Laight <david.laight.linux@gmail.com>
Cc: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	x86@kernel.org, David Kaplan <david.kaplan@amd.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Sean Christopherson <seanjc@google.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	Asit Mallick <asit.k.mallick@intel.com>,
	Tao Zhang <tao1.zhang@intel.com>
Subject: Re: [PATCH v6 2/9] x86/bhi: Make clear_bhb_loop() effective on newer CPUs
Date: Wed, 10 Dec 2025 17:42:05 +0200	[thread overview]
Message-ID: <a90b81cb-b6b5-4071-b5d6-713ce8eff0cf@suse.com> (raw)
In-Reply-To: <20251210133542.3eff9c4a@pumpkin>



On 10.12.25 г. 15:35 ч., David Laight wrote:
> On Wed, 10 Dec 2025 14:31:31 +0200
> Nikolay Borisov <nik.borisov@suse.com> wrote:
> 
>> On 2.12.25 г. 8:19 ч., Pawan Gupta wrote:
>>> As a mitigation for BHI, clear_bhb_loop() executes branches that overwrites
>>> the Branch History Buffer (BHB). On Alder Lake and newer parts this
>>> sequence is not sufficient because it doesn't clear enough entries. This
>>> was not an issue because these CPUs have a hardware control (BHI_DIS_S)
>>> that mitigates BHI in kernel.
>>>
>>> BHI variant of VMSCAPE requires isolating branch history between guests and
>>> userspace. Note that there is no equivalent hardware control for userspace.
>>> To effectively isolate branch history on newer CPUs, clear_bhb_loop()
>>> should execute sufficient number of branches to clear a larger BHB.
>>>
>>> Dynamically set the loop count of clear_bhb_loop() such that it is
>>> effective on newer CPUs too. Use the hardware control enumeration
>>> X86_FEATURE_BHI_CTRL to select the appropriate loop count.
>>>
>>> Suggested-by: Dave Hansen <dave.hansen@linux.intel.com>
>>> Reviewed-by: Nikolay Borisov <nik.borisov@suse.com>
>>> Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
>>
>> nit: My RB tag is incorrect, while I did agree with Dave's suggestion to
>> have global variables for the loop counts I haven't' really seen the
>> code so I couldn't have given my RB on something which I haven't seen
>> but did agree with in principle.
> 
> I thought the plan was to use global variables rather than ALTERNATIVE.
> The performance of this code is dominated by the loop.

Generally yes and I was on the verge of calling this out, however what 
stopped me is the fact that the global variables are going to be set 
"somewhere else" whilst with the current approach everything is 
contained within the clear_bhb_loop function. Both ways have their merit 
but I don't want to endlessly bikeshed.

<snip>

  reply	other threads:[~2025-12-10 15:42 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-02  6:18 [PATCH v6 0/9] VMSCAPE optimization for BHI variant Pawan Gupta
2025-12-02  6:18 ` [PATCH v6 1/9] x86/bhi: x86/vmscape: Move LFENCE out of clear_bhb_loop() Pawan Gupta
2026-01-01 12:51   ` Borislav Petkov
2026-01-06  4:29     ` Pawan Gupta
2025-12-02  6:19 ` [PATCH v6 2/9] x86/bhi: Make clear_bhb_loop() effective on newer CPUs Pawan Gupta
2025-12-10 12:31   ` Nikolay Borisov
2025-12-10 13:35     ` David Laight
2025-12-10 15:42       ` Nikolay Borisov [this message]
2025-12-14 18:38       ` Pawan Gupta
2025-12-14 19:02         ` David Laight
2025-12-15 18:01           ` Pawan Gupta
2025-12-15 21:05             ` David Laight
2025-12-14 17:16     ` Pawan Gupta
2026-01-24 19:34   ` Borislav Petkov
2026-03-05  0:41     ` Pawan Gupta
2025-12-02  6:19 ` [PATCH v6 3/9] x86/vmscape: Rename x86_ibpb_exit_to_user to x86_predictor_flush_exit_to_user Pawan Gupta
2025-12-02  6:19 ` [PATCH v6 4/9] x86/vmscape: Move mitigation selection to a switch() Pawan Gupta
2025-12-10 16:15   ` Nikolay Borisov
2025-12-02  6:19 ` [PATCH v6 5/9] x86/vmscape: Use write_ibpb() instead of indirect_branch_prediction_barrier() Pawan Gupta
2025-12-02  6:20 ` [PATCH v6 6/9] x86/vmscape: Use static_call() for predictor flush Pawan Gupta
2025-12-11 10:06   ` Nikolay Borisov
2025-12-11 10:50   ` Peter Zijlstra
2025-12-14 18:45     ` Pawan Gupta
2025-12-02  6:20 ` [PATCH v6 7/9] x86/vmscape: Deploy BHB clearing mitigation Pawan Gupta
2025-12-11 14:26   ` Nikolay Borisov
2025-12-02  6:20 ` [PATCH v6 8/9] x86/vmscape: Fix conflicting attack-vector controls with =force Pawan Gupta
2025-12-02  6:21 ` [PATCH v6 9/9] x86/vmscape: Add cmdline vmscape=on to override attack vector controls Pawan Gupta

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=a90b81cb-b6b5-4071-b5d6-713ce8eff0cf@suse.com \
    --to=nik.borisov@suse.com \
    --cc=asit.k.mallick@intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=david.kaplan@amd.com \
    --cc=david.laight.linux@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jpoimboe@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=tao1.zhang@intel.com \
    --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®