Re: [PATCH v9 2/3] x86,/proc/pid/status: Add AVX-512 usage elapsed time

From: Li, Aubrey
Date: Tue Feb 12 2019 - 06:51:21 EST


On 2019/2/12 19:19, Thomas Gleixner wrote:
> On Tue, 12 Feb 2019, Li, Aubrey wrote:
>> On 2019/2/12 16:22, Thomas Gleixner wrote:
>>> On Tue, 12 Feb 2019, Aubrey Li wrote:
>>>> diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
>>>> index d53c54b842da..60ee932070fe 100644
>>>> --- a/arch/x86/include/asm/processor.h
>>>> +++ b/arch/x86/include/asm/processor.h
>>>> @@ -996,5 +996,7 @@ enum l1tf_mitigations {
>>>> };
>>>>
>>>> extern enum l1tf_mitigations l1tf_mitigation;
>>>> +/* Add support for architecture specific output in /proc/pid/status */
>>>> +extern void arch_proc_pid_status(struct seq_file *m, struct task_struct *task);
>>>
>>> Sigh. This is absolutely the wrong place. The weak function is declared and
>>> used in fs/proc/... So the prototype wants to be in a header which is
>>> included from there independent of x86...
>>
>> Can the prototype be in the architecture header if they want to call the
>> function?
>
> Basic C programming course:
>
> The prototype must be available before the declaration of the global
> function.
>
> fs/proc/array.c:404:13: warning: no previous prototype for âarch_proc_pid_statusâ [-Wmissing-prototypes]
> void __weak arch_proc_pid_status(struct seq_file *m, struct task_struct *task)
>
> Oh well....

Is this because patch 1/3 applied alone? If the whole patch set are applied,
the prototype is included in <asm/processor.h>, which is at the beginning of
array.c file, so it is available before the declaration.

Thanks,
-Aubrey