All of lore.kernel.org
 help / color / mirror / Atom feed
* mmap on 9p broken in 6.4
@ 2023-07-11 20:19 Robert Schwebel
  2023-07-12  9:01 ` Christian Schoenebeck
  2023-07-13 11:22 ` Linux regression tracking #adding (Thorsten Leemhuis)
  0 siblings, 2 replies; 17+ messages in thread
From: Robert Schwebel @ 2023-07-11 20:19 UTC (permalink / raw)
  To: Eric Van Hensbergen
  Cc: Latchesar Ionkov, Dominique Martinet, Christian Schoenebeck, v9fs,
	kernel

Hi Eric,

TL;DR: mmap() seems to be broken on 9pfs on Linux 6.4. setting
"rootflags=ignoreqv" fixes it as well, but it feels like a regression.

I'm tracking down an issue which recently turned up in DistroKit [1] (an
embedded Linux distro based on the ptxdist build system). The issue was a bit
uggly, as my CI didn't find it (systems boot up normally after a while, and I
only use 9p for virtual qemu machines, while most of the test farm is real
hardware).

The qemu machine in question is qemu-system-arm, emulating an ARM v7a machine.

When starting the systems interactively, I get a lot of error output from
ldconfig, like this:

[   17.412964] systemd-rc-once[127]: ldconfig: Cannot mmap file /lib/libgcc_s.so.1.
[   17.418851] systemd-rc-once[127]: ldconfig: Cannot mmap file /lib/libstdc++.so.
[   17.425009] systemd-rc-once[127]: ldconfig: Cannot mmap file /lib/libstdc++.so.6.0.30.
[   17.436671] systemd-rc-once[127]: ldconfig: Cannot mmap file /lib/libstdc++.so.6.
[   17.448451] systemd-rc-once[127]: ldconfig: Cannot mmap file /lib/libatomic.so.
[   17.456418] systemd-rc-once[127]: ldconfig: Cannot mmap file /lib/libatomic.so.1.2.0.
...

Running ldconfig with strace shows this, for all libraries::

| statx(AT_FDCWD, "/lib/libnm.so.0", AT_STATX_SYNC_AS_STAT|AT_SYMLINK_NOFOLLOW|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFLNK|0777, stx_size=14, ...}) = 0
| statx(AT_FDCWD, "/lib/libnm.so.0", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|064 4, stx_size=862228, ...}) = 0
| openat(AT_FDCWD, "/lib/libnm.so.0", O_RDONLY|O_LARGEFILE) = 4
| statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_s ize=862228, ...}) = 0
| mmap2(NULL, 862228, PROT_READ, MAP_SHARED, 4, 0) = -1 ENODEV (No such device)
| write(2, "ldconfig: ", 10ldconfig: )              = 10
| write(2, "Cannot mmap file /lib/libnm.so.0"..., 34Cannot mmap file /lib/libnm.so.0.) = 34
| write(2, "\n", 1)                       = 1
| close(4)                                = 0

I could track down the breakage to

  1543b4c5071c54d76aad7a7a26a6e43082269b0c

My test setup has, in addition to the patch above, the following patches also
reverted on top of a vanilla 6.4 kernel:

  4eb3117888a923f6b9b1ad2dd093641c49a63ae5
  21e26d5e54ab7cfe6b488fd27d4d70956d07e03b

as 1543b cannot be reverted without those; however, the effect only goes away
when I also revert 1543b. The kernel has no other patches applied, only these
three reverts.

Do you have an idea what happens?

I have the setup easily available, so I could quickly test patches.

Thanks,

rsc

[1] https://git.pengutronix.de/cgit/DistroKit/
-- 
Pengutronix e.K.                           | Dipl.-Ing. Robert Schwebel  |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-07-26 14:07 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-11 20:19 mmap on 9p broken in 6.4 Robert Schwebel
2023-07-12  9:01 ` Christian Schoenebeck
2023-07-12 14:14   ` Robert Schwebel
2023-07-12 15:57     ` Christian Schoenebeck
2023-07-12 22:15       ` Robert Schwebel
2023-07-13  7:50         ` Christian Schoenebeck
     [not found]           ` <CAFkjPTmrbe9Djs_iYf=vu1xbTLhey0OmePR2Jw=C_dbQVYnAhQ@mail.gmail.com>
2023-07-13 10:54             ` Christian Schoenebeck
2023-07-14  5:36               ` Robert Schwebel
2023-07-16 14:54                 ` Eric Van Hensbergen
2023-07-16 19:48                   ` Eric Van Hensbergen
2023-07-17 11:26                     ` Robert Schwebel
2023-07-17 15:29                       ` Eric Van Hensbergen
2023-07-17 18:11                         ` Eric Van Hensbergen
2023-07-17 18:59                           ` Eric Van Hensbergen
2023-07-14  5:34           ` Robert Schwebel
2023-07-13 11:22 ` Linux regression tracking #adding (Thorsten Leemhuis)
2023-07-26 14:07   ` Linux regression tracking #update (Thorsten Leemhuis)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.