From: Shaohua Li <shli@fb.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: linux-raid@vger.kernel.org, Kernel-team@fb.com,
songliubraving@fb.com, dan.j.williams@intel.com, neilb@suse.de
Subject: Re: [PATCH 0/5] a caching layer for raid 5/6
Date: Mon, 11 May 2015 09:03:51 -0700 [thread overview]
Message-ID: <20150511160349.GA545551@devbig257.prn2.facebook.com> (raw)
In-Reply-To: <20150511122347.GA5082@infradead.org>
On Mon, May 11, 2015 at 05:23:47AM -0700, Christoph Hellwig wrote:
> Hi Shaohua,
>
> here are a couple of notes from reading through the code in a bit more
> detail:
>
Thanks for your time.
> Error retries:
> - What is the reason for retry_bio_list? If a driver returns an
> I/O error to the higher levels it already has retried and came
> to the conclusion this is a permanent error.
The retry_bio_list is to handle io to cache disk. If IO to cache disk
has error, it's not a permanent error here. The cache disk is a cache,
We can still dispatch the IO to its final destination, the raid disks.
> Flushes:
> - no need to allocate a task here
> - no real need to clone the bio either
clone the bio makes the IO retry easier.
> Tasks:
> - the completion argument passed to r5l_queue_bio is always the same,
> the code would be a lot simpler by removing this abstraction.
> - that would also allow allocating the task embedded in the range
> and cut down on memory allocations
Yep, my original idea is the stuff handling caching (r5c*) doesn't need
to know the detail of log device. I'll look this again to check if this
is a over-design.
> - we're not really manipulating the bio payload, so shouldn't a
> _fast cone be fine here?
> In fact why do we clone the bio at all?
The cache disk drive might manipulate the bio payload. The problem is
really why we clone the bio. You are right we don't need to clone the
bio at normal case. The exception is IO error. IO to the cache disk can
fail. In that case, we will try to skip cache disk and dispatch IO to
raid disks directly, which is the retry. Since cache disk driver might
already manipulate the bio, cloning a bio makes retry easier.
> - r5l_queue_task should probably be split into two helpers
> for data vs parity
> - r5l_queue_bio and r5c_copy_bio should probably use bvec iterators
> - r5l_run_task does very different things for data vs metadata,
> it's proably better it.
I'll check these.
>
> Allocations:
> - most metadata pages are allocated as highmem leading to
> constant kmap/kunmap. Maybe just allocate them as GFP_KERNEL
> to simplify things?
Sounds good.
> Misc:
> - where does the ioctl in r5l_ioctl anѕ associated functions come
> from? There are not ioctls handler here so the naming seems
> rather confusing.
Ah, it manages an io really, I'll change a name.
Thanks,
Shaohua
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-05-11 16:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-06 23:57 [PATCH 0/5] a caching layer for raid 5/6 Shaohua Li
2015-05-06 23:57 ` [PATCH 1/5] MD: add a new disk role to present cache device Shaohua Li
2015-05-06 23:57 ` [PATCH 2/5] raid5: directly use mddev->queue Shaohua Li
2015-05-06 23:57 ` [PATCH 3/5] A caching layer for RAID5/6 Shaohua Li
2015-05-07 16:52 ` Christoph Hellwig
2015-05-06 23:57 ` [PATCH 4/5] raid5-cache: add some sysfs entries Shaohua Li
2015-05-06 23:57 ` [PATCH 5/5] md: don't allow resize/reshape with cache support Shaohua Li
2015-05-11 12:23 ` [PATCH 0/5] a caching layer for raid 5/6 Christoph Hellwig
2015-05-11 16:03 ` Shaohua Li [this message]
2015-05-12 7:18 ` Christoph Hellwig
2015-05-12 15:23 ` Shaohua Li
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=20150511160349.GA545551@devbig257.prn2.facebook.com \
--to=shli@fb.com \
--cc=Kernel-team@fb.com \
--cc=dan.j.williams@intel.com \
--cc=hch@infradead.org \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
--cc=songliubraving@fb.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.