On Wed, Jul 03, 2024 at 12:05:04PM GMT, Linus Torvalds wrote: > On Wed, 3 Jul 2024 at 11:48, Xi Ruoyao <xry111@xxxxxxxxxxx> wrote: > > > > Fortunately LoongArch ILP32 ABI is not finalized yet (there's no 32-bit > > kernel and 64-bit kernel does not support 32-bit userspace yet) so we > > can still make it happen to use struct statx as (userspace) struct > > stat... > > Oh, no problem then. If there are no existing binaries, then yes, > please do that, > > It avoids the compat issues too. > > I think 'struct statx' is a horrid bloated thing (clearing those extra > "spare" words is a pain, and yes, the user copy for _regular_ 'stat()' > already shows up in profiles), but for some new 32-bit platform it's > definitely worth the pain just to avoid the compat code or new > structure definitions. Fwiw, that's why I prefer structs versioned by size which we added clean handling for via copy_struct_from_user() as in e.g., struct clone_args, struct mount_setattr, struct mnt_id_req and so on because then you don't have such problems. If the struct gets extended 100 times each time adding a 64 bit value but all the caller cares about is the base information then they can just pass the first, minimal struct version and be done with it. No need to reserve any space for unknown future extensions as well.