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

From: Felix Kuehling <[email-masked]>
Date: Fri, 19 Aug 2022 14:04:53 -0400

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 <[email-masked]> wrote:
>>>
>>> On 8/18/22 03:43, Sudip Mukherjee wrote:
>>>> On Thu, Aug 18, 2022 at 3:09 AM Randy Dunlap <[email-masked]> wrote:
>>>>>
>>>>> On 8/17/22 19:01, Alex Deucher wrote:
>>>>>> On Wed, Aug 17, 2022 at 6:03 PM Sudip Mukherjee (Codethink)
>>>>>> <[email-masked]> 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);
>
>