All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shaohua Li <shli@kernel.org>
To: Max Filippov <jcmvbkbc@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>, Jens Axboe <axboe@kernel.dk>,
	Jaegeuk Kim <jaegeuk.kim@samsung.com>,
	linux-f2fs-devel@lists.sourceforge.net, slava@dubeyko.com
Subject: Re: mkfs.f2fs gets stuck with "blk_update_request: bio idx 0 >= vcnt 0" on 3.8
Date: Sun, 7 Apr 2013 09:58:46 +0800	[thread overview]
Message-ID: <20130407015846.GA2232@kernel.org> (raw)
In-Reply-To: <CAMo8Bf+ccoU7jccOsxoyPqo2o8HaHhnuiocoNj1j67+S07aq_g@mail.gmail.com>

On Fri, Apr 05, 2013 at 06:18:10AM +0400, Max Filippov wrote:
> On Fri, Apr 5, 2013 at 5:53 AM, Shaohua Li <shli@kernel.org> wrote:
> > On Thu, Apr 04, 2013 at 06:00:18AM +0400, Max Filippov wrote:
> 
> [...]
> 
> >> the commit 0cfbcafcae8b7364b5fa96c2b26ccde7a3a296a9 'block: add plug
> >> for blkdev_issue_discard'
> >> have added merge opportunity for DISCARD requests. When I do
> >> mkfs.f2fs on a 5G partition (0xad8000 sectors) it submits two bios,
> >> one for 0x7fe000 sectors (0xffc00000 bytes) and another for
> >> 0x2da000 sectors (0x5b400000 bytes). Prior to that commit these
> >> bios weren't merged into one request. Now the second bio gets
> >> merged with the first, but the request's __data_len field is unsigned int
> >> and it gets wrapped to 0x5b000000 bytes instead of 0x15b000000
> >> in the bio_attempt_back_merge. Later this reduced size is passed to
> >> the blk_update_request causing KERN_ERR and not completed
> >> request. Reverting this commit fixes mkfs.f2fs for me.
> >
> > A workaround is setting limits.max_discard_sectors to a smaller value.
> 
> I'm not sure:
> 1) in my case max_discard_sectors is 0x7fe000 (0xffc00000 bytes,
>     which still fits into 32 bits) and
> 2) this parameter will only change size of individual discard requests for
>     the discarded range, but as long as these requests are done inside
>     the plug they will be merged anyway with an overflow if we try
>     to discard more than 4G at once.

No, merge in plug list checks max_discard_sectors. Please see
ll_back_merge_fn() in bio_attempt_back_merge(). Merge in unplug checks
max_discard_sectors too. I didn't see any chance a merge doesn't check
max_discard_sectors. Can you post a blktrace when the discard ioctl runs and
double check if max_discard_sectors is really 0x7fe000?

  parent reply	other threads:[~2013-04-07  1:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-01 17:19 mkfs.f2fs gets stuck with "blk_update_request: bio idx 0 >= vcnt 0" on 3.8 Max Filippov
2013-04-01 19:27 ` Vyacheslav Dubeyko
2013-04-01 20:21   ` Max Filippov
2013-04-02  6:27     ` Vyacheslav Dubeyko
2013-04-02 15:41       ` Max Filippov
2013-04-04  2:00         ` Max Filippov
2013-04-05  1:53           ` Shaohua Li
2013-04-05  2:18             ` Max Filippov
2013-04-05  7:57               ` Namjae Jeon
2013-04-05 15:01                 ` Max Filippov
     [not found]                   ` <CAKYAXd_q2oUiQBoLX77Yurs1OQ5cMACCGSYFOqgjPhxhErp9hA@mail.gmail.com>
     [not found]                     ` <CAMo8BfJd9U+HAPqh-6XThHCXMCP35oLEyMXhYhPX_ZE5utD2LQ@mail.gmail.com>
2013-04-07  2:45                       ` Namjae Jeon
2013-04-07  1:58               ` Shaohua Li [this message]
2013-04-07  2:21                 ` Max Filippov

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=20130407015846.GA2232@kernel.org \
    --to=shli@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=jaegeuk.kim@samsung.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=slava@dubeyko.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 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.