# Re: \[PATCH v2 0/4\] powerpc/topology: Introduce llc\_override kernel parameter

- From: Tim Chen \<hidden\>
- Date: 2026-10-23 17:58:43 
- List: linuxppc-dev
- Page: https://ratatoskr.run/linuxppc-dev/2026/10/17795486
- Thread: https://ratatoskr.run/linuxppc-dev/2026/10/17793596/t.md

```text
On Fri, 2026-10-23 at 18:46 +0530, Shrikanth Hegde wrote:
> Provide an option for users to enable cache aware scheduling on powerpc
> via a command line parameter.
> 
> More details of the problem and context is in cover-letter of v1.
> v1: https://lore.kernel.org/all/20261012102037.2477378-1-sshegde@linux.ibm.com/
> 
> v1->v2:
> - Move to kernel parameters from debugfs. This helps to keep
>   llc_id consistent which doesn't change across sched domain
>   rebuilds. (Tim Chen)
> - Update arch_llc_mask to reflect the override (Tim Chen)
> - Limit only to mc, pkg (Srikar Dronamraju)
> 
> Notes:
> 
> - A selftest for the functional validation of cache aware scheduling
>   is a good idea as we discussed in v1. It is a significant change on
>   its own and likely takes time. I am thinking it might be good idea to
>   revisit selftests for scheduler in general. (We have very few).
>   Maybe worth a discussion in coming OSPM. 
> 
> - I am on parental leave. This version is pretty much what I had last week
>   and I haven't gotten any chance to update since. just sending it out.
>   Sorry if I have missed to address any comments.
>   Please expect delays in my response.

Thanks for sending this while on leave, and congratulations!

The updated approach with boot parameters looks good to me.
Some minor points:

1. llc_bytes. As Chen Yu noted, get_effective_llc_bytes() returns 0
   on powerpc because the generic cacheinfo is not populated. With
   NUMA balancing on and the default llc_aggr_tolerance, any process
   with a footprint then fails exceed_llc_capacity(), so cache aware
   scheduling still does not engage. 

2. Bisection. Patch 2 moves SD_SHARE_LLC to MC/PKG, but
   arch_llc_mask() only follows in patch 3, so a kernel at patch 2
   booted with llc_override=mc has sd_llc at MC with per-L2 llc ids,
   causing mismatch. It may be better to squash 2 and 3.

3. llc_override is only written at boot. Making it
   
        static int llc_override __ro_after_init;

   and then you don't have to worry about READ_ONCE and WRITE_ONCE
   to it as Chen Yu pointed out.

Tim

> 
> Shrikanth Hegde (4):
>   powerpc/topology: Introduce llc_override kernel parameter
>   powerpc/topology: Update mc/pkg flags based on llc_override
>   powerpc/topology: update arch_llc_mask based llc_override
>   Documentation/powerpc: Add details about llc_override
> 
>  .../admin-guide/kernel-parameters.txt         | 15 ++++
>  arch/powerpc/include/asm/topology.h           |  8 +--
>  arch/powerpc/kernel/smp.c                     | 69 +++++++++++++++++--
>  3 files changed, 81 insertions(+), 11 deletions(-)

```
