Mark Brown <broonie@xxxxxxxxxx> writes: > For the past few days (I was away last week...) the fd-003-kthread.c > test from the proc kselftests has been failing on arm64, this is an > nfsroot system if that makes any odds. The test output itself is: > > # selftests: proc: fd-003-kthread > # fd-003-kthread: fd-003-kthread.c:113: test_readdir: Assertion `!de' failed. > # Aborted > not ok 3 selftests: proc: fd-003-kthread # exit=134 > > I ran a bisect which pointed at the commit > > d089d9d056c048303aedd40a7f3f26593ebd040c file: convert to SLAB_TYPESAFE_BY_RCU > > (I can't seem to find that on lore.) I've not done any further analysis > of what the commit is doing or anything, though it does look like the > bisect ran fairly smoothly and it looks at least plausibly related to > the issue and reverting the commit on top of -next causes the test to > start passing again. I'm seeing the same with the strace test-suite on s390. The problem is that /proc/*/fd now contains the file descriptors of the calling process, and not the target process. Old kernel: # ls -l /proc/1/fd total 0 lrwx------. 1 root root 64 Oct 6 11:11 0 -> /dev/null lrwx------. 1 root root 64 Oct 6 11:11 1 -> /dev/null lr-x------. 1 root root 64 Oct 6 11:12 10 -> /proc/1/mountinfo lr-x------. 1 root root 64 Oct 6 11:12 11 -> anon_inode:inotify lr-x------. 1 root root 64 Oct 6 11:12 13 -> anon_inode:inotify lr-x------. 1 root root 64 Oct 6 11:12 14 -> /proc/swaps lrwx------. 1 root root 64 Oct 6 11:12 15 -> 'socket:[5419]' lrwx------. 1 root root 64 Oct 6 11:12 16 -> 'socket:[5420]' [..] # ls -l /proc/2/fd total 0 # New kernel: # ls -l /proc/1/fd total 0 lrwx------. 1 root root 64 Oct 6 11:14 0 -> /dev/null lrwx------. 1 root root 64 Oct 6 11:14 1 -> /dev/null lrwx------. 1 root root 64 Oct 6 11:14 2 -> /dev/null lr-x------. 1 root root 64 Oct 6 11:14 3 -> /dev/kmsg # ls -l /proc/2/fd ls: cannot read symbolic link '/proc/2/fd/0': No such file or directory ls: cannot read symbolic link '/proc/2/fd/1': No such file or directory ls: cannot read symbolic link '/proc/2/fd/2': No such file or directory ls: cannot read symbolic link '/proc/2/fd/3': No such file or directory total 0 lrwx------. 1 root root 64 Oct 6 11:14 0 lrwx------. 1 root root 64 Oct 6 11:14 1 lrwx------. 1 root root 64 Oct 6 11:14 2 lr-x------. 1 root root 64 Oct 6 11:14 3