linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shaohua Li <shli@kernel.org>
To: Song Liu <songliubraving@fb.com>
Cc: linux-raid@vger.kernel.org, neilb@suse.com, shli@fb.com,
	kernel-team@fb.com, dan.j.williams@intel.com, hch@infradead.org,
	liuzhengyuang521@gmail.com, liuzhengyuan@kylinos.cn
Subject: Re: [PATCH v7 00/10] raid5-cache: enabling cache features
Date: Fri, 18 Nov 2016 13:22:48 -0800	[thread overview]
Message-ID: <20161118212248.fabrldq5r5xclly4@kernel.org> (raw)
In-Reply-To: <20161117232445.1798305-1-songliubraving@fb.com>

On Thu, Nov 17, 2016 at 03:24:35PM -0800, Song Liu wrote:
> These are the 7th version of patches to enable write cache part of
> raid5-cache. The journal part was released with kernel 4.4.
> 
> The caching part uses same disk format of raid456 journal, and provides
> acceleration to writes. Write operations are committed (bio_endio) once
> the data is secured in journal. Reconstruct and RMW are postponed to
> writing-out phase, which is usually not on the critical path.
> 
> The changes are organized in 10 patches (details below).
> 
> Patch for chunk_aligned_read in earlier RFC is not included yet
> (http://marc.info/?l=linux-raid&m=146432700719277). But we may still need
> some optimizations later, especially for SSD raid devices.
> 
> Changes between v7 and v6 (http://marc.info/?l=linux-raid&m=147881079931937):
>  1. Incorprate feedbacks;
>  2. Modify representation of write-back state machine to use STRIPE_R5C_CACHING
>     instead of STRIPE_R5C_WRITE_OUT. This reduces state trasitions in
>     write-through mode;
>  3. For prexor, allocate extra orig_page instead of page;
>  4. Rename and refactor of some functions and variables;
>  5. Remove path 11 (handle alloc_page failure). I will propose a simpler retry
>     patch later.

Thanks for doing this, Song! And thanks Neil for the code review! I think this
series are in good shape. We do have a lot of todo stuffes to make these work
well, but we can always improve based on these. And since the default setting
is write-through, there should be no regression (hopefully). I'm going to apply
them to my for-next tree. If you have further bug fixes/improvements, please do
them against the for-next tree.

I don't apply the last patch though. That one doesn't work well for !write-back
case (sorry, didn't notice it in last review), as for write-through, we don't
need do any flush/fua. Please send an updated patch, I'll apply.

I'll list the todo here so we don't forget:
- makes read not enter state machine
- write checkpoint block to make recovery faster
- improve recovery
- handle memory allocation failure
- allow removing journal capability if journal disk fails

And of course performance tuning.

Thanks,
Shaohua 

      parent reply	other threads:[~2016-11-18 21:22 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-17 23:24 [PATCH v7 00/10] raid5-cache: enabling cache features Song Liu
2016-11-17 23:24 ` [PATCH v7 01/10] md/r5cache: Check array size in r5l_init_log Song Liu
2016-11-17 23:24 ` [PATCH v7 02/10] md/r5cache: move some code to raid5.h Song Liu
2016-11-17 23:24 ` [PATCH v7 03/10] md/r5cache: State machine for raid5-cache write back mode Song Liu
2016-11-17 23:24 ` [PATCH v7 04/10] md/r5cache: caching phase of r5cache Song Liu
2016-11-17 23:24 ` [PATCH v7 05/10] md/r5cache: write-out phase and reclaim support Song Liu
2016-11-17 23:24 ` [PATCH v7 06/10] md/r5cache: sysfs entry journal_mode Song Liu
2016-11-17 23:24 ` [PATCH v7 07/10] md/r5cache: refactoring journal recovery code Song Liu
2016-11-17 23:24 ` [PATCH v7 08/10] md/r5cache: r5cache recovery: part 1 Song Liu
2016-11-17 23:24 ` [PATCH v7 09/10] md/r5cache: r5cache recovery: part 2 Song Liu
2016-11-17 23:24 ` [PATCH v7 10/10] md/r5cache: handle SYNC and FUA Song Liu
2016-11-18 21:22 ` Shaohua Li [this message]

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=20161118212248.fabrldq5r5xclly4@kernel.org \
    --to=shli@kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=hch@infradead.org \
    --cc=kernel-team@fb.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=liuzhengyuan@kylinos.cn \
    --cc=liuzhengyuang521@gmail.com \
    --cc=neilb@suse.com \
    --cc=shli@fb.com \
    --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 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).