[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 2/9] x86/PV: properly set shadow allocation for Dom0


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Wed, 22 Sep 2021 14:31:47 +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; bh=Z8SPcLaS2dRzpusqtPbo+7FqWUmu2TaUK7JgsfBqOT4=; b=bIgwMPF59dyffWJSimu7g3CQReC5NKk5hepe992mPLbYRvY2+xZM6cUk5IKCTOFvnd3EnSaZMTHG68dsIY/c1fMgNtNaJ+iSNBVW2N2zmVY0o/WvFjpyLu1mS5h6b7tSllP4Pw7UCgKF6aHjY9WyH1GuCg2zG8azz7jfTgMSJd6PjFf9UDnhnOTGZIy4hlnUwxSkXM5RgdjZBjzSUPiZCRETI2i2vAjU4w9ohWW9xuK86IPkSbfKwdhYcOfBGXecaExK76PpscGeBVaJ1gvNUqPpyvNrLN+NBRvuiphW4TC7Xd93HXr9qfkvof0apOddj2TlEYa7MSfLDo1zfmUZcg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OwDVWbvrbjh2h+GONaKrGoEF7jksxeWDatv1OC7LeMhqPjmJgSfhTvyqm0AI9fDg8cSfMtq7yZH1mqJCQcJG1yAbSQHlc2yUWESt6SjA1MjbXu3GVFG07BXiSbJzI/586BKG15NOdVIyrzY2jgjMyE+Rq1H7t8v9aYiah20n0BT+CNRM09OZ1sPTq/mH7YwyuxWk6LG7UXQbg8GR4yKaa12YfMXvgclkRQnykbl1iq8McM7D8ly5JK6KSMGRofXMa8U3j8aPNzylC9Y8tYGZCqkbPau9DCUthn2QYpxg7eoJG6aClZG6ngTMzaXu3qH4wsBijvFjJ+MqHCByzvpCNQ==
  • Authentication-results: esa5.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Wei Liu <wl@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>
  • Delivery-date: Wed, 22 Sep 2021 13:32:19 +0000
  • Ironport-data: A9a23:QwzW+KBMar0uiBVW/+fkw5YqxClBgxIJ4kV8jS/XYbTApDhxgzVWn GQaD2CEPvfYYGqjc98laIXn90pSupPTytYxQQY4rX1jcSlH+JHPbTi7wuYcHM8wwunrFh8PA xA2M4GYRCwMo/u1Si6FatANl1ElvU2zbue6WLOs1hxZH1c+EX9w00g7wIbVv6Yz6TSHK1LV0 T/Ni5W31G+Ng1aY5UpNtspvADs21BjDkGtwUm4WPJinj3eH/5UhN7oNJLnZEpfNatI88thW5 Qr05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkQLb9crSiEai84G2PQghUh/szu4ktR14 9V0kcaqYBcTMbLjwt4XTEwNe81+FfUuFL7vJHG+tYqYzlHccmuqyPJrZK00FdRGoKAtWzgIr KFGbmBWBvyAr7veLLaTY+9gnMk8auLsO5sSoCpIxjDFF/c2B5vERs0m4PcFhmZp2ZoVQJ4yY eI8UDdjPQ3FcSFFZAdIT81938muiEnwJmgwRFW9+vNsvjm7IBZK+KjgNp/Zd8KHQe1Rn12Ev STW8mLhGBYYOdeDjz2f/RqEhOXCgCf6U4I6D6Cj+7hhh1j77nASDTUGWF39puO24mahX/pPJ kpS/TAhxZXe72TyEIO7BUfh5ifZ4FhMALK8DtHW9im1xJvZ5wKyBlEgFCRoeOYpq+BsfzY1g wrhc8zSOdB/jFGEYSvDre3N/W3uYXF9wXwqPnBfHFBcizX3iMRq1EueEIw7eEKgpoCtQVnNL ya2QD/Sbln5pfUC0bmytXvDiiilznQiZl9ovliLNo5JAwUQWWJEW2BKwQOAhRqjBNzAJrVkg JTjs5LFhN3i9bnXyESwrB8x8FSVCxGta2e0vLKSN8N5q2TFF4CLJNgNiN2BGKuZGpldImK4C KMikShQ+IVSLBOXgVxfOtnqY/nGOZPITIy/PtiNN4ImSsEoKGevoXE/DWbNjjuFuBV9zskC1 WKzLJ/EJWwEEp5u0Dfeb75bidfHMAhlnjiNLX06pjz6uYejiIm9E+ZdbATWMbBns8tpYmz9q r5iCidD8D0GOMXWaSjL648Da1cMKHkwH5ftrMJLMOWEJ2Jb9KsJW6+5LWoJd9M3kqJLuP3P+ 33hCEZUxECm3S/MKBmQa2AlY7TqBM4toXU+NC0qHFCpx3l8Ptr/sPZBL8M6Les96ehu7f9oV P1ZKc+ONetCF2bc8DMHYJij8IE7LEa3hRiDNjaOaSQke8IyXBTA/9LpJ1O99CQHAietm9E5p rmsilHSTZYZHlwwB8fKcvO/iVi2uCFFyu51WkLJJPhVeVntr9c2e3Cg0KdvLphVexvZxzac2 wKHOjsipLHA890v7d3EpaGYtIP1QeFwKVVXQjvA5rGsOCiEomf6md1cUPyFdCz2XX/v/Pnwf v1cyvzxPaFVnFtOtIYgQb9nwbhnuonqrr5eiA9lAG/KfxKgDbY5eiuK2sxGt6tswL5FuFTpB hLTq4cCYbjZatn4FFMxJRY+arXR3P4ZrTDe8PApLRio/yRw5reGDR1fMhTkZPax91ep3FfJG dschfM=
  • Ironport-hdrordr: A9a23:Farl3Kg9DFVC2g4hXhNskWTT+HBQX1R13DAbv31ZSRFFG/FwyP rAoB1L73PJYWgqNU3I+ergBEGBKUmskKKdkrNhQotKOzOWxFdATbsSkLcKpgePJ8SQzJ8k6U 4NSdkYNDS0NykBsS+Y2njJLz9D+qj/zEnAv463pB0MPGIaGJ2IrT0JbjpzencGNTWubqBJcq Z0iPA3xQZINU5nFfhSURI+Lpb+TpDw5d3biVlsPW9R1CC+yReTrJLqGRmR2RkTFxtJ3LcZ6G DA1yj0/L+qvf2XwgLVkza71eUWpPLRjv94QOCcgMkcLTvhzi6ueYRaQrWH+BQ4uvum5loGmM TF5z0gI8NwwXXMeXzdm2qi5yDQlBIVr1Pyw16RhnXu5eT/WTIBEsJEwblUdxPIgnBQ9u1U4e Zu5Sa0ppBXBRTPkGDW/N7TTSxnkUKyvD4LjfMTp2Y3a/pdVJZh6agkuG9FGpYJGyz3rKo9Fv N1Mc3a7PFKNXuHcnHiuHV1ytDEZAVxIv6/eDlHhiWp6UkQoJggpHFogvD3301wtK7VcqM0ot gtac9T5ehzpsx/V9M3OA5Oe7ruNoRhKSi8Rl56Gm6XYZ3vDUi946If0I9Flt1CR6Z4uKfauK 6xHW+w5lRCN34HN6W1rdR2G1b2MT6AYQg=
  • Ironport-sdr: aISvFQS+9GrrLuSrCmA5FOoN7oQh1KPlIFA1EaALcM8iJBpHn2Wnob1rf7sBfrZ5MbAtz4R9XK ynxwk5xl55PeiE0tPvZ6BaprULQMuD5HGNA/w2vw0YMVFg9InW5zck8lDacd74Hr4sKvDjPxta lWUP+aam6J3QYZqtLD97Prse78M+dd3RKLPuZei1RJzYLvGpzxhjDskjqN8kJrkcWg+4IEOHXf NZMOxrIkSpn46dOQFQF0uhgVb2DpnGjmNr96lerJCzw4ZzFMOKK0yDDnkCr7PadRCdY0DLnm5T kk7roPIKSUu94O+kOPgADfrw
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 21/09/2021 08:17, Jan Beulich wrote:
> Leaving shadow setup just to the L1TF tasklet means running Dom0 on a
> minimally acceptable shadow memory pool, rather than what normally
> would be used (also, for example, for PVH). Populate the pool before
> triggering the tasklet, on a best effort basis (again like done for
> PVH).
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> Acked-by: Tim Deegan <tim@xxxxxxx>
> ---
> v2: Latch dom0_paging_pages() result.
>
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -1298,7 +1298,7 @@ int shadow_set_allocation(struct domain
>  {
>      struct page_info *sp;
>  
> -    ASSERT(paging_locked_by_me(d));
> +    ASSERT(paging_locked_by_me(d) || system_state < SYS_STATE_active);
>  
>      if ( pages > 0 )
>      {
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -21,6 +21,7 @@
>  #include <asm/page.h>
>  #include <asm/pv/mm.h>
>  #include <asm/setup.h>
> +#include <asm/shadow.h>
>  
>  /* Allow ring-3 access in long mode as guest cannot use ring 1 ... */
>  #define BASE_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
> @@ -933,7 +934,18 @@ int __init dom0_construct_pv(struct doma
>  #ifdef CONFIG_SHADOW_PAGING
>      if ( opt_dom0_shadow )
>      {
> +        bool preempted;
> +
>          printk("Switching dom0 to using shadow paging\n");
> +
> +        nr_pt_pages = dom0_paging_pages(d, nr_pages);
> +
> +        do {
> +            preempted = false;
> +            shadow_set_allocation(d, nr_pt_pages, &preempted);
> +            process_pending_softirqs();
> +        } while ( preempted );

This is still broken.

The loop setting the shadow allocation needs to be outside of this
conditional, because it is not related to early activation of the l1tf
tasklet.

~Andrew




 


Rackspace

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