All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: SeongJae Park <sjpark@amazon.com>
Cc: <konrad.wilk@oracle.com>, <axboe@kernel.dk>,
	<xen-devel@lists.xenproject.org>, <linux-block@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, SeongJae Park <sjpark@amazon.de>
Subject: Re: [PATCH] xen/blkback: Avoid unmapping unmapped grant pages
Date: Wed, 27 Nov 2019 10:13:14 +0100	[thread overview]
Message-ID: <20191127091314.GK980@Air-de-Roger> (raw)
In-Reply-To: <20191126153605.27564-1-sjpark@amazon.com>

On Tue, Nov 26, 2019 at 04:36:05PM +0100, SeongJae Park wrote:
> From: SeongJae Park <sjpark@amazon.de>
> 
> For each I/O request, blkback first maps the foreign pages for the
> request to its local pages.  If an allocation of a local page for the
> mapping fails, it should unmap every mapping already made for the
> request.
> 
> However, blkback's handling mechanism for the allocation failure does
> not mark the remaining foreign pages as unmapped.  Therefore, the unmap
> function merely tries to unmap every valid grant page for the request,
> including the pages not mapped due to the allocation failure.  On a
> system that fails the allocation frequently, this problem leads to
> following kernel crash.
> 
>   [  372.012538] BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
>   [  372.012546] IP: [<ffffffff814071ac>] gnttab_unmap_refs.part.7+0x1c/0x40
>   [  372.012557] PGD 16f3e9067 PUD 16426e067 PMD 0
>   [  372.012562] Oops: 0002 [#1] SMP
>   [  372.012566] Modules linked in: act_police sch_ingress cls_u32
>   ...
>   [  372.012746] Call Trace:
>   [  372.012752]  [<ffffffff81407204>] gnttab_unmap_refs+0x34/0x40
>   [  372.012759]  [<ffffffffa0335ae3>] xen_blkbk_unmap+0x83/0x150 [xen_blkback]
>   ...
>   [  372.012802]  [<ffffffffa0336c50>] dispatch_rw_block_io+0x970/0x980 [xen_blkback]
>   ...
>   Decompressing Linux... Parsing ELF... done.
>   Booting the kernel.
>   [    0.000000] Initializing cgroup subsys cpuset
> 
> This commit fixes this problem by marking the grant pages of the given
> request that didn't mapped due to the allocation failure as invalid.
> 
> Fixes: c6cc142dac52 ("xen-blkback: use balloon pages for all mappings")
> 
> Signed-off-by: SeongJae Park <sjpark@amazon.de>
> Reviewed-by: David Woodhouse <dwmw@amazon.de>
> Reviewed-by: Maximilian Heyne <mheyne@amazon.de>
> Reviewed-by: Paul Durrant <pdurrant@amazon.co.uk>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.

WARNING: multiple messages have this Message-ID (diff)
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: SeongJae Park <sjpark@amazon.com>
Cc: axboe@kernel.dk, konrad.wilk@oracle.com,
	SeongJae Park <sjpark@amazon.de>,
	linux-kernel@vger.kernel.org, linux-block@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [Xen-devel] [PATCH] xen/blkback: Avoid unmapping unmapped grant pages
Date: Wed, 27 Nov 2019 10:13:14 +0100	[thread overview]
Message-ID: <20191127091314.GK980@Air-de-Roger> (raw)
In-Reply-To: <20191126153605.27564-1-sjpark@amazon.com>

On Tue, Nov 26, 2019 at 04:36:05PM +0100, SeongJae Park wrote:
> From: SeongJae Park <sjpark@amazon.de>
> 
> For each I/O request, blkback first maps the foreign pages for the
> request to its local pages.  If an allocation of a local page for the
> mapping fails, it should unmap every mapping already made for the
> request.
> 
> However, blkback's handling mechanism for the allocation failure does
> not mark the remaining foreign pages as unmapped.  Therefore, the unmap
> function merely tries to unmap every valid grant page for the request,
> including the pages not mapped due to the allocation failure.  On a
> system that fails the allocation frequently, this problem leads to
> following kernel crash.
> 
>   [  372.012538] BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
>   [  372.012546] IP: [<ffffffff814071ac>] gnttab_unmap_refs.part.7+0x1c/0x40
>   [  372.012557] PGD 16f3e9067 PUD 16426e067 PMD 0
>   [  372.012562] Oops: 0002 [#1] SMP
>   [  372.012566] Modules linked in: act_police sch_ingress cls_u32
>   ...
>   [  372.012746] Call Trace:
>   [  372.012752]  [<ffffffff81407204>] gnttab_unmap_refs+0x34/0x40
>   [  372.012759]  [<ffffffffa0335ae3>] xen_blkbk_unmap+0x83/0x150 [xen_blkback]
>   ...
>   [  372.012802]  [<ffffffffa0336c50>] dispatch_rw_block_io+0x970/0x980 [xen_blkback]
>   ...
>   Decompressing Linux... Parsing ELF... done.
>   Booting the kernel.
>   [    0.000000] Initializing cgroup subsys cpuset
> 
> This commit fixes this problem by marking the grant pages of the given
> request that didn't mapped due to the allocation failure as invalid.
> 
> Fixes: c6cc142dac52 ("xen-blkback: use balloon pages for all mappings")
> 
> Signed-off-by: SeongJae Park <sjpark@amazon.de>
> Reviewed-by: David Woodhouse <dwmw@amazon.de>
> Reviewed-by: Maximilian Heyne <mheyne@amazon.de>
> Reviewed-by: Paul Durrant <pdurrant@amazon.co.uk>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2019-11-27  9:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-26 15:36 [PATCH] xen/blkback: Avoid unmapping unmapped grant pages SeongJae Park
2019-11-26 15:36 ` [Xen-devel] " SeongJae Park
2019-11-27  9:13 ` Roger Pau Monné [this message]
2019-11-27  9:13   ` Roger Pau Monné
2019-12-03 14:33   ` sjpark
2019-12-03 14:33     ` [Xen-devel] " sjpark
2019-12-03 21:03 ` Jens Axboe
2019-12-03 21:03   ` [Xen-devel] " Jens Axboe

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=20191127091314.GK980@Air-de-Roger \
    --to=roger.pau@citrix.com \
    --cc=axboe@kernel.dk \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sjpark@amazon.com \
    --cc=sjpark@amazon.de \
    --cc=xen-devel@lists.xenproject.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.