[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v9 01/13] xen/common: add cache coloring common code
Hi Jan, On Thu, Nov 7, 2024 at 10:05 AM Jan Beulich <jbeulich@xxxxxxxx> wrote: > > On 06.11.2024 17:09, Carlo Nonato wrote: > > On Tue, Nov 5, 2024 at 4:46 PM Jan Beulich <jbeulich@xxxxxxxx> wrote: > >> On 25.10.2024 11:50, Carlo Nonato wrote: > >>> --- a/xen/common/Kconfig > >>> +++ b/xen/common/Kconfig > >>> @@ -71,6 +71,9 @@ config HAS_IOPORTS > >>> config HAS_KEXEC > >>> bool > >>> > >>> +config HAS_LLC_COLORING > >>> + bool > >>> + > >>> config HAS_PIRQ > >>> bool > >>> > >>> @@ -516,4 +519,23 @@ config TRACEBUFFER > >>> to be collected at run time for debugging or performance analysis. > >>> Memory and execution overhead when not active is minimal. > >>> > >>> +config LLC_COLORING > >>> + bool "Last Level Cache (LLC) coloring" if EXPERT > >>> + depends on HAS_LLC_COLORING > >>> + depends on !NUMA > >> > >> Instead of this dependency, wouldn't it be more natural to suppress the > >> setting of HAS_LLC_COLORING by an arch when NUMA is on? > > > > So moving the "depends on" in the HAS_LLC_COLORING definition? Yes I believe > > it would be better. > > No. Putting it on an option without prompt will, iirc, only cause a warning > when violated, but will otherwise have no real effect. The "select" of > HAS_LLC_COLORING wants to become dependent upon !NUMA, until that combination > was made work. Ok, got it. > >>> --- /dev/null > >>> +++ b/xen/common/llc-coloring.c > >>> @@ -0,0 +1,111 @@ > >>> +/* SPDX-License-Identifier: GPL-2.0-only */ > >>> +/* > >>> + * Last Level Cache (LLC) coloring common code > >>> + * > >>> + * Copyright (C) 2022 Xilinx Inc. > >> > >> Does this need updating (if it can't be dropped)? > > > > I don't remember what's the current policy for these copyright lines. > > Do you still use them? If they are used, should they reflect the history > > of the revisions of the patch series? I mean, in v1 it was "2019 Xilinx > > Inc." > > 2023-2024 would then be MinervaSys. > > I don't know what the policy is either. I think it can be there or it can > be omitted. Yet if it's there, I think it wants to be accurate at least at > the time a new file is being added. (These lines usually aren't updated > when later changes are made to the files.) Ok, makes sense. > >>> +void __init llc_coloring_init(void) > >>> +{ > >>> + unsigned int way_size; > >>> + > >>> + if ( llc_size && llc_nr_ways ) > >>> + { > >>> + llc_coloring_enabled = true; > >>> + way_size = llc_size / llc_nr_ways; > >>> + } > >>> + else if ( !llc_coloring_enabled ) > >>> + return; > >>> + else > >>> + { > >>> + way_size = get_llc_way_size(); > >>> + if ( !way_size ) > >>> + panic("LLC probing failed and 'llc-size' or 'llc-nr-ways' > >>> missing\n"); > >>> + } > >>> + > >>> + /* > >>> + * The maximum number of colors must be a power of 2 in order to > >>> correctly > >>> + * map them to bits of an address. > >>> + */ > >>> + max_nr_colors = way_size >> PAGE_SHIFT; > >> > >> This discards low bits of the quotient calculated above, bearing a certain > >> risk that ... > >> > >>> + if ( max_nr_colors & (max_nr_colors - 1) ) > >>> + panic("Number of LLC colors (%u) isn't a power of 2\n", > >>> max_nr_colors); > >> > >> ... this panic() wrongly doesn't trigger. > > > > Yes, but I don't care if way_size isn't a power of 2. > > Well, you may not care, but imo the resulting configuration ought to reflect > what was requested on the command line (maybe unless e.g. documentation > explicitly says otherwise). If way_size has low bits set, that wouldn't be > the case. Ok. > Jan - Carlo
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |