Re: [git pull] vfs.git sysv pile

From: Fabio M. De Francesco
Date: Thu Mar 09 2023 - 08:45:33 EST


On mercoledì 8 marzo 2023 18:40:44 CET Fabio M. De Francesco wrote:
> On giovedì 2 marzo 2023 20:35:59 CET Al Viro wrote:
>
> [...]
>
> > Frankly, ext2 patchset had been more along the lines of "here's what
> > untangling the calling conventions in ext2 would probably look like" than
> > anything else. If you are willing to test (and review) that sucker and it
> > turns out to be OK, I'll be happy to slap your tested-by on those during
> > rebase and feed them to Jan...
>
> I git-clone(d) and built your "vfs" tree, branch #work.ext2, without and
with
> the following commits:
>
> f5b399373756 ("ext2: use offset_in_page() instead of open-coding it as
> subtraction")
>
> c7248e221fb5 ("ext2_get_page(): saner type")
>
> 470e54a09898 ("ext2_put_page(): accept any pointer within the page")
>
> 15abcc147cf7 ("ext2_{set_link,delete_entry}(): don't bother with page_addr")
>
> 16a5ee2027b7 ("ext2_find_entry()/ext2_dotdot(): callers don't need page_addr
> anymore")
>
> Then I read the code and FWIW the five patches look good to me. I think they
> can work properly.
>
> Therefore, if you want to, please feel free to add my "Reviewed-by" tag (OK,
I
> know that you don't need my reviews, since you are the one who taught me how
> to write patches like yours for sysv and ufs :-)).
>
> As a personal preference, in ext2_get_page() I'd move the two lines of code
> from the "fail" label to the same 'if' block where you have the "goto
fail;",
> mainly because that label is only reachable from there. However, it does not
> matter at all because I'm only expressing my personal preference.
>
> I ran `./check -g quick` without your patches in a QEMU/KVM x86_32 VM, 6GB
> RAM, running a Kernel with HIGHMEM64GB enabled. I ran it three or four times
> because it kept on hanging at random tests' numbers.
>
> I'm noticing the same pattern due to the oom killer kicking in several times
> to kill processes until xfstests its is dead.
>
> [ 1171.795551] Out of memory: Killed process 1669 (xdg-desktop-por) total-
vm:
> 105068kB, anon-rss:9792kB, file-rss:10972kB, shmem-rss:0kB, UID:1000
pgtables:
> 136kB oom_score_adj:200
> [ 1172.339920] systemd invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL),
> order=0, oom_score_adj=100
> [ 1172.339927] CPU: 3 PID: 1413 Comm: systemd Tainted: G S W E
> 6.3.0-rc1-x86-32-debug+ #1
> [ 1172.339929] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
> rel-1.16.0-0-gd239552-rebuilt.opensuse.org 04/01/2014
> [ 1172.339931] Call Trace:
> [ 1172.339934] dump_stack_lvl+0x92/0xd4
> [ 1172.339939] dump_stack+0xd/0x10
> [ 1172.339941] dump_header+0x42/0x454
> [ 1172.339945] ? ___ratelimit+0x6f/0x140
> [ 1172.339948] oom_kill_process+0xe9/0x244
> [ 1172.339950] out_of_memory+0xf6/0x424
>
> I have not enough experience to understand why we get to that out-of-memory
> condition, so that several processes get killed. I can send the whole
decoded
> stack trace and other information to whoever can look at this issue to
figure
> out how to fix this big issue. I can try to bisect this issue too, but I
need
> time because of other commitments and a slow system for building the
necessary
> kernels.
>
> I want to stress that it does not depend on the above-mentioned patches.
Yes,
> I'm running Al's "vfs" tree, #work.ext2 branch, but with one only patch
beyond
> the merge with Linus' tree:
>
> 522dad1 ext2_rename(): set_link and delete_entry may fail
>
> I have no means to test this tree. However, I think that I'd have the same
> issue with Linus' tree too, unless this issue is due to the only commit not
> yet there (I strongly doubt about this possibility).
>
> Thanks,
>
> Fabio

I want to confirm that running xfstests on the most recent SUSE Kernel doesn't
trigger the OOM Killer. It only fails 16 of 597 tests. I suppose that those 16
failures are expected to happen.

The kernel provided by openSUSE Tumbleweed is...

uname -a
Linux tweed32 6.2.1-1-pae #1 SMP PREEMPT_DYNAMIC Mon Feb 27 11:39:51 UTC 2023
(69e0e95) i686 athlon i386 GNU/Linux

I'll try a bisection as soon as possible.

Fabio