From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"George Dunlap" <george.dunlap@citrix.com>,
"Jan Beulich" <jbeulich@suse.com>,
"Julien Grall" <julien@xen.org>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Wei Liu" <wl@xen.org>,
"Bertrand Marquis" <bertrand.marquis@arm.com>,
"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
"Roger Pau Monné" <roger.pau@citrix.com>
Subject: [PATCH 0/8] Make PDX compression optional
Date: Mon, 17 Jul 2023 17:03:10 +0100 [thread overview]
Message-ID: <20230717160318.2113-1-alejandro.vallejo@cloud.com> (raw)
Currently there's a CONFIG_HAS_PDX Kconfig option, but it's impossible to
disable it because the whole codebase performs unconditional
compression/decompression operations on addresses. This has the
unfortunate side effect that systems without a need for compression still
have to pay the performance impact of juggling bits on every pfn<->pdx
conversion (this requires reading several global variables). This series
attempts to:
* Leave the state of pdx and pdx compression documented
* Factor out compression so it _can_ be removed through Kconfig
* Make it so compression is disabled on x86 and enabled on both Aarch32
and Aarch64 by default.
Series summary:
Patch 1 documents the current general understanding of the pdx concept and
pdx compression in particular
Patch 2 makes a clarification in ARM code to explain some discrepancies
between the concept of "directmap" in arm32 and arm64 relevant to
this series (i.e: why this series doesn't touch arm32 in directmap
accesses).
Patch 3 Marks the pdx compression globals as ro_after_init
Patch 4 Gets rid of the current CONFIG_HAS_PDX option because (a) the name
is misleading (b) cannot be removed in its current form.
Patch 5 Moves hard-coded compression-related logic to helper functions
Patch 6 Refactors all instances of regions being validated for pdx
compression conformance so it's done through a helper
Patch 7 Non-functional reorder in order to simplify the patch 8 diff
Patch 8 Adds new Kconfig option to compile out PDX compression
Alejandro Vallejo (8):
mm/pdx: Add comments throughout the codebase for pdx
arm/mm: Document the differences between arm32 and arm64 directmaps
pdx: Mark pdx hole description globals readonly after boot
build: Remove CONFIG_HAS_PDX
mm: Factor out the pdx compression logic in ma/va converters
mm/pdx: Standardize region validation wrt pdx compression
pdx: Reorder pdx.[ch]
pdx: Add CONFIG_HAS_PDX_COMPRESSION as a Kconfig option
xen/arch/arm/Kconfig | 1 -
xen/arch/arm/include/asm/mm.h | 30 ++-
xen/arch/x86/Kconfig | 1 -
xen/arch/x86/domain.c | 19 +-
xen/arch/x86/include/asm/x86_64/page.h | 28 ++-
xen/arch/x86/x86_64/mm.c | 2 +-
xen/common/Kconfig | 13 +-
xen/common/Makefile | 2 +-
xen/common/efi/boot.c | 6 +-
xen/common/pdx.c | 120 +++++++++---
xen/include/xen/mm.h | 11 ++
xen/include/xen/pdx.h | 241 +++++++++++++++++++++++--
12 files changed, 405 insertions(+), 69 deletions(-)
--
2.34.1
next reply other threads:[~2023-07-17 16:03 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-17 16:03 Alejandro Vallejo [this message]
2023-07-17 16:03 ` [PATCH 1/8] mm/pdx: Add comments throughout the codebase for pdx Alejandro Vallejo
2023-07-18 9:14 ` Jan Beulich
2023-07-17 16:03 ` [PATCH 2/8] arm/mm: Document the differences between arm32 and arm64 directmaps Alejandro Vallejo
2023-07-20 20:05 ` Julien Grall
2023-07-21 15:09 ` Alejandro Vallejo
2023-07-21 17:51 ` Julien Grall
2023-07-17 16:03 ` [PATCH 3/8] pdx: Mark pdx hole description globals readonly after boot Alejandro Vallejo
2023-07-18 9:14 ` Jan Beulich
2023-07-17 16:03 ` [PATCH 4/8] build: Remove CONFIG_HAS_PDX Alejandro Vallejo
2023-07-18 9:19 ` Jan Beulich
2023-07-18 9:35 ` Andrew Cooper
2023-07-18 9:38 ` Jan Beulich
2023-07-18 13:35 ` Alejandro Vallejo
2023-07-17 16:03 ` [PATCH 5/8] mm: Factor out the pdx compression logic in ma/va converters Alejandro Vallejo
2023-07-21 16:11 ` Julien Grall
2023-07-17 16:03 ` [PATCH 6/8] mm/pdx: Standardize region validation wrt pdx compression Alejandro Vallejo
2023-07-21 17:05 ` Julien Grall
2023-07-24 12:18 ` Alejandro Vallejo
2023-07-24 18:20 ` Julien Grall
2023-07-25 6:51 ` Jan Beulich
2023-07-25 14:27 ` Julien Grall
2023-07-25 14:34 ` Jan Beulich
2023-07-27 10:14 ` Alejandro Vallejo
2023-07-27 10:19 ` Jan Beulich
2023-07-17 16:03 ` [PATCH 7/8] pdx: Reorder pdx.[ch] Alejandro Vallejo
2023-07-17 16:24 ` Alejandro Vallejo
2023-07-17 16:03 ` [PATCH 8/8] pdx: Add CONFIG_HAS_PDX_COMPRESSION as a Kconfig option Alejandro Vallejo
2023-07-18 9:33 ` [PATCH 0/8] Make PDX compression optional Jan Beulich
2023-07-18 12:58 ` Alejandro Vallejo
2023-07-18 13:06 ` Jan Beulich
2023-07-18 13:40 ` Alejandro Vallejo
2023-07-20 22:00 ` Julien Grall
2023-07-20 22:13 ` Andrew Cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230717160318.2113-1-alejandro.vallejo@cloud.com \
--to=alejandro.vallejo@cloud.com \
--cc=Volodymyr_Babchuk@epam.com \
--cc=andrew.cooper3@citrix.com \
--cc=bertrand.marquis@arm.com \
--cc=george.dunlap@citrix.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.