[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 03/11] xen/arm: add Dom0 cache coloring support
On 12/01/2024 10:24, Michal Orzel wrote: > > > Hi Carlo, > > On 23/01/2023 16:47, Carlo Nonato wrote: >> >> >> From: Luca Miccio <lucmiccio@xxxxxxxxx> >> >> This commit allows the user to set the cache coloring configuration for >> Dom0 via a command line parameter. >> Since cache coloring and static memory are incompatible, direct mapping >> Dom0 isn't possible when coloring is enabled. >> >> Here is also introduced a common configuration syntax for cache colors. >> >> Signed-off-by: Luca Miccio <lucmiccio@xxxxxxxxx> >> Signed-off-by: Marco Solieri <marco.solieri@xxxxxxxxxxxxxxx> >> Signed-off-by: Carlo Nonato <carlo.nonato@xxxxxxxxxxxxxxx> >> --- >> v4: >> - dom0 colors are dynamically allocated as for any other domain >> (colors are duplicated in dom0_colors and in the new array, but logic >> is simpler) >> --- >> docs/misc/arm/cache-coloring.rst | 32 ++++++++++++++++++++++--- >> xen/arch/arm/domain_build.c | 17 +++++++++++-- >> xen/arch/arm/include/asm/llc_coloring.h | 4 ++++ >> xen/arch/arm/llc_coloring.c | 14 +++++++++++ >> 4 files changed, 62 insertions(+), 5 deletions(-) >> >> diff --git a/docs/misc/arm/cache-coloring.rst >> b/docs/misc/arm/cache-coloring.rst >> index 0244d2f606..c2e0e87426 100644 >> --- a/docs/misc/arm/cache-coloring.rst >> +++ b/docs/misc/arm/cache-coloring.rst >> @@ -83,12 +83,38 @@ manually set the way size it's left for the user to >> overcome failing situations >> or for debugging/testing purposes. See `Coloring parameters and domain >> configurations`_ section for more information on that. >> >> +Colors selection format >> +*********************** >> + >> +Regardless of the memory pool that has to be colored (Xen, Dom0/DomUs), >> +the color selection can be expressed using the same syntax. In particular a >> +comma-separated list of colors or ranges of colors is used. >> +Ranges are hyphen-separated intervals (such as `0-4`) and are inclusive on >> both >> +sides. >> + >> +Note that: >> + - no spaces are allowed between values. >> + - no overlapping ranges or duplicated colors are allowed. >> + - values must be written in ascending order. >> + >> +Examples: >> + >> ++---------------------+-----------------------------------+ >> +|**Configuration** |**Actual selection** | >> ++---------------------+-----------------------------------+ >> +| 1-2,5-8 | [1, 2, 5, 6, 7, 8] | >> ++---------------------+-----------------------------------+ >> +| 4-8,10,11,12 | [4, 5, 6, 7, 8, 10, 11, 12] | >> ++---------------------+-----------------------------------+ >> +| 0 | [0] | >> ++---------------------+-----------------------------------+ >> + >> Coloring parameters and domain configurations >> ********************************************* >> >> -LLC way size (as previously discussed) can be set using the appropriate >> command >> -line parameter. See the relevant documentation in >> -"docs/misc/xen-command-line.pandoc". >> +LLC way size (as previously discussed) and Dom0 colors can be set using the >> +appropriate command line parameters. See the relevant documentation >> +in "docs/misc/xen-command-line.pandoc". >> >> **Note:** If no color configuration is provided for a domain, the default >> one, >> which corresponds to all available colors, is used instead. >> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c >> index f35f4d2456..093d4ad6f6 100644 >> --- a/xen/arch/arm/domain_build.c >> +++ b/xen/arch/arm/domain_build.c >> @@ -2,6 +2,7 @@ >> #include <xen/init.h> >> #include <xen/compile.h> >> #include <xen/lib.h> >> +#include <xen/llc_coloring.h> >> #include <xen/mm.h> >> #include <xen/param.h> >> #include <xen/domain_page.h> >> @@ -4014,7 +4015,10 @@ static int __init construct_dom0(struct domain *d) >> /* type must be set before allocate_memory */ >> d->arch.type = kinfo.type; >> #endif >> - allocate_memory_11(d, &kinfo); >> + if ( is_domain_llc_colored(d) ) >> + allocate_memory(d, &kinfo); > While doing some checks, I realized that the issue from previous series is > still present. > Given that dom0 is hwdom, how are you going to prevent conflicts between > allocated RAM and HW resources > that are to be mapped to dom0? Sorry. I answered to the wrong revision :) Anyway, the remark still applies to v5. ~Michal
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |