Re: [4.7.0rc6] Page Allocation Failures with dm-crypt

From: Mike Snitzer
Date: Mon Jul 11 2016 - 09:30:57 EST

Inlining reply below after thinking further.

On Mon, Jul 11 2016 at 9:18am -0400,
Mike Snitzer <snitzer@xxxxxxxxxx> wrote:

> On Mon, Jul 11 2016 at 4:31am -0400,
> Matthias Dahl <ml_linux-kernel@xxxxxxxxxxxxxxxx> wrote:
> > Hello,
> >
> > I made a few more tests and here my observations:
> >
> > - kernels 4.4.8 and 4.5.5 show the same behavior
> >
> > - the moment dd starts, memory usage spikes rapidly and within a just
> > a few seconds has filled up all 32 GiB of RAM

But that is expected given you're doing an unbounded buffered write to
the device. What isn't expected, to me anyway, is that the mm subsystem
(or the default knobs for buffered writeback) would be so aggressive
about delaying writeback.

> > - dd w/ direct i/o works just fine

Given that directio works the unbounded buffered IO write you're doing
with dd certainly speaks to that specific area of the mm subsystem.

Why are you doing this test anyway? Such a large buffered write doesn't
seem to accurately model any application I'm aware of (but obviously it
should still "work").

> > - mkfs.ext4 unfortunately shows the same behavior as dd w/o direct i/o
> > and such makes creation of an ext4 fs on dm-crypt a game of luck
> >
> > (much more exposed so with e2fsprogs 1.43.1)

Now that is weird. Are you (or the distro you're using) setting any mm
subsystem tunables to really broken values?

> > I am kind of puzzled that this bug has seemingly gone so long unnoticed
> > since it is rather severe and makes dm-crypt unusable to a certain
> > degree
> > for fs encryption (or at least the initial creation of the fs). Am I
> > missing something here or doing something terribly stupid?
> Not clear. Certainly haven't had any reports of memory leaks with
> dm-crypt. Something must explain the execessive nature of your leak but
> it isn't a known issue.
> Have you tried running with kmemleak enabled?

I'm now doubting this is a leak...