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

[PATCH 3/5] x86/mm: PGC_shadowed_pt is used by shadow code only


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Tue, 6 Dec 2022 14:54:35 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.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=Et5DDpshzeK44IkvBaMK0477F0uL2qhRcpoZlCJ7Gkc=; b=NQw1M8FPCoahntbsBKPfZafUBCqe1cew5aEj7EJx+Nyduz3PiT0g73/7yzQa99bKtxJvWGUcq39oGTJLzP8nPDm3QuuqgnFT+L7uS85JOPfejDgLZ1bRlx5HC7kd9Q+SYfgvARmi8aZgPSnnS0Y+3ITgCSnHVooTOnuxGSNYKt3ckLmKetAgT4HJ5i1UBhD4+nHUzaoT4ebHA8CulxNHcgicioWm2MvvXnTxNSEvdTA4Ck3sKeF2xnsUJ3TzHO5zV7r6lvgwIXpqesbspbGGXgePjHetTl0MSRdDbZFw9+G1IH2uynAQPss+HiopMic5SB7C3JjeGZiPPa2D8v2O/Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lXFtEmNDgQGGnQJmLMj5JXYE1ZDmBbBALsIBXP3miDAJ7OkOh+bIiXgfswwj5tksnhZET3q169nMAaP5/uexGUfymYvAYulS3/MTbyeabNLs5Ay/xedfMdLBfyiHPzgd867l6grMwY460gEmLEOnniM8Yk4J5WtZxHEfdJSPdodLjyebZF7ldKxQgOw285YAIFt2DWLsL5QI1RSw0BB4ihn5XknD4G57dUi+XEk37eEBXaLGn8OrXA+ar1HEhUSezvEoI3Dxp5Ze8AFGxKAyoRlxoHTm9LwKT32hHToantLBJQeVbds729InM/hyU9eXo4dylw6LU8nWsB+2rTkVUw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>
  • Delivery-date: Tue, 06 Dec 2022 13:54:42 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

By defining the constant to zero when !SHADOW_PAGING we give compilers
the chance to eliminate a little more dead code elsewhere in the tree.
Plus, as a minor benefit, the general reference count can be one bit
wider. (To simplify things, have PGC_shadowed_pt change places with
PGC_extra.)

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -70,9 +70,9 @@
  /* Page is Xen heap? */
 #define _PGC_xen_heap     PG_shift(2)
 #define PGC_xen_heap      PG_mask(1, 2)
- /* Set when a page table page has been shadowed. */
-#define _PGC_shadowed_pt  PG_shift(3)
-#define PGC_shadowed_pt   PG_mask(1, 3)
+ /* Page is not reference counted */
+#define _PGC_extra        PG_shift(3)
+#define PGC_extra         PG_mask(1, 3)
  /* Page is broken? */
 #define _PGC_broken       PG_shift(4)
 #define PGC_broken        PG_mask(1, 4)
@@ -83,12 +83,20 @@
 #define PGC_state_offlined  PG_mask(2, 6)
 #define PGC_state_free      PG_mask(3, 6)
 #define page_state_is(pg, st) (((pg)->count_info&PGC_state) == PGC_state_##st)
-/* Page is not reference counted */
-#define _PGC_extra        PG_shift(7)
-#define PGC_extra         PG_mask(1, 7)
+#ifdef CONFIG_SHADOW_PAGING
+ /* Set when a page table page has been shadowed. */
+#define _PGC_shadowed_pt  PG_shift(7)
+#define PGC_shadowed_pt   PG_mask(1, 7)
+#else
+#define PGC_shadowed_pt   0
+#endif
 
 /* Count of references to this frame. */
+#if PGC_shadowed_pt
 #define PGC_count_width   PG_shift(7)
+#else
+#define PGC_count_width   PG_shift(6)
+#endif
 #define PGC_count_mask    ((1UL<<PGC_count_width)-1)
 
 /*




 


Rackspace

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