On Sat, 2024-06-15 at 16:52 +0800, Huacai Chen wrote:
Hi, Arnd,
On Sun, May 12, 2024 at 3:53 PM Arnd Bergmann arnd@arndb.de wrote:
On Sun, May 12, 2024, at 05:11, Huacai Chen wrote:
On Sat, May 11, 2024 at 11:39 PM Arnd Bergmann arnd@arndb.de wrote:
On Sat, May 11, 2024, at 16:28, Huacai Chen wrote:
On Sat, May 11, 2024 at 8:17 PM Arnd Bergmann arnd@arndb.de wrote:
CONFIG_COMPAT_32BIT_TIME is equally affected here. On riscv32 this is the only allowed configuration, while on others (arm32 or x86-32 userland) you can turn off COMPAT_32BIT_TIME on both 32-bit kernel and on 64-bit kernels with compat mode.
I don't know too much detail, but I think riscv32 can do something similar to arm32 and x86-32, or we can wait for Xuerui to improve seccomp. But there is no much time for loongarch because the Debian loong64 port is coming soon.
What I meant is that the other architectures only work by accident if COMPAT_32BIT_TIME is enabled and statx() gets blocked, but then they truncate the timestamps to the tim32 range, which is not acceptable behavior. Actually mips64 is in the same situation because it also only supports 32-bit timestamps in newstatat(), despite being a 64-bit architecture with a 64-bit time_t in all other syscalls.
We can only wait for the seccomp side to be fixed now? Or we can get this patch upstream for LoongArch64 at the moment, and wait for seccomp to fix RISCV32 (and LoongArch32) in future?
I'm wondering why not just introduce a new syscall or extend statx with a new flag, as we've discussed many times. They have their own disadvantages but better than this, IMO.