[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.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.