linux-lvm.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@redhat.com>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Cc: axboe@kernel.dk, Lukas Czerner <lczerner@redhat.com>,
	Joe Thornber <thornber@redhat.com>,
	linux-lvm@redhat.com
Subject: Re: [linux-lvm] [BUG?] OOM executing blkdiscard on a thin lv
Date: Wed, 26 Nov 2014 10:06:17 -0500	[thread overview]
Message-ID: <20141126150617.GA30136@redhat.com> (raw)
In-Reply-To: <54758746.3000701@cn.fujitsu.com>

On Wed, Nov 26 2014 at  2:54am -0500,
Qu Wenruo <quwenruo@cn.fujitsu.com> wrote:

> Hi,
> 
> [Bug]
> When I try to discard the whole thin lv using blkdiscard, an OOM
> occurs and I lost my ssh connection.
> TTY login also fails to start, although kernel and network still
> looks alive but no way to login into the system.
> Have to reboot.
> 
> Not sure if this is a bug in blkdiscard or lvm.

It is a bug in the kernel's blkdev_issue_discard() for allowing too many
inflight bios at once.  We probably should add an upper bound for how
many inflight discard bios blkdev_issue_discard() will allow at any one
time.

Reason why so many discard bios are being issued is that the DM thin
device currently only allows a discard as large as the DM thin-pool's
configured blocksize.  So if you're using something like a 64K or
whatever for the thin-pool blocksize then divide your 1TB thin lv by
that value and you can quickly see why it takes so may discard bios to
cover the entire logical address space of the 1TB thin device.

Some good news is that Joe has been working on range (multi block)
discard support to allow for very large discards to be issued to DM thin
devices.  He is focusing on getting this working on dm-cache at the
moment but once that is complete bringing it to dm-thin is next.  It is
a stretch goal to have that land in time for 3.19 merge window (but it
is quickly approaching so it may need to wait for 3.20).

> [lvs output]
>   LV       VG           Attr       LSize  Pool     Origin Data% Move
> Log Cpy%Sync Convert
>   disk1    test_vg      Vwi-a-tz--  1.00t thinpool 0.77
>   thinpool test_vg      twi-a-tz-- 30.00g 26.28
> 
> [Reproducer]
> 1. Make a thin pool with 30G space.
> 2. Create 1T thin lv from the thin pool created in 1.
> 3. Do some operation to occupy some space in thin lv
> 4. Exec blkdiscard on the thin lv
> 
> [Related package version]
> kernel-3.17.3-200.fc20.x86_64
> lvm2-2.02.106-1.fc20.x86_64
> util-linux-2.24.2-1.fc20.x86_64
> 
> [How to discard thin lv]
> BTW, what's the proper method to discard all allocated space for a thin lv?
> Lvremove and lvcreate?!

Moving forward it'll be a new tool that Joe wrote called thin_trim:
https://github.com/jthornber/thin-provisioning-tools/commit/8e921580554ed91e84bb68ea32a8c2ea47ad6ff3

But that code hasn't been fully tested and included in the
device-mapper-persistent-data package yet.

  reply	other threads:[~2014-11-26 15:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-26  7:54 [linux-lvm] [BUG?] OOM executing blkdiscardon a thin lv Qu Wenruo
2014-11-26 15:06 ` Mike Snitzer [this message]
2014-11-27  0:32   ` [linux-lvm] [BUG?] OOM executing blkdiscard on " Qu Wenruo

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=20141126150617.GA30136@redhat.com \
    --to=snitzer@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=lczerner@redhat.com \
    --cc=linux-lvm@redhat.com \
    --cc=quwenruo@cn.fujitsu.com \
    --cc=thornber@redhat.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).