[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] x86/vmx: implement Notify VM Exit
- To: Jan Beulich <jbeulich@xxxxxxxx>
- From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Date: Thu, 19 May 2022 14:44:06 +0200
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z0AFcOzXgPed0QR8GiVtIfq1e/KCM27xxJIur1+7LhA=; b=hXM3IyJarJgjp6xPyz2XoR5lT256nYSRLXwjQncPaHDKXltT8dIz5KfAojFb1+pEBoJRKs7KhIVSRsKsIP07wFb+U2Zxk+sKVezgYdN/+4gf99O2ca45NwuVgFmgf+ldIa/595thzTAI3u/2fQPLRQ/E0sBqiCKPJW+iVGFUQfpYYMY9AwwXW9lPhSY3t7Jk8krbKKlM668oSuoWRB0/un36zdvm22A8/gHVkallOdguEHciEl+G61jYJeFRlu/K3xZClyKOWceKYRlEFVCADr70+hrfg2h8XKNPegH6GJ8aWoq/xHRDaAyN9WIuYhhNFBOuwHFyOLJ9MW782G7WkQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bQTo2HS1mfPrOBAzkDzST5oRpJy5/5feOybuZ5uni738OvebfWXlMSygZigRUrbeqy9OZq8h6ucKS59w2QMwDwoE0dpLUnsA4y1/DEUoAlxtKQawWuto2WXQ3KJl+TN4mUW5p4cp5JjPFm6I4di1CkP4oMzGxvHVQ6rF0HbQKn5rhIKOt7C6B+xmf81Bz8dN8HtYDlIsj/s/draxftzSFojBSjcWlMZt1HsdHc/unKIf/GDmDvhlj2PDq6i3UUwJgPtTwfLbIE9fNC6zsdjyomwl9qUd3kT3cwedHksLkRoEjgYGpdjlC+6N9QJyDr/+IHA620PqkhEe6Rijyg1mRQ==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Jun Nakajima <jun.nakajima@xxxxxxxxx>, Kevin Tian <kevin.tian@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
- Delivery-date: Thu, 19 May 2022 12:44:27 +0000
- Ironport-data: A9a23:fbZNtKz7aceEUmi10AN6t+f0xyrEfRIJ4+MujC+fZmUNrF6WrkUBm jRLWW6DO/iMYTb1L9x1YYzl9x5Uv8PVnNJgHgI+/CAxQypGp/SeCIXCJC8cHc8zwu4v7q5Dx 59DAjUVBJlsFhcwnj/0bv656yMUOZigHtIQMsadUsxKbVIiGX5JZS5LwbZj2NY12InhWmthh PupyyHhEA79s9JLGjp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMeaFGH/bSe gr25OrRElU1XfsaIojNfr7TKiXmS1NJVOSEoiI+t6OK2nCuqsGuu0qS2TV1hUp/0l20c95NJ Nplh8C8bwcJDPz1it8MdgVkSypAHI1t0eqSSZS/mZT7I0zuVVLJmq8rKX5seIoS96BwHH1E8 uEeJHYVdBefiumqwbW9DO5xmsAkK8qtN4Qa0p1i5WiBUbB6HtadHeOWvLe03x9p7ixKNezZa McDLyJmcTzLYgFVO0dRA5U79AutrialK20F+QjPzUYxy2/9xSZQ4YPNCdPMQuCFZe5PmEjfr H2TqgwVBTlfbrRz0wGt8Hihm+vOliPTQ58JGfuz8fsCqF+Owm0eDjUGWF39puO24malQM5WI UEQ/isorIAx+VatQ927WAe3yFabujYMVtwWFPc1gCmP16yS5Q+aD2oFSzdpado6uctwTjsvv neKks3oA3pzsbSTYXOb6rqQ6zi1PEA9PWIEICMJUwYBy93iu50oyALCSM55F6y4hcGzHiv/q w1mtwA7jrQXyMsUjaOy+Amdhyr2/sSQCAko+g/QQ2SpqBtjY5KobJCp7l6d6utcKIGeTR+Ku 31sd9Wi0d3ixKqlzESlKNjh1pnzjxpZGFUwWWJSIqQ=
- Ironport-hdrordr: A9a23:x5pO0qsvnIkhpX0rSQnmseAM7skC5YMji2hC6mlwRA09TyXGra 2TdaUgvyMc1gx7ZJhBo7+90We7MBbhHLpOkPEs1NaZLXDbUQ6TQL2KgrGD/9SNIVycygcZ79 YaT0EcMqyNMbEZt7ec3ODQKb9Jrri6GeKT9IHjJh9WPHxXgspbnmNE42igYy9LrF4sP+tCKH PQ3LsPm9LmEk5nHviTNz0gZazuttfLnJXpbVovAAMm0hCHiXeN5KThGxaV8x8CW3cXqI1Sul Ttokjc3OGOovu7whjT2yv66IlXosLozp9mCNaXgsYYBz3wgkKDZZhnWZeFoDcpydvfoGoCoZ 3pmVMNLs5z43TeciWcpgbs4RDp1HIU53rr2Taj8A/eiP28YAh/J9tKhIpffBecwVEnpstA3K VC2H/cn4ZLDDvb9R6NqOTgZlVPrA6ZsHAimekcgzh0So0FcoJcqoQZ4Qd8DIoAJiTn84oqed MeQP003MwmMG9yUkqp/lWGmLeXLzcO91a9MwU/U/WuonZrdCsT9Tpb+CQd9k1wga7VBaM0ot gsCZ4Y6o2mfvVmEp6VO91xMPdfKla9Ni4kY1jiV2gOKsk8SgHwgq+yxokJz8eXX7FN5KcOuf 36ISFlXCgJCgjTNfE=
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Thu, May 19, 2022 at 08:50:55AM +0200, Jan Beulich wrote:
> On 17.05.2022 15:21, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/hvm/vmx/vmcs.c
> > +++ b/xen/arch/x86/hvm/vmx/vmcs.c
> > @@ -67,6 +67,9 @@ integer_param("ple_gap", ple_gap);
> > static unsigned int __read_mostly ple_window = 4096;
> > integer_param("ple_window", ple_window);
> >
> > +static int __read_mostly vm_notify_window;
>
> __ro_after_init?
Yes, I tend to forget we have this now.
> > @@ -1333,6 +1338,19 @@ static int construct_vmcs(struct vcpu *v)
> > rc = vmx_add_msr(v, MSR_FLUSH_CMD, FLUSH_CMD_L1D,
> > VMX_MSR_GUEST_LOADONLY);
> >
> > + if ( cpu_has_vmx_notify_vm_exiting && vm_notify_window >= 0 )
>
> The assumption then is that values >= 2^^31 are nonsense? Generally
> I'd think we want to special case merely ~0u, giving the variable
> unsigned type.
OK, I really don't know whether >= 2^31 makes sense or not, I would
think that using such values the window would be too big to be
helpful. In any case I don't see a point in preventing >= 2^31 so
will adjust the type and check.
> However, I also don't see where you disable use of
> the feature in that case: Merely skipping the VMCS update here isn't
> enough, is it? The field itself doesn't know any special case
> values (like ~0) as per the doc I'm looking at. So I guess the OR-ing
> in of SECONDARY_EXEC_NOTIFY_VM_EXITING in vmx_init_vmcs_config()
> wants to be conditional.
I've sent the disabling chunk as a followup, forgot to add it here,
sorry.
> > --- a/xen/arch/x86/hvm/vmx/vmx.c
> > +++ b/xen/arch/x86/hvm/vmx/vmx.c
> > @@ -4567,6 +4567,30 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs)
> > */
> > break;
> >
> > + case EXIT_REASON_NOTIFY:
> > + __vmread(EXIT_QUALIFICATION, &exit_qualification);
> > +
> > + if ( exit_qualification & NOTIFY_VM_CONTEXT_INVALID )
> > + {
> > + perfc_incr(vmnotify_crash);
>
> Is this a useful event to count? We don't count other crash causes,
> iirc.
I thought it was helpful information from an admin PoV, but maybe I'm
mistaken. I know we don't count other crash reasons, but that doesn't
mean it won't be helpful to do so. Given that users have to opt-in to
enable counters I suggest to leave the counter there.
Thanks, Roger.
|