[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] numa: Set default distance map if needed
From: |
Andrew Jones |
Subject: |
Re: [PATCH 1/2] numa: Set default distance map if needed |
Date: |
Wed, 6 Oct 2021 12:35:29 +0200 |
On Wed, Oct 06, 2021 at 06:22:08PM +0800, Gavin Shan wrote:
> The following option is used to specify the distance map. It's
> possible the option isn't provided by user. In this case, the
> distance map isn't populated and exposed to platform. On the
> other hand, the empty NUMA node, where no memory resides, is
> allowed on ARM64 virt platform. For these empty NUMA nodes,
> their corresponding device-tree nodes aren't populated, but
> their NUMA IDs should be included in the "/distance-map"
> device-tree node, so that kernel can probe them properly if
> device-tree is used.
>
> -numa,dist,src=<numa_id>,dst=<numa_id>,val=<distance>
>
> So when user doesn't specify distance map, we need to generate
> the default distance map, where the local and remote distances
> are 10 and 20 separately. This adds an extra parameter to the
> exiting complete_init_numa_distance() to generate the default
> distance map for this case.
>
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> ---
> hw/core/numa.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/hw/core/numa.c b/hw/core/numa.c
> index 510d096a88..fdb3a4aeca 100644
> --- a/hw/core/numa.c
> +++ b/hw/core/numa.c
> @@ -594,7 +594,7 @@ static void validate_numa_distance(MachineState *ms)
> }
> }
>
> -static void complete_init_numa_distance(MachineState *ms)
> +static void complete_init_numa_distance(MachineState *ms, bool is_default)
> {
> int src, dst;
> NodeInfo *numa_info = ms->numa_state->nodes;
> @@ -609,6 +609,8 @@ static void complete_init_numa_distance(MachineState *ms)
> if (numa_info[src].distance[dst] == 0) {
> if (src == dst) {
> numa_info[src].distance[dst] = NUMA_DISTANCE_MIN;
> + } else if (is_default) {
> + numa_info[src].distance[dst] = NUMA_DISTANCE_DEFAULT;
> } else {
> numa_info[src].distance[dst] =
> numa_info[dst].distance[src];
> }
> @@ -716,13 +718,20 @@ void numa_complete_configuration(MachineState *ms)
> * A->B != distance B->A, then that means the distance table is
> * asymmetric. In this case, the distances for both directions
> * of all node pairs are required.
> + *
> + * The default node pair distances, which are 10 and 20 for the
> + * local and remote nodes separatly, are provided if user doesn't
> + * specify any node pair distances.
> */
> if (ms->numa_state->have_numa_distance) {
> /* Validate enough NUMA distance information was provided. */
> validate_numa_distance(ms);
>
> /* Validation succeeded, now fill in any missing distances. */
> - complete_init_numa_distance(ms);
> + complete_init_numa_distance(ms, false);
> + } else {
> + complete_init_numa_distance(ms, true);
> + ms->numa_state->have_numa_distance = true;
> }
> }
> }
> --
> 2.23.0
>
With this patch we'll always generate a distance map when there's a numa
config now. Is there any reason a user would not want to do that? I.e.
should we still give the user the choice of presenting a distance map?
Also, does the addition of a distance map in DTs for compat machine types
matter?
Otherwise patch looks good to me.
Thanks,
drew
- [PATCH 0/2] hw/arm/virt: Fix qemu booting failure on device-tree, Gavin Shan, 2021/10/06
- [PATCH 2/2] hw/arm/virt: Don't create device-tree node for empty NUMA node, Gavin Shan, 2021/10/06
- [PATCH 1/2] numa: Set default distance map if needed, Gavin Shan, 2021/10/06
- Re: [PATCH 1/2] numa: Set default distance map if needed,
Andrew Jones <=
- Re: [PATCH 1/2] numa: Set default distance map if needed, Gavin Shan, 2021/10/06
- Re: [PATCH 1/2] numa: Set default distance map if needed, Andrew Jones, 2021/10/06
- Re: [PATCH 1/2] numa: Set default distance map if needed, Gavin Shan, 2021/10/07
- Re: [PATCH 1/2] numa: Set default distance map if needed, Andrew Jones, 2021/10/08
- Re: [PATCH 1/2] numa: Set default distance map if needed, Gavin Shan, 2021/10/12
Re: [PATCH 1/2] numa: Set default distance map if needed, Igor Mammedov, 2021/10/12