lkml.org 
[lkml]   [2023]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip: sched/core] x86/sched/itmt: Give all SMT siblings of a core the same priority
    The following commit has been merged into the sched/core branch of tip:

    Commit-ID: 046a5a95c3b0425cfe79e43021d8ee90c1c4f8c9
    Gitweb: https://git.kernel.org/tip/046a5a95c3b0425cfe79e43021d8ee90c1c4f8c9
    Author: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
    AuthorDate: Thu, 06 Apr 2023 13:31:47 -07:00
    Committer: Peter Zijlstra <peterz@infradead.org>
    CommitterDate: Mon, 08 May 2023 10:58:38 +02:00

    x86/sched/itmt: Give all SMT siblings of a core the same priority

    X86 does not have the SD_ASYM_PACKING flag in the SMT domain. The scheduler
    knows how to handle SMT and non-SMT cores of different priority. There is
    no reason for SMT siblings of a core to have different priorities.

    Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Len Brown <len.brown@intel.com>
    Tested-by: Zhang Rui <rui.zhang@intel.com>
    Link: https://lore.kernel.org/r/20230406203148.19182-12-ricardo.neri-calderon@linux.intel.com
    ---
    arch/x86/kernel/itmt.c | 23 +++++------------------
    1 file changed, 5 insertions(+), 18 deletions(-)

    diff --git a/arch/x86/kernel/itmt.c b/arch/x86/kernel/itmt.c
    index 670eb08..ee4fe8c 100644
    --- a/arch/x86/kernel/itmt.c
    +++ b/arch/x86/kernel/itmt.c
    @@ -165,32 +165,19 @@ int arch_asym_cpu_priority(int cpu)

    /**
    * sched_set_itmt_core_prio() - Set CPU priority based on ITMT
    - * @prio: Priority of cpu core
    - * @core_cpu: The cpu number associated with the core
    + * @prio: Priority of @cpu
    + * @cpu: The CPU number
    *
    * The pstate driver will find out the max boost frequency
    * and call this function to set a priority proportional
    - * to the max boost frequency. CPU with higher boost
    + * to the max boost frequency. CPUs with higher boost
    * frequency will receive higher priority.
    *
    * No need to rebuild sched domain after updating
    * the CPU priorities. The sched domains have no
    * dependency on CPU priorities.
    */
    -void sched_set_itmt_core_prio(int prio, int core_cpu)
    +void sched_set_itmt_core_prio(int prio, int cpu)
    {
    - int cpu, i = 1;
    -
    - for_each_cpu(cpu, topology_sibling_cpumask(core_cpu)) {
    - int smt_prio;
    -
    - /*
    - * Ensure that the siblings are moved to the end
    - * of the priority chain and only used when
    - * all other high priority cpus are out of capacity.
    - */
    - smt_prio = prio * smp_num_siblings / (i * i);
    - per_cpu(sched_core_priority, cpu) = smt_prio;
    - i++;
    - }
    + per_cpu(sched_core_priority, cpu) = prio;
    }
    \
     
     \ /
      Last update: 2023-05-10 15:50    [W:8.481 / U:0.304 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site