Re: build failure of next-20220817 for amdgpu due to 7bc913085765 ("drm/amdkfd: Try to schedule bottom half on same core")

From: Felix Kuehling
Date: Fri Aug 19 2022 - 14:13:42 EST


On 2022-08-18 15:34, Randy Dunlap wrote:
Hi--

On 8/18/22 12:15, Sudip Mukherjee wrote:
On Thu, Aug 18, 2022 at 4:10 PM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:

On 8/18/22 03:43, Sudip Mukherjee wrote:
On Thu, Aug 18, 2022 at 3:09 AM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:

On 8/17/22 19:01, Alex Deucher wrote:
On Wed, Aug 17, 2022 at 6:03 PM Sudip Mukherjee (Codethink)
<sudipm.mukherjee@xxxxxxxxx> wrote:
Hi All,

Not sure if it has been reported, build of next-20220817 fails with the
error:

ERROR: modpost: "cpu_smallcore_map" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

Trying to do a git bisect to find out the offending commit.

Thanks. I don't see that symbol in the driver at all. Not sure where
it is coming from.

It's powerpc only.

Sudip, is it non-CONFIG_SMP by any chance?
Ohhh.. really sorry for the incomplete report. I should not try to
mail while travelling.

The error is seen with powerpc allmodconfig and it has CONFIG_SMP=y.
OK, I see that also, but it doesn't make any sense (to me).

I did 'objdump' on the code file (amdgpu.o) and it's listed as
undefined but there are no code references to it.
cpu_smt_mask() is called by drivers/gpu/drm/amd/amdkfd/kfd_device.c.
and cpu_smt_mask() is an inline function in
arch/powerpc/include/asm/smp.h which is doing "return
per_cpu(cpu_smallcore_map, cpu);"

So, the offending commit is 7bc913085765 ("drm/amdkfd: Try to schedule
bottom half on same core").
Thanks for digging that up.

It just needs to have that symbol exported I think.
This builds cleanly now.
I can submit it or one of the AMD gfx developers can do so.

I'm not sure where I would need to submit this. And I'm not familiar with Powerpc code at all. I'm OK if you submit this wherever it needs to go.

Thanks,
  Felix




---
arch/powerpc/kernel/smp.c | 1 +
1 file changed, 1 insertion(+)

--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -86,6 +86,7 @@ DEFINE_PER_CPU(cpumask_var_t, cpu_core_m
static DEFINE_PER_CPU(cpumask_var_t, cpu_coregroup_map);
EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
+EXPORT_PER_CPU_SYMBOL(cpu_smallcore_map);
EXPORT_PER_CPU_SYMBOL(cpu_l2_cache_map);
EXPORT_PER_CPU_SYMBOL(cpu_core_map);
EXPORT_SYMBOL_GPL(has_big_cores);