Re: [PATCH v4 13/18] selftests/nolibc: prepare /tmp for tmpfs or ramfs

From: Zhangjin Wu
Date: Mon Jul 10 2023 - 05:41:41 EST


Hi, Willy

> Hi Zhangjin,
>
> On Mon, Jul 10, 2023 at 01:06:00PM +0800, Zhangjin Wu wrote:
> > > On Sat, Jul 08, 2023 at 02:38:57AM +0800, Zhangjin Wu wrote:
[...]
> > Now, we use "/tmp" directly in vfprintf, and we use argv0 for chmod_exe and
> > chroot_exe, so, the only user of "/tmp" is vfprintf currently. In this case, it
> > is a simple normal writable directory to allow create tmp files there, so,
> > agree very much to only reserve the mkdir part:
> >
> > /* create /tmp if not there. Silently fail otherwise */
> > mkdir("/tmp", 0755);
>
> OK, then I'll do that.
>

Thanks.

> > Another consideration before is whether it is required to be consistent with
> > the normal Linux systems, let the "/tmp" directory mounted as tmpfs at most of
> > the time,
>
> That's not what I'm seeing on most of the systems I'm having access to,
> where /tmp is on a plain file system (either / or link to /var/tmp but
> always on disk, likely due to the huge size of the stuff stored there
> that is rarely used and that should not eat memory).
>
> > but "/tmp" means ramfs for CONFIG_TMPFS=n currently even mount it
> > explicitly (ramfs is a fallback of tmpfs in such case), so, this assumption of
> > "/tmp" means tmpfs is not true currently.
> >
> > What I'm worried about is people in the future assume "/tmp" as tmpfs at the
> > first glance and use the features only provided by TMPFS but not provided by
> > RAMFS (I'm not sure which one they will use). so, I even tried to create a
> > "/tmp/tmpfs" flag for TMPFS and "/tmp/ramfs" flag for RAMFS before, since there
> > is no user to explicitly prefer TMPFS to RAMFS currently, at last, I removed
> > these flags from the sent patchsets. Based on the same logic, The removal of
> > tmpfs mount is of course ok.
>
> Indeed, and also, please keep in mind what the purpose of nolibc-test is:
> make sure that the syscalls wrappers we write do work as expected, in part
> by allowing us to compare against another libc to figure whether it's
> the libc, the test or the kernel that causes any difference. The rest is
> purely out of scope. Thus it's not this test's business to verify that a
> tmpfs is indeed present after trying to mount it under /tmp, however it's
> this test business to make sure that options passed to mount() do work as
> expected, and that when a writable area is needed for a test, a working
> one is assigned. Thus for the specific case you mention, we don't care.
> And I'd go further, there can and should be reasonable prerequisites to
> run this test.
>

Ok.

> > So, Willy, is it ok for you to remove that mount line with corresponding update
> > of the commit message (and the subject title), or require me to send a revision
> > for this patch?
>
> No worries, I've modified it accordingly with the following commit message,
> just let me know if you want to change anything:
>
> commit 11fddb386bd663a554cc08c5950d9da2c87a7267 (HEAD)
> Author: Zhangjin Wu <falcon@xxxxxxxxxxx>
> Date: Sat Jul 8 02:38:57 2023 +0800
>
> selftests/nolibc: prepare /tmp for tests that need to write
>
> create a /tmp directory. If it succeeds, the directory is writable,
> which is normally the case when booted from an initramfs anyway.
>
> This will be used instead of procfs for some tests.
>
> Reviewed-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
> Signed-off-by: Zhangjin Wu <falcon@xxxxxxxxxxx>
> Link: https://lore.kernel.org/lkml/20230710050600.9697-1-falcon@xxxxxxxxxxx/
> [wt: removed the unneeded mount() call]
> Signed-off-by: Willy Tarreau <w@xxxxxx>
>

Perfectly, Thanks a lot.

Best regards,
Zhangjin

> Thanks!
> Willy