From: Alejandro Vallejo <alejandro.vallejo@cloud.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: "Alejandro Vallejo" <alejandro.vallejo@cloud.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Julien Grall" <julien@xen.org>,
"Bertrand Marquis" <bertrand.marquis@arm.com>,
"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"George Dunlap" <george.dunlap@citrix.com>,
"Jan Beulich" <jbeulich@suse.com>, "Wei Liu" <wl@xen.org>,
"Roger Pau Monné" <roger.pau@citrix.com>
Subject: [PATCH v2 0/5] Make PDX compression optional
Date: Fri, 28 Jul 2023 08:58:58 +0100 [thread overview]
Message-ID: <20230728075903.7838-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 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 2 Moves hard-coded compression-related logic to helper functions
Patch 3 Refactors all instances of regions being validated for pdx
compression conformance so it's done through a helper
Patch 4 Non-functional reorder in order to simplify the patch 8 diff
Patch 5 Adds new Kconfig option to compile out PDX compression and removes
the old CONFIG_HAS_PDX, as it was non removable
Already committed:
v1/patch 1 documents the current general understanding of the pdx concept and
pdx compression in particular
v1/patch 3 Marks the pdx compression globals as ro_after_init
Alejandro Vallejo (5):
arm/mm: Document the differences between arm32 and arm64 directmaps
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 common Kconfig option
xen/arch/arm/Kconfig | 1 -
xen/arch/arm/include/asm/mm.h | 29 +++++-
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 | 7 +-
xen/common/Kconfig | 13 ++-
xen/common/Makefile | 2 +-
xen/common/efi/boot.c | 13 ++-
xen/common/pdx.c | 75 +++++++++------
xen/include/xen/pdx.h | 126 +++++++++++++++++++------
11 files changed, 218 insertions(+), 96 deletions(-)
--
2.34.1
next reply other threads:[~2023-07-28 7:59 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-28 7:58 Alejandro Vallejo [this message]
2023-07-28 7:58 ` [PATCH v2 1/5] arm/mm: Document the differences between arm32 and arm64 directmaps Alejandro Vallejo
2023-07-28 9:05 ` Julien Grall
2023-08-07 13:45 ` Julien Grall
2023-07-28 7:59 ` [PATCH v2 2/5] mm: Factor out the pdx compression logic in ma/va converters Alejandro Vallejo
2023-07-28 9:07 ` Julien Grall
2023-07-31 15:15 ` Jan Beulich
2023-08-07 16:26 ` Alejandro Vallejo
2023-08-08 6:05 ` Jan Beulich
2023-08-08 7:58 ` Julien Grall
2023-07-28 7:59 ` [PATCH v2 3/5] mm/pdx: Standardize region validation wrt pdx compression Alejandro Vallejo
2023-07-28 16:19 ` Julien Grall
2023-07-31 15:27 ` Jan Beulich
2023-08-07 16:50 ` Alejandro Vallejo
2023-07-28 7:59 ` [PATCH v2 4/5] pdx: Reorder pdx.[ch] Alejandro Vallejo
2023-07-28 16:20 ` Julien Grall
2023-07-28 7:59 ` [PATCH v2 5/5] pdx: Add CONFIG_HAS_PDX_COMPRESSION as a common Kconfig option Alejandro Vallejo
2023-07-28 16:27 ` Julien Grall
2023-07-28 16:36 ` Andrew Cooper
2023-07-28 16:58 ` Andrew Cooper
2023-07-31 8:00 ` Jan Beulich
2023-07-31 17:38 ` Andrew Cooper
2023-08-01 7:57 ` Jan Beulich
2023-08-07 16:06 ` Alejandro Vallejo
2023-08-08 6:17 ` Jan Beulich
2023-07-31 9:09 ` Julien Grall
2023-07-31 15:33 ` Jan Beulich
2023-08-07 17:48 ` Julien Grall
2023-08-08 9:52 ` Alejandro Vallejo
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=20230728075903.7838-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.