Hi Carlo,
Just in case you are waiting on my review before sending a new version.
Given that...
On 22/10/2022 16:51, Carlo Nonato wrote:
> 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.
>
> Commits structure:
> - [1-3] Coloring initialization, cache layout auto-probing and coloring
> data for domains.
> - [4-5] xl and Device Tree support for coloring.
> - [6] New page allocator for domain memory that implement the cache
> coloring mechanism.
> - [7-9] Coloring support for Xen.
>
> Global changes in v3:
> - fixed a compilation error because of a forgotten "\"
> - replaced some #ifdef with if ( IS_ENABLED )
> - other minor changes (docs, typos, variable types, style, etc.)
> - better acknowledged Luca Miccio as the original author
> - removed #8 since the bootmodule address and size can be replaced without
> the need of this particular revert
> - removed #9 since it wasn't a clean revert and thanks to Julien things can
> be done in a smarter way sticking with map_pages_to_xen() (see new #9)
>
> Open points:
> - The allocator proposed in #6 works only with order-0 pages and inserts
> them in a sorted list using a linear search. This behavior can be slow if
> large amount of memory is given to it, so the user is warned in the
> documentation for that.
> In a following patch, that I'm going to send separately, a simple buddy
> allocator that indexes pages by color is presented. It can serve higher
> order pages and doesn't need the linear search. Unfortunately, it has
> some flaws that I will discuss there.
> - I will address the latest v2 comments from Julien in v4
... some my comments have not been handled, I am not planning to review
this version. If there is small parts you want me to have a look before
you send a new version.
Cheers,
--
Julien Grall