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

Re: [PATCH v3 4/4] x86/shadow: re-work 4-level SHADOW_FOREACH_L2E()


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Thu, 9 Feb 2023 17:26:25 +0000
  • 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=qXSoiHqzF5sku05KOPYN+Fkj22jfeW5+TWc/spDNkbU=; b=oS53/YsQQJFQFnn4sDQ1u0jDjZ/1IKvuV7XM84QEOR/eatncRJ/0iVxyOKej/JFYj/sZhzXrbP4TDplpYQWMQWvB8rPZbR4AGJUAfhEnjsP+26hx0HOrkORMwXeGXXxRquRHIU8YhGJ480G5KpmLpgy4y/eH47IdTsuY5GGHbgYX8KfTtq946f4+yZpQvOzzfPXHQUTPRz6v0pOMHeSUHagw0YEalmcQpnyeYmaHWhx5raBdySvOL6GL+ECE2L8K1ALRu4uEUfIlmP4HT2PAlG93P/W/ehJZml7o0cXbm6Pzy00NNhBYcXDVRYysJ9FfzpHdUumIkvk5stE4VIuhVw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JWYmMWh1x/LuA2eMLd8qCNyzB3/iIlxPAFEhGB+LU4CeWaxyVDy3PkUkarrOiPIIQsbdmxoDuR8a8r/EsMGcxNLtTFhwaKRxl81mdZyQGlHWVW/ViLSUnVR+blyr2h/HfkR3Q4Yj4osiGiBI7se758M+HYqOmhFdqsaGEYaKaU3ufIdhXyIucUbHcKQpzvITr6TiKYs+jPaNMCxi1/ILTdOHU/AFzhJ9ivWG7GSNdNkiHQlB1RCMnap7VX+bsfyjyClRkJonQpFpaAAUS6yhKNPfzTu+tCHHQ5AUPLp65qIMEdvy53zHvUxNo0OYEiGKsZN0nSRkNaKs7DR4OqQRGA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Wei Liu <wl@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>
  • Delivery-date: Thu, 09 Feb 2023 17:26:46 +0000
  • Ironport-data: A9a23:KB/Kmarq9yU7RwLMEwsP7lKV/DVeBmIuZBIvgKrLsJaIsI4StFCzt garIBmFbvrfMGOnfI0laI+28EwOvJKEz9dmHQdsrX8yQn8Q9ZuZCYyVIHmrMnLJJKUvbq7FA +Y2MYCccZ9uHhcwgj/3b9ANeFEljfngqoLUUbKCYWYpA1c/Ek/NsDo788YhmIlknNOlNA2Ev NL2sqX3NUSsnjV5KQr40YrawP9UlKm06WxwUmAWP6gR5weEzyhNV/rzGInqR5fGatgMdgKFb 76rIIGRpgvx4xorA9W5pbf3GmVirmn6ZFXmZtJ+AsBOszAazsAA+v9T2Mk0MC+7vw6hjdFpo OihgLTrIesf0g8gr8xGO/VQO3kW0aSrY9YrK1Dn2SCY5xWun3cBX5yCpaz5VGEV0r8fPI1Ay RAXACpKQC6koMGt+7aYZvFr2MslN+7kN6pK7xmMzRmBZRonabbqZv2QoOR+hXI3jM0IGuvCb c0EbzYpdA7HfxBEJlYQDtQ5gfusgX78NTZfrTp5p4JuuzSVkFM3jeerbIe9lt+iHK25mm6xo G7c8nu/KRYdLNGFkhKO8262h/+JliT+MG4XPOzmqqYz0QTLroAVIAE0TQOigt+SsRadR/97N UYKxyp1rYFnoSRHSfG4BXVUukWsvBQRRt5RGO0S8xyWx+zf5APxLngJSHtNZcIrsOcyRCc2z RmZktXxHzttvbaJD3WH+d+8sjeaKSUTa2gYakcsUQoAy8nupsc0lB2nczp4OKu8j9mwAjepx TmP9HI6n+9L0ZNN0Lin91fahT7qvoLOUgM++gTQWCSi8x99Y4mmIYev7DA38Mp9EWpQdXHZ1 FBspiRUxLlm4U2l/MBVfNgwIQ==
  • Ironport-hdrordr: A9a23:0B5KVq5H1fYF+3E+KAPXwBTXdLJyesId70hD6qkoc20tTiX5ra qTdPRy726WtN9jYgBZpTngAtj9fZq4z/VICOYqTNCftWXd2VdAT7sSkrcKoQeQfREWn9Q1vc sOHZSSEOecMbETt7eF3ODSKadD/DDzytHNuQ6o9QYJcegFUcFdBkxCe32m+wVNNXN77LQCZe eh2vY=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 08/02/2023 2:38 pm, Jan Beulich wrote:
> First of all move the almost loop-invariant condition out of the loop;
> transform it into an altered loop boundary, noting that the updating of
> _gl2p is relevant only at one use site, and then also only inside the
> _code blob it provides. Then drop the shadow_mode_external() part of the
> condition as being redundant with the is_pv_32bit_domain() check.
> Further, since the new local variable wants to be "unsigned int",
> convert the loop induction variable accordingly. Finally also adjust
> formatting as most code needs touching anyway.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -861,23 +861,22 @@ do {
>  /* 64-bit l2: touch all entries except for PAE compat guests. */
>  #define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)       \
>  do {                                                                        \
> -    int _i;                                                                 \
> -    int _xen = !shadow_mode_external(_dom);                                 \
> +    unsigned int _i, _end = SHADOW_L2_PAGETABLE_ENTRIES;                    \
>      shadow_l2e_t *_sp = map_domain_page((_sl2mfn));                         \
>      ASSERT_VALID_L2(mfn_to_page(_sl2mfn)->u.sh.type);                       \
> -    for ( _i = 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ )                  \
> +    if ( is_pv_32bit_domain(_dom) /* implies !shadow_mode_external(_dom) */ 
> && \

As this is a comment, I think can reasonably be

/* implies !shadow_mode_external */

which shortens it enough to maintain the RHS justification.

~Andrew



 


Rackspace

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