All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v11 00/12] Arm cache coloring
@ 2024-12-02 16:59 Carlo Nonato
  2024-12-02 16:59 ` [PATCH v11 01/12] xen/common: add cache coloring common code Carlo Nonato
                   ` (11 more replies)
  0 siblings, 12 replies; 40+ messages in thread
From: Carlo Nonato @ 2024-12-02 16:59 UTC (permalink / raw)
  To: xen-devel
  Cc: andrea.bastoni, marco.solieri, Carlo Nonato, Andrew Cooper,
	Jan Beulich, Julien Grall, Stefano Stabellini, Bertrand Marquis,
	Michal Orzel, Volodymyr Babchuk, Anthony PERARD, Nick Rosbrook,
	George Dunlap, Juergen Gross

Shared caches in multi-core CPU architectures represent a problem for
predictability of memory access latency. This jeopardizes applicability
of many Arm platform in real-time critical and mixed-criticality
scenarios. We introduce support for cache partitioning with page
coloring, a transparent software technique that enables isolation
between domains and Xen, and thus avoids cache interference.

When creating a domain, a simple syntax (e.g. `0-3` or `4-11`) allows
the user to define assignments of cache partitions ids, called colors,
where assigning different colors guarantees no mutual eviction on cache
will ever happen. This instructs the Xen memory allocator to provide
the i-th color assignee only with pages that maps to color i, i.e. that
are indexed in the i-th cache partition.

The proposed implementation supports the dom0less feature.
The proposed implementation doesn't support the static-mem feature.
The solution has been tested in several scenarios, including Xilinx Zynq
MPSoCs.

Carlo Nonato (11):
  xen/common: add cache coloring common code
  xen/arm: add initial support for LLC coloring on arm64
  xen/arm: permit non direct-mapped Dom0 construction
  xen/arm: add Dom0 cache coloring support
  xen: extend domctl interface for cache coloring
  tools: add support for cache coloring configuration
  xen/arm: add support for cache coloring configuration via device-tree
  xen/page_alloc: introduce preserved page flags macro
  xen: add cache coloring allocator for domains
  xen/arm: make consider_modules() available for xen relocation
  xen/arm: add cache coloring support for Xen image

Luca Miccio (1):
  xen/arm: add Xen cache colors command line parameter

 SUPPORT.md                              |   7 +
 docs/index.rst                          |   1 +
 docs/man/xl.cfg.5.pod.in                |   6 +
 docs/misc/arm/device-tree/booting.txt   |   5 +
 docs/misc/cache-coloring.rst            | 248 +++++++++++++++
 docs/misc/xen-command-line.pandoc       |  70 +++++
 tools/golang/xenlight/helpers.gen.go    |  16 +
 tools/golang/xenlight/types.gen.go      |   1 +
 tools/include/libxl.h                   |   5 +
 tools/include/xenctrl.h                 |   9 +
 tools/libs/ctrl/xc_domain.c             |  34 +++
 tools/libs/light/libxl_create.c         |  18 ++
 tools/libs/light/libxl_types.idl        |   1 +
 tools/xl/xl_parse.c                     |  38 ++-
 xen/arch/arm/Kconfig                    |   1 +
 xen/arch/arm/Makefile                   |   1 +
 xen/arch/arm/alternative.c              |  30 +-
 xen/arch/arm/arm32/mmu/mm.c             |  95 +-----
 xen/arch/arm/arm64/mmu/head.S           |  58 +++-
 xen/arch/arm/arm64/mmu/mm.c             |  28 +-
 xen/arch/arm/dom0less-build.c           |  60 +---
 xen/arch/arm/domain_build.c             | 107 ++++++-
 xen/arch/arm/include/asm/domain_build.h |   1 +
 xen/arch/arm/include/asm/mm.h           |   5 +
 xen/arch/arm/include/asm/mmu/layout.h   |   3 +
 xen/arch/arm/include/asm/processor.h    |  15 +
 xen/arch/arm/include/asm/setup.h        |   3 +
 xen/arch/arm/llc-coloring.c             | 142 +++++++++
 xen/arch/arm/mmu/setup.c                | 193 +++++++++++-
 xen/arch/arm/setup.c                    |  13 +-
 xen/common/Kconfig                      |  29 ++
 xen/common/Makefile                     |   1 +
 xen/common/domain.c                     |   3 +
 xen/common/domctl.c                     |  10 +
 xen/common/keyhandler.c                 |   3 +
 xen/common/llc-coloring.c               | 388 ++++++++++++++++++++++++
 xen/common/page_alloc.c                 | 209 ++++++++++++-
 xen/include/public/domctl.h             |   9 +
 xen/include/xen/llc-coloring.h          |  64 ++++
 xen/include/xen/sched.h                 |   5 +
 xen/include/xen/xmalloc.h               |  12 +
 41 files changed, 1775 insertions(+), 172 deletions(-)
 create mode 100644 docs/misc/cache-coloring.rst
 create mode 100644 xen/arch/arm/llc-coloring.c
 create mode 100644 xen/common/llc-coloring.c
 create mode 100644 xen/include/xen/llc-coloring.h

-- 
2.43.0



^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2024-12-13 12:46 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-02 16:59 [PATCH v11 00/12] Arm cache coloring Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 01/12] xen/common: add cache coloring common code Carlo Nonato
2024-12-03  9:55   ` Michal Orzel
2024-12-05  8:00     ` Michal Orzel
2024-12-09 13:35     ` Jan Beulich
2024-12-02 16:59 ` [PATCH v11 02/12] xen/arm: add initial support for LLC coloring on arm64 Carlo Nonato
2024-12-05  8:04   ` Michal Orzel
2024-12-02 16:59 ` [PATCH v11 03/12] xen/arm: permit non direct-mapped Dom0 construction Carlo Nonato
2024-12-05  9:40   ` Michal Orzel
2024-12-06 18:37     ` Julien Grall
2024-12-07 15:04       ` Michal Orzel
2024-12-09  9:47         ` Carlo Nonato
2024-12-09 19:17         ` Julien Grall
2024-12-12 17:48           ` Carlo Nonato
2024-12-12 18:22             ` Andrea Bastoni
2024-12-13  9:45               ` Michal Orzel
2024-12-13 10:26                 ` Carlo Nonato
2024-12-13 10:56                   ` Michal Orzel
2024-12-13 11:30                     ` Carlo Nonato
2024-12-13 11:33                       ` Carlo Nonato
2024-12-13 11:47                         ` Michal Orzel
2024-12-13 12:45                           ` Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 04/12] xen/arm: add Dom0 cache coloring support Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 05/12] xen: extend domctl interface for cache coloring Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 06/12] tools: add support for cache coloring configuration Carlo Nonato
2024-12-04 14:07   ` Anthony PERARD
2024-12-02 16:59 ` [PATCH v11 07/12] xen/arm: add support for cache coloring configuration via device-tree Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 08/12] xen/page_alloc: introduce preserved page flags macro Carlo Nonato
2024-12-02 17:33   ` Carlo Nonato
2024-12-03  8:54     ` Jan Beulich
2024-12-02 16:59 ` [PATCH v11 09/12] xen: add cache coloring allocator for domains Carlo Nonato
2024-12-09 13:41   ` Jan Beulich
2024-12-02 16:59 ` [PATCH v11 10/12] xen/arm: add Xen cache colors command line parameter Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 11/12] xen/arm: make consider_modules() available for xen relocation Carlo Nonato
2024-12-02 16:59 ` [PATCH v11 12/12] xen/arm: add cache coloring support for Xen image Carlo Nonato
2024-12-02 21:44   ` Julien Grall
2024-12-03 10:08     ` Carlo Nonato
2024-12-03 10:36       ` Julien Grall
2024-12-03 11:37         ` Carlo Nonato
2024-12-04 11:18           ` Julien Grall

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.