From: Hubert Kempkensteffen <hubert-39zlLzowylnAQEp6PLVxx6xOck334EZe@public.gmane.org>
To: linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] bcache: Possible flush fix
Date: Wed, 18 Sep 2013 13:57:21 +0000 (UTC) [thread overview]
Message-ID: <loom.20130918T134845-142@post.gmane.org> (raw)
In-Reply-To: 20130917214043.GF32037@kmo-pixel
Kent Overstreet <kmo@...> writes:
>
> Jens suggested that cloning the bio to issue a bare flush might be
> copying some flags we don't want, and at least allocating a new bio
> would be more correct. Worth a shot...
>
> Signed-off-by: Kent Overstreet <kmo@...>
> ---
>
> On Tue, Sep 17, 2013 at 08:54:57PM +0000, Hubert Kempkensteffen wrote:
> > Kent Overstreet <kmo <at> ...> writes:
> > Sorry, my english.
> > I have no raid and no LVM. There are both ordinary machines.
> > And I just want to speed up the data disk!
> >
> > >
> > > I think this bug requires something else in the stack to trigger, I'm
> > > trying to figure out what the common factor is.
>
> Can you give this patch a try?
>
> drivers/md/bcache/request.c | 20 +++++++++++---------
> 1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c
> index afb9a99..c06840b 100644
> --- a/drivers/md/bcache/request.c
> +++ b/drivers/md/bcache/request.c
> <at> <at> -1053,19 +1053,21 <at> <at> static void
request_write(struct cached_dev *dc, struct search *s)
> trace_bcache_writethrough(s->orig_bio);
> closure_bio_submit(bio, cl, s->d);
> } else {
> + s->op.cache_bio = bio;
> trace_bcache_writeback(s->orig_bio);
> bch_writeback_add(dc, bio_sectors(bio));
>
> - if (s->op.flush_journal) {
> + if (bio->bi_rw & REQ_FLUSH) {
> /* Also need to send a flush to the backing device */
> - s->op.cache_bio = bio_clone_bioset(bio, GFP_NOIO,
> - dc->disk.bio_split);
> -
> - bio->bi_size = 0;
> - bio->bi_vcnt = 0;
> - closure_bio_submit(bio, cl, s->d);
> - } else {
> - s->op.cache_bio = bio;
> + struct bio *flush = bio_alloc_bioset(0, GFP_NOIO,
> + dc->disk.bio_split);
> +
> + flush->bi_rw = WRITE_FLUSH;
> + flush->bi_bdev = bio->bi_bdev;
> + flush->bi_end_io = request_endio;
> + flush->bi_private = cl;
> +
> + closure_bio_submit(flush, cl, s->d);
> }
> }
> out:
I am currently testing the patch. (writethrough)
The kernel is: git clone http://evilpiepirate.org/git/linux-bcache.git
I think it's a little bit better.
Up to 7 GB it goes very quickly (less than 10 minutes).
From there he slows down.
But he does not stop.
It looks as if the process sometimes stagnate and then run at once again
quickly.
Now it all already 2 hours for a total of 14 GB and it is not finished yet!
The command "sync" but I have not yet entered.
After the sync will copy even slower, but it goes on.
Only the sync command is not coming back.
I simply wait times is rsync is done or stops.
And then look at me again to sync.
He now has about 13 GB copied after 3 hours.
next prev parent reply other threads:[~2013-09-18 13:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-16 13:07 Bcache hangs with Debian 7 (Wheezy), sync does not come back Hubert Kempkensteffen
[not found] ` <loom.20130916T150548-751-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2013-09-17 2:03 ` Kent Overstreet
2013-09-17 10:23 ` Hubert Kempkensteffen
[not found] ` <loom.20130917T122135-908-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2013-09-17 20:37 ` Kent Overstreet
2013-09-17 20:54 ` Hubert Kempkensteffen
[not found] ` <loom.20130917T224603-574-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2013-09-17 21:15 ` Josep Lladonosa
2013-09-17 21:34 ` Kent Overstreet
2013-09-17 21:40 ` [PATCH] bcache: Possible flush fix Kent Overstreet
2013-09-18 13:57 ` Hubert Kempkensteffen [this message]
[not found] ` <loom.20130918T134845-142-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2013-09-18 20:28 ` Kent Overstreet
2013-09-18 20:39 ` Hubert Kempkensteffen
[not found] ` <loom.20130918T223347-893-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2013-09-18 20:43 ` Kent Overstreet
2013-09-18 21:28 ` Hubert Kempkensteffen
2013-09-19 8:52 ` Hubert Kempkensteffen
2013-09-19 18:26 ` Hubert Kempkensteffen
[not found] ` <loom.20130919T202224-113-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2013-10-13 20:54 ` Rolf Fokkens
2013-09-18 17:05 ` Hubert Kempkensteffen
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=loom.20130918T134845-142@post.gmane.org \
--to=hubert-39zllzowylnaqep6plvxx6xock334eze@public.gmane.org \
--cc=linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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