Re: [PATCH 6/8] x86/platform/uv: Decode UVsystab Info

Mike Travis
2019-09-05T14:47:55Z

On 9/5/2019 7:16 AM, Greg KH wrote:
> On Thu, Sep 05, 2019 at 08:02:58AM -0500, Mike Travis wrote:
>> Decode the hubless UVsystab passed from BIOS to the kernel saving
>> pertinent info in a similar manner that hubbed UVsystabs are decoded.
>>
>> Signed-off-by: Mike Travis <mike.travis@hpe.com>
>> Reviewed-by: Steve Wahl <steve.wahl@hpe.com>
>> Reviewed-by: Dimitri Sivanich <dimitri.sivanich@hpe.com>
>> To: Thomas Gleixner <tglx@linutronix.de>
>> To: Ingo Molnar <mingo@redhat.com>
>> To: H. Peter Anvin <hpa@zytor.com>
>> To: Andrew Morton <akpm@linux-foundation.org>
>> To: Borislav Petkov <bp@alien8.de>
>> To: Christoph Hellwig <hch@infradead.org>
>> Cc: Dimitri Sivanich <dimitri.sivanich@hpe.com>
>> Cc: Russ Anderson <russ.anderson@hpe.com>
>> Cc: Hedi Berriche <hedi.berriche@hpe.com>
>> Cc: Steve Wahl <steve.wahl@hpe.com>
>> Cc: x86@kernel.org
>> Cc: linux-kernel@vger.kernel.org
>> Cc: stable@vger.kernel.org
>> ---
>> arch/x86/kernel/apic/x2apic_uv_x.c | 16 ++++++++++++++--
>> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> If you are trying to get one of my automated "WTF: patch XXXX was
> seriously submitted to be applied to the stable tree?" emails, you are
> on track for it...
>
> Please go read the documentation link I sent you last time and figure
> out how you can justify any of this patch series for a stable kernel
> tree.

Is it because it has fixes for new hardware? If so, then I'll quit
submitting them to stable (we've had requests from distros for all
updates be in the stable tree for acceptance). Otherwise I thought it
does comply with:

" - To have the patch automatically included in the stable tree,
add the tag
Cc: stable@vger.kernel.org
in the sign-off area. Once the patch is merged it will be applied
to the stable tree without anything else needing to be done by the
author or subsystem maintainer."

Or is there some other reason that I'm not understanding?

>
> Also, nit:
>
>> --- linux.orig/arch/x86/kernel/apic/x2apic_uv_x.c
>> +++ linux/arch/x86/kernel/apic/x2apic_uv_x.c
>> @@ -1303,7 +1303,8 @@ static int __init decode_uv_systab(void)
>> struct uv_systab *st;
>> int i;
>>
>> - if (uv_hub_info->hub_revision < UV4_HUB_REVISION_BASE)
>> + /* Select only UV4 (hubbed or hubless) and higher */
>> + if (is_uv_hubbed(-2) < uv(4) && is_uv_hubless(-2) < uv(4))
>> return 0; /* No extended UVsystab required */
>>
>> st = uv_systab;
>> @@ -1554,8 +1555,19 @@ static __init int uv_system_init_hubless
>>
>> /* Init kernel/BIOS interface */
>> rc = uv_bios_init();
>> + if (rc < 0) {
>> + pr_err("UV: BIOS init error:%d\n", rc);
>
> Why isn't that function printing an error?
>
>
>> + return rc;
>> + }
>> +
>> + /* Process UVsystab */
>> + rc = decode_uv_systab();
>> + if (rc < 0) {
>> + pr_err("UV: UVsystab decode error:%d\n", rc);
>
> Same here, have the function itself print the error, makes this type of
> stuff much cleaner.

You're right this would be much cleaner. Mostly this was done because
of the rarity of an error here, and the specifics (BIOS failures)
usually cannot be dealt with by users. The system log is captured as
part of the error and packaged with other fault details that are
analyzed internally.

But I will make the changes you are suggesting. And thanks.
>
> greg k-h
>