From: Willy Tarreau <w@1wt.eu>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "chris.chenfeiyang" <chris.chenfeiyang@gmail.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Feiyang Chen <chenfeiyang@loongson.cn>,
Huacai Chen <chenhuacai@kernel.org>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
loongarch@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] nolibc: Add statx() support to implement sys_stat()
Date: Wed, 8 Feb 2023 09:19:35 +0100 [thread overview]
Message-ID: <Y+NbF6OrYu62OQCX@1wt.eu> (raw)
In-Reply-To: <7c98aac5-6b64-4f6b-b242-7ad3b8a334a8@app.fastmail.com>
On Wed, Feb 08, 2023 at 09:06:24AM +0100, Arnd Bergmann wrote:
> On Wed, Feb 8, 2023, at 08:42, Feiyang Chen wrote:
> > On Wed, 8 Feb 2023 at 11:31, Willy Tarreau <w@1wt.eu> wrote:
> >>
> >> I generally agree with the Arnd's points overall and I'm fine with the
> >> rest of your series. On this specific point, I'm fine with your proposal,
> >> let's just start with sys_statx() only on this arch, please add a comment
> >> about this possibility in the commit message that brings statx(),
> >> indicating that other archs are likely to benefit from it as well, and
> >> let's see after this if we can migrate all archs to statx.
> >>
> >
> > We have a problem if we just start with sys_statx() only on this arch.
> > When struct stat is not defined, what should we do with stat() in the
> > nolibc selftest?
>
> To clarify: your proposed implementation of the stat() function that
> fills the nolibc 'struct stat' based on information from 'struct statx'
> is fine here. Just remove the 'struct sys_stat_struct' definition
> loongarch but keep 'struct stat'.
Ah I think now I understand the problem Feiyang is facing. Since "struct
stat" is just between libc and userland, there's the "sys_stat_struct"
that we're using to abstract the syscalls in sys_stat() and that is
compatible with each variant of the stat() syscall on each arch. Here
there's simply no stat() syscall so it's best not to try to abstract
this function at all since types will not match between stat and statx,
so it will be better to just implement it like this:
#if defined(__NR_statx)
static __attribute__((unused))
int sys_stat(const char *path, struct stat *buf)
{
struct statx statx;
long ret;
ret = statx(...);
buf->xxx = statx.xxx;
...
return ret;
}
#else ...
// keep the regular sys_stat() here
#endif
Also looking at the man page I see that statx() only appeared in 4.11,
and here we're targetting userland so I'd rather keep a bit of margin
when it comes to backwards compatibility, thus not dropping stat() and
friends too early when not necessary. However using statx() by default
when available sounds fine to me!
Cheers,
Willy
next prev parent reply other threads:[~2023-02-08 8:19 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-07 2:09 [PATCH 0/3] Add LoongArch support to nolibc chris.chenfeiyang
2023-02-07 2:09 ` [PATCH 1/3] nolibc: Add statx() support to implement sys_stat() chris.chenfeiyang
2023-02-07 14:30 ` Arnd Bergmann
2023-02-08 2:09 ` Feiyang Chen
2023-02-08 3:31 ` Willy Tarreau
2023-02-08 7:29 ` Arnd Bergmann
2023-02-08 7:42 ` Feiyang Chen
2023-02-08 8:06 ` Arnd Bergmann
2023-02-08 8:19 ` Willy Tarreau [this message]
2023-02-08 9:20 ` Feiyang Chen
[not found] ` <d0df35466db74097b8e70e28d35a4776@AcuMS.aculab.com>
2023-02-08 14:07 ` Willy Tarreau
2023-02-08 8:07 ` Willy Tarreau
2023-02-07 2:09 ` [PATCH 2/3] nolibc: Add support for LoongArch chris.chenfeiyang
2023-02-07 14:25 ` Arnd Bergmann
2023-02-07 2:09 ` [PATCH 3/3] selftests/nolibc: " chris.chenfeiyang
2023-02-08 3:54 ` Willy Tarreau
2023-02-08 4:34 ` Paul E. McKenney
2023-02-08 6:39 ` Feiyang Chen
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=Y+NbF6OrYu62OQCX@1wt.eu \
--to=w@1wt.eu \
--cc=arnd@arndb.de \
--cc=chenfeiyang@loongson.cn \
--cc=chenhuacai@kernel.org \
--cc=chris.chenfeiyang@gmail.com \
--cc=jiaxun.yang@flygoat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=loongarch@lists.linux.dev \
--cc=paulmck@kernel.org \
/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