[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/3] x86/vmx: implement VMExit based guest Bus Lock detection
- To: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
- From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
- Date: Tue, 13 Dec 2022 12:58:21 +0100
- 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=tWNXsaRD/d+EwuAZAFxSCkW2dju97M7XgpALDcoIa9c=; b=Sw8nvx8ikF4KdVkI4uWNYsU1vZGZ3bwt0ENiOoMQSwqpCmyiH12AZ0FKaoyFpY/yOa/PFMFoCi5v6fV8YZfWulYxQfCNPVM2r5PyebUtAQmKigl9PIX275yWMxbKumSA7JzERNJphO3JcQAAh01E8PwD/mAYNz/FghsT3SfCXjsyhWw0T4nt3JUNNVlUE/STrhFDhMXqzx7hhBA7vpbE24bHrS+dcy+O0eeuZvx5K5dykYmUJSGydXhW6gNsAMnFsP8B58/liCcAh9CuV2Z9UPZFeb/bpignZdGSqQf09tZ2A7y8pRKoMkv/VJu1A20/YVqeA9qc4h3Tj1JYVmXMew==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NDKLpt1JPKAL/Nue1Xp8TMoO2By7SFeYtyymO0DIZAeB+hnq3TV0QzpYaeZA1Govpv3JAsv4Ru5qGVLBB2wiYfaaVPQXzb53ZiP0YUuPvnUVhjR3h8LlrES1VfTi2GGAYJMgdlcKd+x7ZB92qasMjELuyEk8y94UBRSL4Shci3s9kQFgELAGddtp8Y2w8a/Ht/9cjwD8yUCwrX+eoZIFyC0tN/idEbjLcwNznffpld9UGfaCB8EHImGhlibqguRO7KV8+Jfy6cLxCpCWffY/5LenkGunB9XC09v7/QF6OZU7/lQyMn8xr4EjYc5b2lFegiej3fueBQwf4CK8rh5p9A==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>, "Beulich, Jan" <JBeulich@xxxxxxxx>, "Cooper, Andrew" <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
- Delivery-date: Tue, 13 Dec 2022 11:58:41 +0000
- Ironport-data: A9a23:Fz3e+6yGZKEG0jqQdP96t+fixyrEfRIJ4+MujC+fZmUNrF6WrkUGz 2EdWGuGOKuPZGb8LY90aIuzoR4FucTQnYIySQtq+SAxQypGp/SeCIXCJC8cHc8wwu7rFxs7s ppEOrEsCOhuExcwcz/0auCJQUFUjP3OHfykTbaeYUidfCc8IA85kxVvhuUltYBhhNm9Emult Mj75sbSIzdJ4RYtWo4vw//F+U0HUMja4mtC5AVkPKsT5jcyqlFOZH4hDfDpR5fHatE88t6SH 47r0Ly/92XFyBYhYvvNfmHTKxBirhb6ZGBiu1IOM0SQqkEqSh8ai87XAME0e0ZP4whlqvgqo Dl7WT5cfi9yVkHEsLx1vxC1iEiSN4UekFPMCSDXXcB+UyQq2pYjqhljJBheAGEWxgp4KXBs9 uY6BWAqUgC4jNqR4pOkS/hC3Nt2eaEHPKtH0p1h5RfwKK9+BLX8GeDN79Ie2yosjMdTG/qYf 9AedTdkcBXHZVtIJ0sTD5U92uyvgxETcRUB8A7T+fVxvjWVlVQsuFTuGIO9ltiiX8Jak1zev mvb12/4HgsbJJqUzj/tHneE1r+TzH6iBth6+LuQsc9wx2O8zzIvKxgJXlDqr+KAumWhRIcKQ 6AT0m90xUQoz2SoQ8f8WVukoXeClh8aR9dUVeY97Wml2qfSpgqUGGUAZjpAc8A98t87QyQw0 V2ElM+vAiZg2JWXVHTb8L6XpDGzPCE9LGkeaCtCRgwAi/HBiowuihPETv54DbW4yNbyHFnY3 DSivCU4wbIJgqY2O76T+FnGh3epucLPRwtsvgHPBDv9s0V+eZKvYJGu5R7D9/FcIY2FT16H+ n8Zh8yZ6+NIBpaI/MCQfNgw8HiSz67tGFXhbZRHRfHNKxzFF6afQL1t
- Ironport-hdrordr: A9a23:sJrotqlI6V7i5Yv8nIFs8jyIi5HpDfIQ3DAbv31ZSRFFG/Fw9v rPoB1/73TJYVkqNk3I9erwWpVoBEmskqKdn7NhWYtKLTOGhILAFugLgbcKgQeQfREW2dQz6U 4KSdkcNDSfNykesS5zjTPIaurJiLG8mpxBz4/loktQcQ==
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Tue, Jul 19, 2022 at 07:26:08AM +0000, Tian, Kevin wrote:
> > From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> > Sent: Friday, July 1, 2022 9:17 PM
> >
> > @@ -4065,6 +4065,11 @@ void vmx_vmexit_handler(struct cpu_user_regs
> > *regs)
> >
> > if ( unlikely(exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY) )
> > return vmx_failed_vmentry(exit_reason, regs);
>
> Add a blank line.
>
> > + if ( unlikely(exit_reason & VMX_EXIT_REASONS_BUS_LOCK) )
> > + {
> > + perfc_incr(buslock);
> > + exit_reason &= ~VMX_EXIT_REASONS_BUS_LOCK;
> > + }
> >
> > if ( v->arch.hvm.vmx.vmx_realmode )
> > {
> > @@ -4561,6 +4566,15 @@ void vmx_vmexit_handler(struct cpu_user_regs
> > *regs)
> > vmx_handle_descriptor_access(exit_reason);
> > break;
> >
> > + case EXIT_REASON_BUS_LOCK:
> > + /*
> > + * Nothing to do: just taking a vmexit should be enough of a pause
> > to
> > + * prevent a VM from crippling the host with bus locks. Note
> > + * EXIT_REASON_BUS_LOCK will always have bit 26 set in exit_reason,
> > and
> > + * hence the perf counter is already increased.
> > + */
> > + break;
> > +
>
> Would it be helpful from diagnostic angle by throwing out a warning,
> once per the culprit domain?
Hm, not sure. I've assumed that increasing the counter would be
enough, but that's not tied to a domain.
I will leave as-is unless someone else expresses interest in this (and
can also be added later if desired).
Thanks, Roger.
|