Message ID | 20221022155120.7000-1-carlo.nonato@minervasys.tech (mailing list archive) |
---|---|
Headers | show |
Series | Arm cache coloring | expand |
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,