On Sun, Jun 04, 2023 at 02:00:02PM +0200, Thomas Weißschuh wrote: > On 2023-06-04 13:18:35+0200, Willy Tarreau wrote: > > On Sat, Jun 03, 2023 at 04:02:04PM +0800, Zhangjin Wu wrote: > > > Commit a89c937d781a ("tools/nolibc: support nanoseconds in stat()") > > > added nanoseconds for stat() but missed the statx case, this adds it. > > > > > > The stx_atime, stx_mtime, stx_ctime are in type of 'struct > > > statx_timestamp', which is incompatible with 'struct timespec', should > > > convert explicitly. > > > > > > /* include/uapi/linux/stat.h */ > > > > > > struct statx_timestamp { > > > __s64 tv_sec; > > > __u32 tv_nsec; > > > __s32 __reserved; > > > }; > > > > > > /* include/uapi/linux/time.h */ > > > struct timespec { > > > __kernel_old_time_t tv_sec; /* seconds */ > > > long tv_nsec; /* nanoseconds */ > > > }; > > > > > > Without this patch, the stat_timestamps test case would fail when > > > __NR_statx defined. > > > > > > Fixes: a89c937d781a ("tools/nolibc: support nanoseconds in stat()") > > > Suggested-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx> > > > Link: https://lore.kernel.org/linux-riscv/3a3edd48-1ace-4c89-89e8-9c594dd1b3c9@xxxxxxxx/ > > > Signed-off-by: Zhangjin Wu <falcon@xxxxxxxxxxx> > > > > Thank you. I've queued it immediately after Thomas' patch. > > I'll let the two of you tell me if it's better to squash them > > together to avoid breaking bisect and mark you co-authors. > > Squashing them sounds like the correct solution to me. OK I've done it for now in my branch. I'm going to push it as 20230604-nolibc-rv32+stkp6. All tests pass fine again for me now on all supported archs. I'll pass this one to Paul, I think it's fine for 6.5. I just don't know if he still has tests planned on his side for 6.5 (Paul always re-runs the whole tests after integration and often spots failures). By the way, I'm still using my test-all script that's extremely convenient to test the expected results from user-mode (it basically does what run-user does, but for all archs and at -O0, -Os, -O3). I'm sharing it attached since I think it can help you and Zhangjin in your respective tests. That's how I'm cheating to spot build issues in contributed changes. I have not committed it because it's ugly and I don't know where to put it, but I think you'll find it convenient nevertheless. I'm starting it like this: $ ./test-all-opts.sh | tee test16.out $ grep passed test16.out 136 test(s) passed, 2 skipped, 0 failed. See all results in run-arm64.out 135 test(s) passed, 3 skipped, 0 failed. See all results in run-arm-march=armv5t_-marm.out 135 test(s) passed, 3 skipped, 0 failed. See all results in run-arm-march=armv5t_-mthumb.out 135 test(s) passed, 3 skipped, 0 failed. See all results in run-arm-march=armv7-a_-marm.out 135 test(s) passed, 3 skipped, 0 failed. See all results in run-arm-march=armv7-a_-mthumb.out 136 test(s) passed, 2 skipped, 0 failed. See all results in run-i386.out 136 test(s) passed, 2 skipped, 0 failed. See all results in run-i386-march=i586.out (...) $ grep ' [^0] failed' test16.out || echo OK OK Hoping this helps, Willy