Re: [PATCH] x86/numa_emulation: Fix uniform size build failure

From: Ingo Molnar
Date: Thu Jul 05 2018 - 04:24:43 EST



* Dan Williams <dan.j.williams@xxxxxxxxx> wrote:

> The calculation of a uniform numa-node size attempted to perform
> division with a 64-bit diviser leading to the following failure on
> 32-bit:
>
> arch/x86/mm/numa_emulation.o: In function `split_nodes_size_interleave_uniform':
> arch/x86/mm/numa_emulation.c:239: undefined reference to `__udivdi3'
>
> Convert the implementation to do the division in terms of pages and then
> shift the result back to an absolute physical address.
>
> Fixes: 93e738834fcc ("x86/numa_emulation: Introduce uniform split capability")
> Cc: David Rientjes <rientjes@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Wei Yang <richard.weiyang@xxxxxxxxx>
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

I'm still getting this link failure on 32-bit kernels:

arch/x86/mm/numa_emulation.o: In function `split_nodes_size_interleave_uniform.constprop.1':
numa_emulation.c:(.init.text+0x669): undefined reference to `__udivdi3'
Makefile:1005: recipe for target 'vmlinux' failed

config attached.

These numa_emulation changes are a bit of a trainwreck - I'm removing both
num_emulation commits from -tip for now, could you please resubmit a fixed/tested
combo version?

Thanks,

Ingo