[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 02/14] hw/core/machine: Introduce CPU cluster topology sup
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v5 02/14] hw/core/machine: Introduce CPU cluster topology support |
Date: |
Wed, 29 Dec 2021 16:44:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 |
On 12/29/21 14:04, wangyanan (Y) wrote:
>
> On 2021/12/29 18:44, Philippe Mathieu-Daudé wrote:
>> On 12/29/21 04:48, wangyanan (Y) wrote:
>>> Hi Philippe,
>>> Thanks for your review.
>>>
>>> On 2021/12/29 3:17, Philippe Mathieu-Daudé wrote:
>>>> Hi,
>>>>
>>>> On 12/28/21 10:22, Yanan Wang wrote:
>>>>> The new Cluster-Aware Scheduling support has landed in Linux 5.16,
>>>>> which has been proved to benefit the scheduling performance (e.g.
>>>>> load balance and wake_affine strategy) on both x86_64 and AArch64.
>>>>>
>>>>> So now in Linux 5.16 we have four-level arch-neutral CPU topology
>>>>> definition like below and a new scheduler level for clusters.
>>>>> struct cpu_topology {
>>>>> int thread_id;
>>>>> int core_id;
>>>>> int cluster_id;
>>>>> int package_id;
>>>>> int llc_id;
>>>>> cpumask_t thread_sibling;
>>>>> cpumask_t core_sibling;
>>>>> cpumask_t cluster_sibling;
>>>>> cpumask_t llc_sibling;
>>>>> }
>>>>>
>>>>> A cluster generally means a group of CPU cores which share L2 cache
>>>>> or other mid-level resources, and it is the shared resources that
>>>>> is used to improve scheduler's behavior. From the point of view of
>>>>> the size range, it's between CPU die and CPU core. For example, on
>>>>> some ARM64 Kunpeng servers, we have 6 clusters in each NUMA node,
>>>>> and 4 CPU cores in each cluster. The 4 CPU cores share a separate
>>>>> L2 cache and a L3 cache tag, which brings cache affinity advantage.
>>>>>
>>>>> In virtualization, on the Hosts which have pClusters, if we can
>>>> Maybe [*] -> reference to pClusters?
>>> Hm, I'm not sure what kind of reference is appropriate here.
>> So I guess the confusion comes from a simple typo =)
> I tried to mean "physical clusters" on host by pClusters, on the contrary
> to "virtual clusters" on guest. But obviously it brings confusion.
OK, I got confused because you don't use "vClusters".
>> Is it OK if I replace "pClusters" by "Clusters"?
> Sure, it's clearer to just use "clusters", please do that.
OK.
- Re: [PATCH v5 03/14] hw/core/machine: Wrap target specific parameters together, (continued)
[PATCH v5 06/14] tests/unit/test-smp-parse: Keep default MIN/MAX CPUs in machine_base_class_init, Yanan Wang, 2021/12/28
[PATCH v5 05/14] tests/unit/test-smp-parse: No need to explicitly zero MachineClass members, Yanan Wang, 2021/12/28
[PATCH v5 08/14] hw/arm/virt: Support clusters on ARM virt machines, Yanan Wang, 2021/12/28
[PATCH v5 07/14] MAINTAINERS: Self-recommended as reviewer of "Machine core", Yanan Wang, 2021/12/28
[PATCH v5 09/14] hw/arm/virt: Support cluster level in DT cpu-map, Yanan Wang, 2021/12/28
[PATCH v5 11/14] hw/arm/virt-acpi-build: Make an ARM specific PPTT generator, Yanan Wang, 2021/12/28
[PATCH v5 12/14] tests/acpi/bios-tables-test: Allow changes to virt/PPTT file, Yanan Wang, 2021/12/28