lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1331962917.52634.1656967894704.JavaMail.zimbra@efficios.com>
Date:   Mon, 4 Jul 2022 16:51:34 -0400 (EDT)
From:   Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     Peter Zijlstra <peterz@...radead.org>,
        RAJESH DASARI <raajeshdasari@...il.com>,
        stable <stable@...r.kernel.org>,
        linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: Reg: rseq selftests failed on 5.4.199

----- On Jun 30, 2022, at 7:25 AM, Greg Kroah-Hartman gregkh@...uxfoundation.org wrote:

> On Mon, Jun 27, 2022 at 11:20:40AM -0400, Mathieu Desnoyers wrote:
>> On 27-Jun-2022 09:23:58 AM, Greg KH wrote:
>> > On Sun, Jun 26, 2022 at 10:01:20PM +0300, RAJESH DASARI wrote:
>> > > Hi ,
>> > > 
>> > > We are running rseq selftests on 5.4.199 kernel with  glibc 2.34
>> > > version  and we see that tests are failing to compile with invalid
>> > > argument errors. When we took all the commits from
>> > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/tools/testing/selftests/rseq
>> > >  related to rseq locally , test cases have passed. I see that there are
>> > > some adaptations to the latest glibc version done in those commits, is
>> > > there any plan to backport them to 5.4.x versions. Could you please
>> > > provide your inputs.
>> > 
>> > What commits specifically are you referring to please?  A list of them
>> > would be great, and if you have tested them and verified that they can
>> > be backported cleanly would also be very helpful.
>> 
>> Hi Greg,
>> 
>> Specifically related to rseq selftests, the following string of commits
>> would be relevant on top of v5.4.199. Those are not all strictly only
>> bugfixes, but they help applying the following commits without
>> conflicts. I have validated that this string of commits cherry-picks on
>> top of v5.4.199, and that the resulting selftests build fine.
>> 
>> ea366dd79c ("seq/selftests,x86_64: Add rseq_offset_deref_addv()")
>> 07ad4f7629 ("selftests/rseq: remove ARRAY_SIZE define from individual tests")
>> 5c105d55a9 ("selftests/rseq: introduce own copy of rseq uapi header")
>> 930378d056 ("selftests/rseq: Remove useless assignment to cpu variable")
>> 94b80a19eb ("selftests/rseq: Remove volatile from __rseq_abi")
>> e546cd48cc ("selftests/rseq: Introduce rseq_get_abi() helper")
>> 886ddfba93 ("selftests/rseq: Introduce thread pointer getters")
>> 233e667e1a ("selftests/rseq: Uplift rseq selftests for compatibility with
>> glibc-2.35")
>> 24d1136a29 ("selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on
>> big endian")
>> de6b52a214 ("selftests/rseq: Fix ppc32 missing instruction selection "u" and "x"
>> for load/store")
>> 26dc8a6d8e ("selftests/rseq: Fix ppc32 offsets by using long rather than off_t")
>> d7ed99ade3 ("selftests/rseq: Fix warnings about #if checks of undefined tokens")
>> 94c5cf2a0e ("selftests/rseq: Remove arm/mips asm goto compiler work-around")
>> b53823fb2e ("selftests/rseq: Fix: work-around asm goto compiler bugs")
>> 4e15bb766b ("selftests/rseq: x86-64: use %fs segment selector for accessing rseq
>> thread area")
>> 127b6429d2 ("selftests/rseq: x86-32: use %gs segment selector for accessing rseq
>> thread area")
>> 889c5d60fb ("selftests/rseq: Change type of rseq_offset to ptrdiff_t")
> 
> As many of these are newer than 5.10, can you provide a series of
> patches that should be applied to 5.4, 5.10, 5.15 and possibly 5.18 to
> resolve this issue.  We do not want anyone moving from 5.4 to a newer
> kernel and having regressions.

Hi Greg,

Here are the series of rseq selftests fixes to apply to the 5.4, 5.10, and 5.15
stable kernel series.

v5.4.203

ea366dd79c ("seq/selftests,x86_64: Add rseq_offset_deref_addv()")
07ad4f7629 ("selftests/rseq: remove ARRAY_SIZE define from individual tests")
5c105d55a9 ("selftests/rseq: introduce own copy of rseq uapi header")
930378d056 ("selftests/rseq: Remove useless assignment to cpu variable")
94b80a19eb ("selftests/rseq: Remove volatile from __rseq_abi")
e546cd48cc ("selftests/rseq: Introduce rseq_get_abi() helper")
886ddfba93 ("selftests/rseq: Introduce thread pointer getters")
233e667e1a ("selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35")
24d1136a29 ("selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian")
de6b52a214 ("selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for load/store")
26dc8a6d8e ("selftests/rseq: Fix ppc32 offsets by using long rather than off_t")
d7ed99ade3 ("selftests/rseq: Fix warnings about #if checks of undefined tokens")
94c5cf2a0e ("selftests/rseq: Remove arm/mips asm goto compiler work-around")
b53823fb2e ("selftests/rseq: Fix: work-around asm goto compiler bugs")
4e15bb766b ("selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread area")
127b6429d2 ("selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread area")
889c5d60fb ("selftests/rseq: Change type of rseq_offset to ptrdiff_t")

v5.10.128

07ad4f7629 ("selftests/rseq: remove ARRAY_SIZE define from individual tests")
5c105d55a9 ("selftests/rseq: introduce own copy of rseq uapi header")
930378d056 ("selftests/rseq: Remove useless assignment to cpu variable")
94b80a19eb ("selftests/rseq: Remove volatile from __rseq_abi")
e546cd48cc ("selftests/rseq: Introduce rseq_get_abi() helper")
886ddfba93 ("selftests/rseq: Introduce thread pointer getters")
233e667e1a ("selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35")
24d1136a29 ("selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian")
de6b52a214 ("selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for load/store")
26dc8a6d8e ("selftests/rseq: Fix ppc32 offsets by using long rather than off_t")
d7ed99ade3 ("selftests/rseq: Fix warnings about #if checks of undefined tokens")
94c5cf2a0e ("selftests/rseq: Remove arm/mips asm goto compiler work-around")
b53823fb2e ("selftests/rseq: Fix: work-around asm goto compiler bugs")
4e15bb766b ("selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread area")
127b6429d2 ("selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread area")
889c5d60fb ("selftests/rseq: Change type of rseq_offset to ptrdiff_t")

v5.15.52

07ad4f7629 ("selftests/rseq: remove ARRAY_SIZE define from individual tests")
5c105d55a9 ("selftests/rseq: introduce own copy of rseq uapi header")
930378d056 ("selftests/rseq: Remove useless assignment to cpu variable")
94b80a19eb ("selftests/rseq: Remove volatile from __rseq_abi")
e546cd48cc ("selftests/rseq: Introduce rseq_get_abi() helper")
886ddfba93 ("selftests/rseq: Introduce thread pointer getters")
233e667e1a ("selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35")
24d1136a29 ("selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian")
de6b52a214 ("selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for load/store")
26dc8a6d8e ("selftests/rseq: Fix ppc32 offsets by using long rather than off_t")
d7ed99ade3 ("selftests/rseq: Fix warnings about #if checks of undefined tokens")
94c5cf2a0e ("selftests/rseq: Remove arm/mips asm goto compiler work-around")
b53823fb2e ("selftests/rseq: Fix: work-around asm goto compiler bugs")
4e15bb766b ("selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread area")
127b6429d2 ("selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread area")
889c5d60fb ("selftests/rseq: Change type of rseq_offset to ptrdiff_t")

Please note that if someone cares about getting rseq selftests to work on 4.9, 4.14 and
4.19 stable kernels with glibc 2.35+, additional commits will be needed prior to the commits
identified above. This would include commits that add rseq selftests support for additional
architectures, or to manually edit the follow up fix commits when backporting and omit the
parts applying to unsupported architectures. This is not straightforward, so I am not listing
those stable branches here.

As I identified in my prior email, there is also a patch from Michael Jeanson that would be
useful, but AFAIK it's still in -tip (not in master yet), so as per the cherry-picking rules
of stable kernels it will have to wait.

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ