From: "Wang, Yanzhang" <yanzhang.wang@intel.com>
To: Palmer Dabbelt <palmer@dabbelt.com>,
"adhemerval.zanella@linaro.org" <adhemerval.zanella@linaro.org>
Cc: DJ Delorie <dj@redhat.com>, Darius Rad <darius@bluespec.com>,
"libc-alpha@sourceware.org" <libc-alpha@sourceware.org>
Subject: RE: [PATCH] RISC-V: Enable static-pie.
Date: Thu, 21 Sep 2023 13:47:31 +0000 [thread overview]
Message-ID: <IA1PR11MB6466C05B8BB4DD6C7061D151F2F8A@IA1PR11MB6466.namprd11.prod.outlook.com> (raw)
In-Reply-To: <mhng-607b0d05-24af-44f0-8278-94c504a3571c@palmer-ri-x1c9a>
Thanks for all your comments, Palmer, DJ, Dairus and Adhemerval.
Your suggestions are so helpful to me.
Yes. I also found this issue on GitHub too and the math failures didn't
appear with QEMU system. So it's definitely a hardware bug.
And I found the root cause of almost of the other failures. It's
because I use sshfs not nfs. :( ..
Even though I set a larger TIMEOUTFACTOR as you said, there're still
some timeout failures like below. And seems the timeout is not stable.
Sometimes, nptl/tst-stack4 can pass on lp4a and sometimes not.
master with qemu-system master on lp4a static-pie patch on lp4a
----------------------------- ----------------------------- -----------------------------
resolv/tst-resolv-res_ninit resolv/tst-resolv-res_ninit resolv/tst-resolv-res_ninit
nptl/tst-stack4 nptl/tst-stack4 iconvdata/tst-loading
libio/tst-fopenloc libio/tst-fopenloc localedata/tst-leaks
iconvdata/tst-loading iconvdata/tst-loading malloc/tst-dynarray-fail
localedata/tst-leaks localedata/tst-leaks posix/tst-fnmatch
malloc/tst-dynarray-fail malloc/tst-dynarray-fail
posix/tst-glob-tilde posix/tst-glob-tilde
posix/tst-fnmatch posix/tst-fnmatch
For the FAIL tests, it's like below. The math failures are filtered out
on lp4a and not appear on qemu-system.
master with qemu-system master on lp4a static-pie patch on lp4a
----------------------------------------------- ----------------------------------------------- -----------------------------------------------
resolv/mtrace-tst-resolv-res_ninit resolv/mtrace-tst-resolv-res_ninit resolv/mtrace-tst-resolv-res_ninit
nptl/tst-cancel21-static libio/tst-fopenloc-mem elf/tst-tls-allocation-failure-static-patched
libio/tst-fopenloc-mem libio/tst-fopenloc-cmp elf/tst-rtld-list-diagnostics
libio/tst-fopenloc-cmp elf/tst-tls-allocation-failure-static-patched elf/tst-sprof-basic
elf/tst-tls-allocation-failure-static-patched elf/tst-rtld-list-diagnostics iconvdata/mtrace-tst-loading
elf/tst-rtld-list-diagnostics elf/tst-sprof-basic localedata/mtrace-tst-leaks
elf/tst-sprof-basic iconvdata/mtrace-tst-loading malloc/tst-dynarray-fail-mem
iconvdata/mtrace-tst-loading localedata/mtrace-tst-leaks posix/tst-fnmatch-mem
localedata/mtrace-tst-leaks malloc/tst-dynarray-fail-mem
malloc/tst-dynarray-fail-mem posix/tst-glob-tilde-mem
posix/tst-glob-tilde-mem posix/tst-fnmatch-mem
posix/tst-fnmatch-mem
posix/globtest
Take master on lp4a as an example,
- elf/tst-rtld-list-diagnostics, due to missing abnf module
- elf/tst-sprof-basic, successfully print hello world but return status is 1, still unknown root cause
- elf/tst-tls-allocation-failure-static-patched, exec format error, still unknown root cause
- the others are memory not freed
The difference between qemu-system and lp4a for master is the two cases,
- nptl/tst-cancel21-static, it said sa_flags = SA_ONSTACK and haven't investigated.
- posix/globtest, because my qemu-system has a different user name.
The XFAILs and XPASSes are the same on all platforms and all branches.
So not list here.
I use the commit 4be913652ca115160bae1daf560170ef8b112ccb of master branch.
So is this the expected test result? Or is there still any case not correct FAIL or PASS?
Thanks,
Yanzhang
> -----Original Message-----
> From: Palmer Dabbelt <palmer@dabbelt.com>
> Sent: Wednesday, September 20, 2023 9:37 PM
> To: adhemerval.zanella@linaro.org
> Cc: Wang, Yanzhang <yanzhang.wang@intel.com>; DJ Delorie <dj@redhat.com>;
> Darius Rad <darius@bluespec.com>; libc-alpha@sourceware.org
> Subject: Re: [PATCH] RISC-V: Enable static-pie.
>
> On Mon, 11 Sep 2023 09:17:22 PDT (-0700), adhemerval.zanella@linaro.org
> wrote:
> >
> >
> > On 09/09/23 00:30, Palmer Dabbelt wrote:
> >> On Fri, 08 Sep 2023 20:17:16 PDT (-0700), yanzhang.wang@intel.com wrote:
> >>> I took some time to test the master with binfmt_misc and qemu system
> mode.
> >>> Both of them can't match the requirements (<= 6 failures).
> >>>
> >>> - most of cases with binfmt_misc fail with abort.
> >>
> >> QEMU user mode isn't a valid test suite target for glibc, there's lots
> of failures due to the emulation. I know it's confusing that riscv-gnu-
> toolchain uses it, that come up when support was added.
> >>
> >>> - most of cases with qemu system fail with timed out.
> >>
> >> You can set TIMEOUTFACTOR, qemu-system is a lot slower than hardware.
> >>
> >>> And also tested with my risc-v board and still fails 70+ cases and
> >>> most of them are math accuracy issue.
> >>
> >> Which board are you running on?
> >>
> >>> So Adhemerval, do you know how to setup the environment to reproduce
> >>> the <= 6 failures ? Maybe I lost some important steps. Thanks very
> much :).
> >>
> >> +DJ and Darius, who usually report test results. They've probably got
> the best idea of how to set things up, but I don't remember this requiring
> anything fancy.
> >
> > For the specific support of static-pie, I expect that qemu-system or
> > even qemu-user would be a feasible testing platform. You might need
> > some adjustment if the platform implements some math code in assembly,
> > but if you filter out the expected failures it should be doable to
> > check the feature is working as intended.
>
> It looks like the HW in question likely has some issues in the FPU, see
> <https://github.com/revyos/revyos/issues/17>. We'll have to figure
> something out (maybe just disable FP until userspace has ack'd that it
> understands the errata?), but for now it's probably best to just test on
> QEMU.
>
> > However it is hard to filter out if you just specify the number of
> > failure before/after without breaking down which tests has failed and
> > why (Was is due timeout due emulation? Was it due missing
> > libstdc++.so/libgcc_s.so support? Was is math failure due wrong
> emulation?).
> >
> >>
> >>>
> >>> Thanks,
> >>> Yanzhang
> >>>
> >>>> -----Original Message-----
> >>>> From: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
> >>>> Sent: Tuesday, August 15, 2023 7:46 PM
> >>>> To: Wang, Yanzhang <yanzhang.wang@intel.com>; Palmer Dabbelt
> >>>> <palmer@dabbelt.com>; libc-alpha@sourceware.org
> >>>> Subject: Re: [PATCH] RISC-V: Enable static-pie.
> >>>>
> >>>>
> >>>>
> >>>> On 13/08/23 09:20, Wang, Yanzhang via Libc-alpha wrote:
> >>>> > Hi Palmer,
> >>>> >
> >>>> > I have tested the commit(542b110585) with this patch. The results
> >>>> > like below,
> >>>> >
> >>>> > Summary of test results:
> >>>> > 189 FAIL
> >>>> > 4328 PASS
> >>>> > 101 UNSUPPORTED
> >>>> > 16 XFAIL
> >>>> > 2 XPASS
> >>>> >
> >>>> > And the commit(542b110585)'s results like below,
> >>>> >
> >>>> > Summary of test results:
> >>>> > 189 FAIL
> >>>> > 4326 PASS
> >>>> > 101 UNSUPPORTED
> >>>> > 16 XFAIL
> >>>> > 2 XPASS
> >>>> >
> >>>> > The binutils's commit is 2db20b97f1d and gcc's commit is bf36656a14a.
> >>>> >
> >>>> > I use the command make check-glibc-linux in riscv-gnu-toolchain.
> >>>> > Not sure is that acceptable.
> >>>>
> >>>> The riscv reports for 2.38 release [1] list at maximum of 6 FAIL
> >>>> for all the ABI variants. The 189 failures you are reporting means
> >>>> that your environment is either missing some setup (for instance,
> >>>> copying the libgcc_s.so and libstd++.so on the build folder so C++
> >>>> and tests that require pthread_cancel or backtrace works correctly)
> >>>> or it is not properly configured.
> >>>>
> >>>> Please sort this out first, since with that amount of failures is
> >>>> not straightforward to check whether static-pie is really working as
> intended.
> >>>
next prev parent reply other threads:[~2023-09-21 14:02 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-10 23:33 yanzhang.wang
2023-08-11 1:57 ` Palmer Dabbelt
2023-08-13 12:20 ` Wang, Yanzhang
2023-08-15 11:46 ` Adhemerval Zanella Netto
2023-09-09 3:17 ` Wang, Yanzhang
2023-09-09 3:30 ` Palmer Dabbelt
2023-09-09 6:54 ` Wang, Yanzhang
2023-09-11 14:14 ` Palmer Dabbelt
2023-09-11 13:34 ` Darius Rad
2023-09-11 17:28 ` DJ Delorie
2023-09-11 16:17 ` Adhemerval Zanella Netto
2023-09-20 13:36 ` Palmer Dabbelt
2023-09-21 13:47 ` Wang, Yanzhang [this message]
2023-10-17 8:28 ` Wang, Yanzhang
2023-10-17 13:42 ` Adhemerval Zanella Netto
2023-10-24 5:59 ` Wang, Yanzhang
2023-10-24 11:39 ` Adhemerval Zanella Netto
2023-10-26 3:30 ` Wang, Yanzhang
2023-08-14 13:12 ` Carlos O'Donell
2023-08-15 1:48 ` Wang, Yanzhang
2023-08-15 1:44 ` [PATCH v2] " yanzhang.wang
2023-12-17 13:16 ` Wang, Yanzhang
2023-12-19 17:44 ` Adhemerval Zanella Netto
2024-01-02 11:02 ` Wang, Yanzhang
2024-01-02 10:54 ` [PATCH v3] " yanzhang.wang
2024-01-02 18:30 ` Adhemerval Zanella Netto
2024-01-17 12:23 ` Andreas Schwab
2024-01-29 12:46 ` Andreas Schwab
2024-02-01 12:39 ` Wang, Yanzhang
2024-02-01 12:53 ` Andreas Schwab
2024-05-21 11:13 ` Maciej W. Rozycki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=IA1PR11MB6466C05B8BB4DD6C7061D151F2F8A@IA1PR11MB6466.namprd11.prod.outlook.com \
--to=yanzhang.wang@intel.com \
--cc=adhemerval.zanella@linaro.org \
--cc=darius@bluespec.com \
--cc=dj@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=palmer@dabbelt.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).