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

Re: [PATCH 4/8] efi: Avoid hard-coding the various PAT constants


  • To: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Tue, 6 Dec 2022 11:17:20 +0000
  • Accept-language: en-GB, en-US
  • 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=cgZ3Dj8B35qbojfRKqT1U/D6T4YNMa0xnYNA9hGyJB8=; b=XzvYSPSmfKsyKpnqB3wD0mPG31LIQVWopxPTDCxAtX3bKOek/alYBYuZTByTSAkjsYwVJ6gKf+Ilnw++sfTTeMUQtzu0ImgJK7OtcNOVzyQyfpt5eFG3kVZWNLdgCwu+yqbPfFWs9dLATu4r/XmwC15nv377q1ttIxyHOpGYB1w+yQHh4Ne7XHhSBCOaPKjZNgtxmTuOuXTIfMyJa3UKKfAaheyfxZcefSXn56vwHpG0DIVCR5VsmVCbIWiBA+OpBbexpNC4IW98vuv5WUABhnGzmfQcYmkWzd61PrwrmnNixvRcOult/AvYyvW6Ox3ckTE1Ppp3/A7uF931GNpGdw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EIWbDNH12tvw+LmhaRxFaXRVO8HyyGDbr/aT/re/QXZ1ccDIVmA67NV6GI93f9/TrIlHAD143spBKUmHT/xXpBBPtyvwT6xN9GfZnDQaxqHDCc1urrRk7ChVxUPndQZSng0mNVHeEonahBy34dvQHCdpO9QqJe3KYCXbr/Yec1GoqTpqj/kINmOeqrZ5sO4naAr1KNvSSr0LD53/ON7180mVExre4kXCuXuwXAWcE+cF0oEMCBmc3KNssi87Gc1jutNSZvxg2cuqGH3HO6uYt48WN1xTGEHkRLS32LEOoKD1kivEo8ILDV39BKMo0X05ITNBJc5GAkZJ0m0Yj0bjbg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxx>, "Tim (Xen.org)" <tim@xxxxxxx>
  • Delivery-date: Tue, 06 Dec 2022 11:17:55 +0000
  • Ironport-data: A9a23:ecaauK3wO1nz3dyEH/bD5SVwkn2cJEfYwER7XKvMYLTBsI5bpzwOm mQeUGGFb/uOMTT2eot1bty39B4CvcfVzNA1SQY5pC1hF35El5HIVI+TRqvS04F+DeWYFR46s J9OAjXkBJppJpMJjk71atANlVEliefTAOK5ULSfUsxIbVcMYD87jh5+kPIOjIdtgNyoayuAo tq3qMDEULOf82cc3lk8tuTS9nuDgNyo4GlC5wZmO6gR1LPjvyJ94Kw3dPnZw0TQGuG4LsbiL 87fwbew+H/u/htFIrtJRZ6iLyXm6paLVeS/oiI+t5qK23CulQRrukoPD9IOaF8/ttm8t4sZJ OOhF3CHYVxB0qXkwIzxWvTDes10FfUuFLTveRBTvSEPpqFvnrSFL/hGVSkL0YMkFulfGXtM7 qIgOTkxTDehlc6f+72ecNVSmZF2RCXrFNt3VnBI6xj8VK5ja7acBqLA6JlfwSs6gd1IEbDGf c0FZDFzbRPGJRpSJlMQD5F4l+Ct7pX9W2QA9BTJ+uxouy6KlFUZPLvFabI5fvSjQ8lPk1nej WXB52njWTkRNcCFyCrD+XWp7gPKtXOkAtpCT+zhnhJsqEC8l003UENRaVCYjem0lEyffPsOD 2VBr0LCqoB3riRHVOLVUxC9oVaFuAAdQNtaF+Am6ACLxbHQ6gzfDW8BJhZRZdpjuMIoSDgC0 l6Sg8ivFTFpqKeSS3+W6vGTtzzaES0cN2oLfyIHZQoD/dj4oYs3gw7PT9BsC6q8hJv+HjSY6 zKAoTU6hr4TpdUWzKj99lfC6xqzorDZQwhz4R/YNkq57wZRdIOjIYuy5jDmAe1oKY+YShyLu icCks3HtOQWV8jVzWqKXfkHG6yv67CdKjrAjFVzHp4nsTOw53qkeoMW6zZ7TKt0Dvs5lfbSS Be7kWtsCFV7YCPCgXNfC25pN/kX8A==
  • Ironport-hdrordr: A9a23:oFEzxKrDd4l7Ti/qZbyjagEaV5sFLNV00zEX/kB9WHVpm5Oj+v xGzc5w6farsl0ssSkb6Ku90KnpewK+yXbsibNhcYtKLzOWwldAS7sSorcKogeQVhEWk9Qw6U 4OSdkYNDSdNzlHZIPBkXGF+rUbsZe6GcKT9IHjJh5WJGkEBZ2IrT0JczpzeXcGJjWucKBJcK Z0kfA3wgZIF052Uu2LQl0+G8TTrdzCk5zrJTYAGh4c8QGLyR+49bLgFBCc/xEGFxdC260r/2 TpmxHwovzLiYD69jbsk0voq7hGktrozdVOQOSKl8guMz3pziq4eYh7XLWGnTYt5MWi8kwjnt Xgqwope+5z93TSVGeopgaF4Xig7B8er1vZjXOIi3rqpsL0ABggDdBauI5fehzFr2I9odBVys twriCknqsSKSmFsDX25tDOWR0vvFGzu2AenekaiGEaeZcCaYVWsZcU8CpuYdI99WPBmcQa+d tVfYfhDcVtAAqnhrfizzFSKemXLzMO99G9MxM/U4KuomJrdTtCvjYlLYQk7ws9HdQGOtp5Dq 3/Q9pVfPsldL5oUYttQOgGWse5EWrLXFbFN3+TO03uEOUdN2vKsIOf2sR82AgEQu178HIeou W2bLpjjx96R2v+TcmVmJFb+BHER2uwGTzr18FF/pB8/rnxXqDiPyGPQE0n15LImYRUPuTLH/ KofJ5GCf7qKmXjXY5Pwg3lQpFXbX0TStcctNo3U0+H5sjLNorpvOrGd+u7HsunLR80HmfkRn cTVjn6I8tNqkitR3/jmRDUH2jgf0TulKgAZ5QyP9JjvLTlGrc8wTT9027Jl/1jAQcywpAebQ 95PK7tlL+9qC2/4XvIhl8ZTyZgMg==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHZCSwMd4skGdRrykKG8ZrCNpXFUa5gtkQA
  • Thread-topic: [PATCH 4/8] efi: Avoid hard-coding the various PAT constants

On 06/12/2022 04:33, Demi Marie Obenour wrote:
> This makes the code much easier to understand, and avoids problems if
> Xen's PAT ever changes in the future.
>
> Signed-off-by: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx>
> ---
>  xen/common/efi/boot.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 
> 8e880fe30c7541a202dec3e665300d6549953aa3..260997b251b09dae4b48c1b1db665778e02d760a
>  100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1746,21 +1746,21 @@ void __init efi_init_memory(void)
>          if ( desc->Attribute & EFI_MEMORY_WB )
>              /* nothing */;

This is an implicit 0 case which wants changing to _PAGE_WB.

>          else if ( desc->Attribute & EFI_MEMORY_WT )
> -            prot |= _PAGE_PWT | MAP_SMALL_PAGES;
> +            prot |= _PAGE_WT | MAP_SMALL_PAGES;
>          else if ( desc->Attribute & EFI_MEMORY_WC )
> -            prot |= _PAGE_PAT | MAP_SMALL_PAGES;
> +            prot |= _PAGE_WC | MAP_SMALL_PAGES;
>          else if ( desc->Attribute & (EFI_MEMORY_UC | EFI_MEMORY_UCE) )
> -            prot |= _PAGE_PWT | _PAGE_PCD | MAP_SMALL_PAGES;
> +            prot |= _PAGE_UC | MAP_SMALL_PAGES;
>          else if ( efi_bs_revision >= EFI_REVISION(2, 5) &&
>                    (desc->Attribute & EFI_MEMORY_WP) )
> -            prot |= _PAGE_PAT | _PAGE_PWT | MAP_SMALL_PAGES;
> +            prot |= _PAGE_WP | MAP_SMALL_PAGES;

Unrelated to the transformation. I'm unconvinced about the correctness
of using MAP_SMALL_PAGES here.  There's nothing wrong with large pages
of reduced cache-ability, and the framebuffer is going to live in one of
these regions, probably a WC one...

~Andrew

>          else
>          {
>              printk(XENLOG_ERR "Unknown cachability for MFNs %#lx-%#lx%s\n",
>                     smfn, emfn - 1, efi_map_uc ? ", assuming UC" : "");
>              if ( !efi_map_uc )
>                  continue;
> -            prot |= _PAGE_PWT | _PAGE_PCD | MAP_SMALL_PAGES;
> +            prot |= _PAGE_UC | MAP_SMALL_PAGES;
>          }
>  
>          if ( desc->Attribute & (efi_bs_revision < EFI_REVISION(2, 5)


 


Rackspace

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