linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	pjaroszynski@nvidia.com, william.kucharski@oracle.com,
	stable@vger.kernel.org, hch@lst.de, akpm@linux-foundation.org,
	torvalds@linux-foundation.org
Subject: Re: [PATCH] iomap: Revert "fs/iomap.c: get/put the page in iomap_page_create/release()"
Date: Thu, 20 Dec 2018 13:28:25 +0100	[thread overview]
Message-ID: <20181220122825.GA17138@kroah.com> (raw)
In-Reply-To: <20181220122324.17082-1-david@fromorbit.com>

On Thu, Dec 20, 2018 at 11:23:24PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> This reverts commit 61c6de667263184125d5ca75e894fcad632b0dd3.
> 
> The reverted commit added page reference counting to iomap page
> structures that are used to track block size < page size state. This
> was supposed to align the code with page migration page accounting
> assumptions, but what it has done instead is break XFS filesystems.
> Every fstests run I've done on sub-page block size XFS filesystems
> has since picking up this commit 2 days ago has failed with bad page
> state errors such as:
> 
> # ./run_check.sh "-m rmapbt=1,reflink=1 -i sparse=1 -b size=1k" "generic/038"
> ....
> SECTION       -- xfs
> FSTYP         -- xfs (debug)
> PLATFORM      -- Linux/x86_64 test1 4.20.0-rc6-dgc+
> MKFS_OPTIONS  -- -f -m rmapbt=1,reflink=1 -i sparse=1 -b size=1k /dev/sdc
> MOUNT_OPTIONS -- /dev/sdc /mnt/scratch
> 
> generic/038 454s ...
>  run fstests generic/038 at 2018-12-20 18:43:05
>  XFS (sdc): Unmounting Filesystem
>  XFS (sdc): Mounting V5 Filesystem
>  XFS (sdc): Ending clean mount
>  BUG: Bad page state in process kswapd0  pfn:3a7fa
>  page:ffffea0000ccbeb0 count:0 mapcount:0 mapping:ffff88800d9b6360 index:0x1
>  flags: 0xfffffc0000000()
>  raw: 000fffffc0000000 dead000000000100 dead000000000200 ffff88800d9b6360
>  raw: 0000000000000001 0000000000000000 00000000ffffffff
>  page dumped because: non-NULL mapping
>  CPU: 0 PID: 676 Comm: kswapd0 Not tainted 4.20.0-rc6-dgc+ #915
>  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.1-1 04/01/2014
>  Call Trace:
>   dump_stack+0x67/0x90
>   bad_page.cold.116+0x8a/0xbd
>   free_pcppages_bulk+0x4bf/0x6a0
>   free_unref_page_list+0x10f/0x1f0
>   shrink_page_list+0x49d/0xf50
>   shrink_inactive_list+0x19d/0x3b0
>   shrink_node_memcg.constprop.77+0x398/0x690
>   ? shrink_slab.constprop.81+0x278/0x3f0
>   shrink_node+0x7a/0x2f0
>   kswapd+0x34b/0x6d0
>   ? node_reclaim+0x240/0x240
>   kthread+0x11f/0x140
>   ? __kthread_bind_mask+0x60/0x60
>   ret_from_fork+0x24/0x30
>  Disabling lock debugging due to kernel taint
> ....
> 
> The failures are from anyway that frees pages and empties the
> per-cpu page magazines, so it's not a predictable failure or an easy
> to debug failure.
> 
> generic/038 is a reliable reproducer of this problem - it has a 9 in
> 10 failure rate on one of my test machines. Failure on other
> machines have been at random points in fstests runs but every run
> has ended up tripping this problem. Hence generic/038 was used to
> bisect the failure because it was the most reliable failure.
> 
> It is too close to the 4.20 release (not to mention holidays) to
> try to diagnose, fix and test the underlying cause of the problem,
> so reverting the commit is the only option we have right now. The
> revert has been tested against a current tot 4.20-rc7+ kernel across
> multiple machines running sub-page block size XFs filesystems and
> none of the bad page state failures have been seen.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
>  fs/iomap.c | 7 -------
>  1 file changed, 7 deletions(-)

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

  reply	other threads:[~2018-12-20 12:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-20 12:23 [PATCH] iomap: Revert "fs/iomap.c: get/put the page in iomap_page_create/release()" Dave Chinner
2018-12-20 12:28 ` Greg KH [this message]
2018-12-20 20:57   ` Dave Chinner
2018-12-21  7:40     ` Greg KH
2018-12-21 22:06       ` Eric Sandeen
2018-12-22  0:04       ` Sasha Levin
2018-12-20 17:41 ` Christoph Hellwig
2018-12-20 20:53   ` Dave Chinner
2018-12-20 22:42     ` Linus Torvalds
2018-12-21  9:39       ` Christoph Hellwig
2018-12-21 19:18         ` Linus Torvalds
2018-12-21 19:20           ` Christoph Hellwig
2018-12-21 19:26             ` Linus Torvalds
2018-12-21 21:58           ` Dave Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181220122825.GA17138@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=david@fromorbit.com \
    --cc=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=pjaroszynski@nvidia.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=william.kucharski@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).