mbox series

[v3,00/12] nolibc: add generic part1 of prepare for rv32

Message ID cover.1685777982.git.falcon@tinylab.org (mailing list archive)
Headers show
Series nolibc: add generic part1 of prepare for rv32 | expand

Message

Zhangjin Wu June 3, 2023, 7:59 a.m. UTC
Hi, Willy

This is the v3 generic part1 for rv32, all of the found issues of v2
part1 [1] have been fixed up, several generic patches have been fixed up
and merged from v2 part2 [2] to this series, the standalone test_fork
patch [4] is merged with a Reviewed-by line into this series too.

This series is based on 20230528-nolibc-rv32+stkp5 branch of [5].

Changes from v2 -> v3:

* selftests/nolibc: fix up compile warning with glibc on x86_64

  Use simpler 'long long' conversion instead of old #ifdef ...
  (Suggestion from Willy)

* tools/nolibc: add missing nanoseconds support for __NR_statx

  Split the compound assignment into two single assignments
  (Suggestion from Thomas)

* selftests/nolibc: add new gettimeofday test cases

  Removed the gettimeofday(NULL, &tz)
  (Suggestion from Thomas)

All of the commit messages have been re-checked, some missing
Suggested-by lines are added.

The whole patchset have been tested on arm, aarch64, rv32 and rv64, no
regressions (the next compile patchset is required to do rv32 test).

The nolibc-test has been tested with glibc on x86_64 too.

Btw, we have found such poll failures on arm (not introduced by this
patchset), this will be fixed in our coming ppoll_time64 patchset:

48 poll_null = -1 ENOSYS                                        [FAIL]
49 poll_stdout = -1 ENOSYS                                      [FAIL]
50 poll_fault = -1 ENOSYS  != (-1 EFAULT)                       [FAIL]

And the gettimeofday_null removal patch from Thomas [3] may conflicts
with the gettimeofday removal and addition patches, but it is not hard
to fix.

Best regards,
Zhangjin
---

[1]: https://lore.kernel.org/linux-riscv/cover.1685362482.git.falcon@tinylab.org/T/#t
[2]: https://lore.kernel.org/linux-riscv/cover.1685387484.git.falcon@tinylab.org/T/#t
[3]: https://lore.kernel.org/lkml/20230530-nolibc-gettimeofday-v1-1-7307441a002b@weissschuh.net/
[4]: https://lore.kernel.org/lkml/61bdfe7bacebdef8aa9195f6f2550a5b0d33aab3.1685426545.git.falcon@tinylab.org/
[5]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git

Zhangjin Wu (12):
  selftests/nolibc: syscall_args: use generic __NR_statx
  tools/nolibc: add missing nanoseconds support for __NR_statx
  selftests/nolibc: allow specify extra arguments for qemu
  selftests/nolibc: fix up compile warning with glibc on x86_64
  selftests/nolibc: not include limits.h for nolibc
  selftests/nolibc: use INT_MAX instead of __INT_MAX__
  tools/nolibc: arm: add missing my_syscall6
  tools/nolibc: open: fix up compile warning for arm
  selftests/nolibc: support two errnos with EXPECT_SYSER2()
  selftests/nolibc: remove gettimeofday_bad1/2 completely
  selftests/nolibc: add new gettimeofday test cases
  selftests/nolibc: test_fork: fix up duplicated print

 tools/include/nolibc/arch-arm.h              | 23 +++++++++++
 tools/include/nolibc/stdint.h                | 14 +++++++
 tools/include/nolibc/sys.h                   | 39 +++++++++---------
 tools/testing/selftests/nolibc/Makefile      |  2 +-
 tools/testing/selftests/nolibc/nolibc-test.c | 42 ++++++++++++--------
 5 files changed, 85 insertions(+), 35 deletions(-)

Comments

Thomas Weißschuh June 4, 2023, 6:49 a.m. UTC | #1
On 2023-06-03 15:59:29+0800, Zhangjin Wu wrote:
> Hi, Willy
> 
> This is the v3 generic part1 for rv32, all of the found issues of v2
> part1 [1] have been fixed up, several generic patches have been fixed up
> and merged from v2 part2 [2] to this series, the standalone test_fork
> patch [4] is merged with a Reviewed-by line into this series too.
> 
> This series is based on 20230528-nolibc-rv32+stkp5 branch of [5].
> 
> Changes from v2 -> v3:
> 
> * selftests/nolibc: fix up compile warning with glibc on x86_64
> 
>   Use simpler 'long long' conversion instead of old #ifdef ...
>   (Suggestion from Willy)
> 
> * tools/nolibc: add missing nanoseconds support for __NR_statx
> 
>   Split the compound assignment into two single assignments
>   (Suggestion from Thomas)
> 
> * selftests/nolibc: add new gettimeofday test cases
> 
>   Removed the gettimeofday(NULL, &tz)
>   (Suggestion from Thomas)
> 
> All of the commit messages have been re-checked, some missing
> Suggested-by lines are added.
> 
> The whole patchset have been tested on arm, aarch64, rv32 and rv64, no
> regressions (the next compile patchset is required to do rv32 test).
> 
> The nolibc-test has been tested with glibc on x86_64 too.
> 
> Btw, we have found such poll failures on arm (not introduced by this
> patchset), this will be fixed in our coming ppoll_time64 patchset:
> 
> 48 poll_null = -1 ENOSYS                                        [FAIL]
> 49 poll_stdout = -1 ENOSYS                                      [FAIL]
> 50 poll_fault = -1 ENOSYS  != (-1 EFAULT)                       [FAIL]
> 
> And the gettimeofday_null removal patch from Thomas [3] may conflicts
> with the gettimeofday removal and addition patches, but it is not hard
> to fix.
> 
> Best regards,
> Zhangjin
> ---
> 
> [1]: https://lore.kernel.org/linux-riscv/cover.1685362482.git.falcon@tinylab.org/T/#t
> [2]: https://lore.kernel.org/linux-riscv/cover.1685387484.git.falcon@tinylab.org/T/#t
> [3]: https://lore.kernel.org/lkml/20230530-nolibc-gettimeofday-v1-1-7307441a002b@weissschuh.net/
> [4]: https://lore.kernel.org/lkml/61bdfe7bacebdef8aa9195f6f2550a5b0d33aab3.1685426545.git.falcon@tinylab.org/
> [5]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
> 
> Zhangjin Wu (12):
>   selftests/nolibc: syscall_args: use generic __NR_statx
>   tools/nolibc: add missing nanoseconds support for __NR_statx
>   selftests/nolibc: allow specify extra arguments for qemu
>   selftests/nolibc: fix up compile warning with glibc on x86_64
>   selftests/nolibc: not include limits.h for nolibc
>   selftests/nolibc: use INT_MAX instead of __INT_MAX__
>   tools/nolibc: arm: add missing my_syscall6
>   tools/nolibc: open: fix up compile warning for arm
>   selftests/nolibc: support two errnos with EXPECT_SYSER2()
>   selftests/nolibc: remove gettimeofday_bad1/2 completely
>   selftests/nolibc: add new gettimeofday test cases
>   selftests/nolibc: test_fork: fix up duplicated print
> 
>  tools/include/nolibc/arch-arm.h              | 23 +++++++++++
>  tools/include/nolibc/stdint.h                | 14 +++++++
>  tools/include/nolibc/sys.h                   | 39 +++++++++---------
>  tools/testing/selftests/nolibc/Makefile      |  2 +-
>  tools/testing/selftests/nolibc/nolibc-test.c | 42 ++++++++++++--------
>  5 files changed, 85 insertions(+), 35 deletions(-)

For the full series:

Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>

> -- 
> 2.25.1
>
Willy Tarreau June 4, 2023, 12:54 p.m. UTC | #2
On Sun, Jun 04, 2023 at 08:49:52AM +0200, Thomas Weißschuh wrote:
> On 2023-06-03 15:59:29+0800, Zhangjin Wu wrote:
> > Hi, Willy
> > 
> > This is the v3 generic part1 for rv32, all of the found issues of v2
> > part1 [1] have been fixed up, several generic patches have been fixed up
> > and merged from v2 part2 [2] to this series, the standalone test_fork
> > patch [4] is merged with a Reviewed-by line into this series too.
> > 
> > This series is based on 20230528-nolibc-rv32+stkp5 branch of [5].
> > 
> > Changes from v2 -> v3:
> > 
> > * selftests/nolibc: fix up compile warning with glibc on x86_64
> > 
> >   Use simpler 'long long' conversion instead of old #ifdef ...
> >   (Suggestion from Willy)
> > 
> > * tools/nolibc: add missing nanoseconds support for __NR_statx
> > 
> >   Split the compound assignment into two single assignments
> >   (Suggestion from Thomas)
> > 
> > * selftests/nolibc: add new gettimeofday test cases
> > 
> >   Removed the gettimeofday(NULL, &tz)
> >   (Suggestion from Thomas)
> > 
> > All of the commit messages have been re-checked, some missing
> > Suggested-by lines are added.
> > 
> > The whole patchset have been tested on arm, aarch64, rv32 and rv64, no
> > regressions (the next compile patchset is required to do rv32 test).
> > 
> > The nolibc-test has been tested with glibc on x86_64 too.
> > 
> > Btw, we have found such poll failures on arm (not introduced by this
> > patchset), this will be fixed in our coming ppoll_time64 patchset:
> > 
> > 48 poll_null = -1 ENOSYS                                        [FAIL]
> > 49 poll_stdout = -1 ENOSYS                                      [FAIL]
> > 50 poll_fault = -1 ENOSYS  != (-1 EFAULT)                       [FAIL]
> > 
> > And the gettimeofday_null removal patch from Thomas [3] may conflicts
> > with the gettimeofday removal and addition patches, but it is not hard
> > to fix.
> > 
> > Best regards,
> > Zhangjin
> > ---
> > 
> > [1]: https://lore.kernel.org/linux-riscv/cover.1685362482.git.falcon@tinylab.org/T/#t
> > [2]: https://lore.kernel.org/linux-riscv/cover.1685387484.git.falcon@tinylab.org/T/#t
> > [3]: https://lore.kernel.org/lkml/20230530-nolibc-gettimeofday-v1-1-7307441a002b@weissschuh.net/
> > [4]: https://lore.kernel.org/lkml/61bdfe7bacebdef8aa9195f6f2550a5b0d33aab3.1685426545.git.falcon@tinylab.org/
> > [5]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
> > 
> > Zhangjin Wu (12):
> >   selftests/nolibc: syscall_args: use generic __NR_statx
> >   tools/nolibc: add missing nanoseconds support for __NR_statx
> >   selftests/nolibc: allow specify extra arguments for qemu
> >   selftests/nolibc: fix up compile warning with glibc on x86_64
> >   selftests/nolibc: not include limits.h for nolibc
> >   selftests/nolibc: use INT_MAX instead of __INT_MAX__
> >   tools/nolibc: arm: add missing my_syscall6
> >   tools/nolibc: open: fix up compile warning for arm
> >   selftests/nolibc: support two errnos with EXPECT_SYSER2()
> >   selftests/nolibc: remove gettimeofday_bad1/2 completely
> >   selftests/nolibc: add new gettimeofday test cases
> >   selftests/nolibc: test_fork: fix up duplicated print
> > 
> >  tools/include/nolibc/arch-arm.h              | 23 +++++++++++
> >  tools/include/nolibc/stdint.h                | 14 +++++++
> >  tools/include/nolibc/sys.h                   | 39 +++++++++---------
> >  tools/testing/selftests/nolibc/Makefile      |  2 +-
> >  tools/testing/selftests/nolibc/nolibc-test.c | 42 ++++++++++++--------
> >  5 files changed, 85 insertions(+), 35 deletions(-)
> 
> For the full series:
> 
> Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>

I forgot to say, all the series is now queued, and I squashed the
__NR_statx fix into Thomas' patch.

Willy