Re: ext4 corruption on alpha with 4.20.0-09062-gd8372ba8ce28

Jan Kara
2022-08-26T10:55:21Z

On Thu 25-08-22 11:05:48, matoro wrote:
> Hello all, I know this is quite an old thread. I recently acquired some
> alpha hardware and have run into this exact same problem on the latest
> stable kernel (5.18 and 5.19). CONFIG_COMPACTION seems to be totally broken
> and causes userspace to be extremely unstable - random segfaults, corruption
> of glibc data structures, gcc ICEs etc etc - seems most noticable during
> tasks with heavy I/O load.
>
> My hardware is a DS15 (Titan), so only slightly newer than the Tsunamis
> mentioned earlier. The problem is greatly exacerbated when using a
> machine-optimized kernel (CONFIG_ALPHA_TITAN) over one with
> CONFIG_ALPHA_GENERIC. But it still doesn't go away on a generic kernel,
> just pops up less often, usually very I/O heavy tasks like checking out a
> tag in the kernel repo.
>
> However all of this seems to be dependent on CONFIG_COMPACTION. With this
> toggled off all problems disappear, regardless of other options. I tried
> reverting the commit 88dbcbb3a4847f5e6dfeae952d3105497700c128 mentioned
> earlier in the thread (the structure has moved to a different file but was
> otherwise the same), but it unfortunately did not make a difference.
>
> Since this doesn't seem to have a known cause or an easy fix, would it be
> reasonable to just add a Kconfig dep to disable it automatically on alpha?

Thanks for report. I guess this just confirms that migration of pagecache
pages is somehow broken on Alpha. Maybe we are missing to flush some cache
specific for Alpha? Or maybe the page migration code is not safe wrt the
peculiar memory ordering Alpha has... I think this will need someone with
Alpha HW and willingness to dive into MM internals to debug this. Added
Vlasta to CC mostly for awareness and in case it rings some bells :).

Honza

> -------- Original Message --------
> Subject: Re: ext4 corruption on alpha with 4.20.0-09062-gd8372ba8ce28
> Date: 2019-02-21 08:29
> From: Jan Kara <jack@suse.cz>
> To: Meelis Roos <mroos@linux.ee>
>
> On Thu 21-02-19 01:23:50, Meelis Roos wrote:
> > > > First, I found out that both the problematic alphas had memory compaction and
> > > > page migration and bounce buffers turned on, and working alphas had them off.
> > > >
> > > > Next, turing off these options makes the problematic alphas work.
> > >
> > > OK, thanks for testing! Can you narrow down whether the problem is due to
> > > CONFIG_BOUNCE or CONFIG_MIGRATION + CONFIG_COMPACTION? These are two
> > > completely different things so knowing where to look will help. Thanks!
> >
> > Tested both.
> >
> > Just CONFIG_MIGRATION + CONFIG_COMPACTION breaks the alpha.
> > Just CONFIG_BOUNCE has no effect in 5 tries.
>
> OK, so page migration is problematic. Thanks for confirmation!
>
> Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR