All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anand Jain <anand.jain@oracle.com>
To: dsterba@suse.cz, linux-btrfs@vger.kernel.org, quwenruo@cn.fujitsu.com
Subject: Re: [PATCH 2/4] btrfs: Communicate back ENOMEM when it occurs
Date: Wed, 29 Mar 2017 18:00:48 +0800	[thread overview]
Message-ID: <77251288-c6e6-cdd7-1a60-3cf3d46ee4d0@oracle.com> (raw)
In-Reply-To: <20170328153842.GA4781@twin.jikos.cz>



On 03/28/2017 11:38 PM, David Sterba wrote:
> On Mon, Mar 13, 2017 at 03:42:12PM +0800, Anand Jain wrote:
>> The only error that write dev flush (send) will fail is due
>> to the ENOMEM then, as its not a device specific error and
>> rather a system wide issue, we should rather stop further
>> iterations and perpetuate the -ENOMEM error to the caller.
>
> I think we should try harder, as flushing is a critical operation and a
> simple yet unlikely memory allocation failure should not stop it.
>
> The device::flush_bio is being allocated each time we start flush and
> freed afterwards. This seems unnecessary. The proper fix IMO is to
> preallocate the bio at the time the device is added to the list. The bio
> lifetime is same as the device'.


  I agree. Also as we are using an empty bio with
  the REQ_PREFLUSH flag we have the opportunity to use
  blkdev_issue_flush() instead. And bio is in fact
  does the prealloc part.
  Will use blkdev_issue_flush() and submit the patch
  again.

Thanks, Anand


  reply	other threads:[~2017-03-29  9:55 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-13  7:42 [PATCH 0/4] cleanup barrier_all_devices() Anand Jain
2017-03-13  7:42 ` [PATCH 1/4] btrfs: REQ_PREFLUSH does not use btrfs_end_bio() completion callback Anand Jain
2017-03-28 15:19   ` David Sterba
2017-03-29 10:00     ` Anand Jain
2017-03-30 10:57       ` Anand Jain
2017-03-13  7:42 ` [PATCH 2/4] btrfs: Communicate back ENOMEM when it occurs Anand Jain
2017-03-14  8:49   ` Qu Wenruo
2017-03-28 15:38   ` David Sterba
2017-03-29 10:00     ` Anand Jain [this message]
2017-03-13  7:42 ` [PATCH 3/4] btrfs: cleanup barrier_all_devices() unify dev error count Anand Jain
2017-03-14  8:53   ` Qu Wenruo
2017-03-13  7:42 ` [PATCH 4/4] btrfs: cleanup barrier_all_devices() to check dev stat flush error Anand Jain
2017-03-13  9:05   ` Qu Wenruo
2017-03-13 16:21     ` Anand Jain
2017-03-14  0:28       ` Qu Wenruo
2017-03-14  3:36         ` Anand Jain
2017-03-14  8:26   ` [PATCH V2 " Anand Jain
2017-03-14  8:47     ` Qu Wenruo
2017-03-28 16:19     ` David Sterba
2017-03-29 10:00       ` Anand Jain
2017-03-31 11:36   ` [PATCH 4/4 V2] " Anand Jain
2017-04-05  4:07   ` [PATCH 4/4 V3] " Anand Jain

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=77251288-c6e6-cdd7-1a60-3cf3d46ee4d0@oracle.com \
    --to=anand.jain@oracle.com \
    --cc=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=quwenruo@cn.fujitsu.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.