From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
Kevin Tian <kevin.tian@intel.com>,
Jun Nakajima <jun.nakajima@intel.com>
Subject: Re: [PATCH v3 02/12] x86/HVM: improve CET-IBT pruning of ENDBR
Date: Fri, 24 Jan 2025 10:16:31 +0100 [thread overview]
Message-ID: <Z5Nab7X6l9McxFw2@macbook.local> (raw)
In-Reply-To: <8aa7c377-b664-4786-b671-deff1601ac5f@suse.com>
On Thu, Jan 23, 2025 at 05:14:39PM +0100, Jan Beulich wrote:
> On 23.01.2025 15:24, Roger Pau Monné wrote:
> > On Thu, Jan 23, 2025 at 02:18:41PM +0100, Jan Beulich wrote:
> >> On 23.01.2025 13:41, Roger Pau Monné wrote:
> >>> On Mon, Feb 26, 2024 at 05:42:20PM +0100, Jan Beulich wrote:
> >>>> --- a/xen/arch/x86/hvm/hvm.c
> >>>> +++ b/xen/arch/x86/hvm/hvm.c
> >>>> @@ -161,10 +161,15 @@ static int __init cf_check hvm_enable(vo
> >>>> else if ( cpu_has_svm )
> >>>> fns = start_svm();
> >>>>
> >>>> + if ( fns )
> >>>> + hvm_funcs = *fns;
> >>>> +
> >>>> + prune_vmx();
> >>>> + prune_svm();
> >>>
> >>> Isn't it actually the opposite of pruning. What the helpers do is
> >>> fill all the pointers in the structure.
> >>
> >> With the goal of their ENDBR to then be pruned. I agree though that the
> >> functions don't do any pruning themselves. Yet
> >> {svm,vmx}_prepare_for_cet_ibt_pruning() is a little awkward for my taste
> >> (although it would properly document the purpose). Plus ...
> >>
> >>> I would rather name them {vmx,svm}_fill_hvm_funcs() or similar.
> >>
> >> ... while I can use those names (perhaps without the "hvm" infix), the
> >> present names have the advantage that any other pruning that we may
> >> find desirable could also be put there. Hence also why the cpu_has_*
> >> checks live there.
> >
> > Hm, I'm unsure. What else do you see becoming part of those
> > functions? It's hard for me to suggest a name when it's unclear what
> > future logic do you think they could contain.
>
> Prior to IBT it wasn't foreseeable any pruning might be needed. We're
> in a similar position now: We simply can't know whether anything else
> is going to be needed there.
>
> > Given the current code I still think something that contains 'fill' or
> > similar is way more appropriate, the more if the IBT check is pulled
> > out into the caller.
>
> As indicated, I'd prefer the IBT check to remain in the function. But
> yes, I'll see about renaming. If ever other stuff wants adding there,
> we can surely rename another time.
>
> >>> And possibly pull the
> >>> cpu_has_xen_ibt check outside the functions:
> >>>
> >>> if ( cpu_has_xen_ibt )
> >>> {
> >>> /*
> >>> * Now that svm_function_table was copied, populate all function pointers
> >>> * which may have been left at NULL, for __initdata_cf_clobber to have as
> >>> * much of an effect as possible.
> >>> */
> >>> vmx_fill_hvm_funcs();
> >>> svm_fill_hvm_funcs();
> >>> }
> >>
> >> Which would leave the SVM function entirely empty.
> >
> > You could possible declare it as an static inline in the hvm.h header
> > for the time being?
> >
> >> The intention was for
> >> that to not be the case, and also for the comment you have added above
> >> to also live in the per-vendor functions.
> >
> > Isn't that a bit redundant? I would prefer to not have duplicated
> > comments over the code, hence my suggestion to place part of the logic
> > in the caller.
>
> In this case I view the redundancy as necessary. You want to know what
> to add to the functions when you look at them, irrespective of whether
> you also look at their caller.
OK, I won't oppose to it, but I do think function names need
adjusting.
Thanks, Roger.
next prev parent reply other threads:[~2025-01-24 9:17 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-26 16:40 [PATCH v3 00/12] x86/HVM: misc tidying Jan Beulich
2024-02-26 16:42 ` [PATCH v3 01/12] VMX: don't run with CR4.VMXE set when VMX could not be enabled Jan Beulich
2025-01-24 10:25 ` Roger Pau Monné
2024-02-26 16:42 ` [PATCH v3 02/12] x86/HVM: improve CET-IBT pruning of ENDBR Jan Beulich
2025-01-23 12:41 ` Roger Pau Monné
2025-01-23 13:18 ` Jan Beulich
2025-01-23 14:24 ` Roger Pau Monné
2025-01-23 16:14 ` Jan Beulich
2025-01-24 9:16 ` Roger Pau Monné [this message]
2024-02-26 16:42 ` [PATCH v3 03/12] VMX: drop vmcs_revision_id Jan Beulich
2025-01-24 10:51 ` Roger Pau Monné
2025-01-24 11:02 ` Roger Pau Monné
2024-02-26 16:43 ` [PATCH v3 04/12] VMX: convert vmx_basic_msr Jan Beulich
2025-01-24 10:57 ` Roger Pau Monné
2024-02-26 16:43 ` [PATCH v3 05/12] VMX: convert vmx_pin_based_exec_control Jan Beulich
2024-02-26 16:43 ` [PATCH v3 06/12] VMX: convert vmx_cpu_based_exec_control Jan Beulich
2024-02-26 16:44 ` [PATCH v3 07/12] VMX: convert vmx_secondary_exec_control Jan Beulich
2024-02-26 16:44 ` [PATCH v3 08/12] VMX: convert vmx_tertiary_exec_control Jan Beulich
2024-02-26 16:45 ` [PATCH v3 09/12] VMX: convert vmx_vmexit_control Jan Beulich
2024-02-26 16:45 ` [PATCH v3 10/12] VMX: convert vmx_vmentry_control Jan Beulich
2024-02-26 16:45 ` [PATCH v3 11/12] VMX: convert vmx_ept_vpid_cap Jan Beulich
2024-02-26 16:46 ` [PATCH v3 12/12] VMX: convert vmx_vmfunc Jan Beulich
2025-01-24 11:09 ` [PATCH v3 00/12] x86/HVM: misc tidying Roger Pau Monné
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=Z5Nab7X6l9McxFw2@macbook.local \
--to=roger.pau@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--cc=jun.nakajima@intel.com \
--cc=kevin.tian@intel.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.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 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.