Forward the missing messages.

---------- Forwarded message ----------
From: 王昊然 <msl0000023...@gmail.com>
Date: Fri, 21 Oct 2022 14:09:33 +0800
Subject: Re: Bug#1022049: libnettle8: Illegal instruction on IBM POWER7
To: Maamoun TK <maamoun...@googlemail.com>
Cc: Niels Möller <ni...@lysator.liu.se>

I can confirm this patch worked on my system.

2022-10-20 21:02 GMT+08:00, Maamoun TK <maamoun...@googlemail.com>:
> On Wed, Oct 19, 2022 at 6:22 PM Maamoun TK <maamoun...@googlemail.com>
> wrote:
>
>> On Wed, Oct 19, 2022 at 5:50 PM Niels Möller <ni...@lysator.liu.se>
>> wrote:
>>
>>> WHR <msl0000023...@gmail.com> writes:
>>>
>>> > I think the Debian architecture I'm using (ppc64) should still
>>> supporting
>>> > POWER7, but apparently this library was built to use instructions
>>> unavailable
>>> > on POWER7.
>>>
>>> Nettle attempts to figure out at runtime which processor features are
>>> available.
>>>
>>> > => 0x00003fffb72bedec <+76>:    vmrgow  v4,v0,v0
>>>
>>> The ppc specification says "vmrgow is treated as a Vector
>>> instruction in terms of resource availability.", it's not entirely clear
>>> to me what that means, and if checking for altivec support should be
>>> enough.
>>>
>>
>> I don't have access to log file or bug report but I'm assuming that the
>> usage of "vmrgow/vmrgew" in chacha-2core.asm triggers this bug since both
>> instructions are only available on POWER8+
>>
>> I'll investigate more about the issue besides the possibility of
>> utilizing
>> "vmrghw/vmrglw" instead.
>>
>
> It seems only the usage of  "vmrgow/vmrgew" causes the issue. I pushed a MR
> to the main repository that resolves the bug
> https://git.lysator.liu.se/nettle/nettle/-/merge_requests/54
> Tested on POWER7 machines in little-endian and big-endian modes.
>
> regards,
> Mamone
>
>
>> regards,
>> Mamone
>>
>> The fat setup for ppc is intended to enable the crashing code path only
>>> if the feature bits PPC_FEATURE_HAS_ALTIVEC and PPC_FEATURE_HAS_VSX are
>>> both set in the status word returned from
>>>
>>>   hwcap = getauxval(AT_HWCAP);
>>>
>>> This logic is in
>>> https://git.lysator.liu.se/nettle/nettle/-/blob/master/fat-ppc.c#L151
>>> and used to selct chacha code here:
>>> https://git.lysator.liu.se/nettle/nettle/-/blob/master/fat-ppc.c#L232
>>>
>>> > lscpu(1) output:
>>> >
>>> > Architecture:            ppc64
>>> >   CPU op-mode(s):        32-bit, 64-bit
>>> >   Byte Order:            Big Endian
>>> > CPU(s):                  4
>>> >   On-line CPU(s) list:   0-3
>>> > Model name:              POWER7 (architected), altivec supported
>>>
>>> Would you expect to have the "vsx" feature mentioned there or not?
>>>
>>> You can get some diagnostics from the initialization process by setting
>>> the NETTLE_FAT_VERBOSE environment variable, and override the automatic
>>> detection with the NETTLE_FAT_OVERRIDE environment variable.
>>>
>>> Can you check what getauxval(AT_HWCAP) returns on your system?
>>>
>>> I'm not so familiar with powerpc variants. Cc:ing Maamoun who's more
>>> familiar with this arch.
>>>
>>> >   Model:                 2.3 (pvr 003f 0203)
>>> >   Thread(s) per core:    4
>>> >   Core(s) per socket:    1
>>> >   Socket(s):             1
>>> > Virtualization features:
>>> >   Hypervisor vendor:     pHyp
>>> >   Virtualization type:   para
>>>
>>> Is the program that crashes running under a vm, or is the kernel running
>>> on the bare metal? Each layer of vm tends to be ian opportunity to
>>> introduce
>>> errors in the list of available processor features.
>>>
>>> > Caches (sum of all):
>>> >   L1d:                   32 KiB (1 instance)
>>> >   L1i:                   32 KiB (1 instance)
>>> >   L2:                    256 KiB (1 instance)
>>> >   L3:                    4 MiB (1 instance)
>>> > NUMA:
>>> >   NUMA node(s):          2
>>> >   NUMA node0 CPU(s):
>>> >   NUMA node1 CPU(s):     0-3
>>> >
>>> >
>>> > -- System Information:
>>> > Debian Release: bookworm/sid
>>> >   APT prefers unstable
>>> >   APT policy: (500, 'unstable')
>>> > merged-usr: no
>>> > Architecture: ppc64
>>> > Foreign Architectures: powerpc
>>> >
>>> > Kernel: Linux 4.1.42-rivoreo-powerpc64-largepage (SMP w/4 CPU threads)
>>> > Locale: LANG=zh_TW.UTF-8, LC_CTYPE=zh_TW.UTF-8 (charmap=UTF-8),
>>> LANGUAGE=zh_TW:zh_CN:zh:en_GB:en
>>> > Shell: /bin/sh linked to /bin/dash
>>> > Init: systemd (via /run/systemd/system)
>>> >
>>> > Versions of packages libnettle8 depends on:
>>> > ii  libc6  2.35-3
>>> >
>>> > libnettle8 recommends no packages.
>>> >
>>> > libnettle8 suggests no packages.
>>> >
>>> > -- no debconf information
>>> >
>>>
>>> Regards,
>>> /Niels
>>>
>>> --
>>> Niels Möller. PGP key CB4962D070D77D7FCB8BA36271D8F1FF368C6677.
>>> Internet email is subject to wholesale government surveillance.
>>>
>>
>

Reply via email to