public inbox for linux-bcache@vger.kernel.org
 help / color / mirror / Atom feed
From: Coly Li <colyli@suse.de>
To: linux-bcache@vger.kernel.org, linux-block@vger.kernel.org,
	axboe@kernel.dk
Cc: bcache@lists.ewheeler.net, Tang Junhui <tang.junhui@zte.com.cn>
Subject: [PATCH 08/12] bcache: increase the number of open buckets
Date: Wed,  6 Sep 2017 14:25:58 +0800	[thread overview]
Message-ID: <20170906062602.50497-9-colyli@suse.de> (raw)
In-Reply-To: <20170906062602.50497-1-colyli@suse.de>

From: Tang Junhui <tang.junhui@zte.com.cn>

In currently, we only alloc 6 open buckets for each cache set,
but in usually, we always attach about 10 or so backend devices for
each cache set, and the each bcache device are always accessed by
about 10 or so threads in top application layer. So 6 open buckets
are too few, It has led to that each of the same thread write data
to different buckets, which would cause low efficiency write-back,
and also cause buckets inefficient, and would be Very easy to run
out of.

I add debug message in bch_open_buckets_alloc() to print alloc bucket
info, and test with ten bcache devices with a cache set, and each
bcache device is accessed by ten threads.

From the debug message, we can see that, after the modification, One
bucket is more likely to assign to the same thread, and the data from
the same thread are more likely to write the same bucket. Usually the
same thread always write/read the same backend device, so it is good
for write-back and also promote the usage efficiency of buckets.

Signed-off-by: Tang Junhui <tang.junhui@zte.com.cn>
Reviewed-by: Coly Li <colyli@suse.de>
---
 drivers/md/bcache/alloc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
index ca4abe1ccd8d..cacbe2dbd5c3 100644
--- a/drivers/md/bcache/alloc.c
+++ b/drivers/md/bcache/alloc.c
@@ -68,6 +68,8 @@
 #include <linux/random.h>
 #include <trace/events/bcache.h>
 
+#define MAX_OPEN_BUCKETS 128
+
 /* Bucket heap / gen */
 
 uint8_t bch_inc_gen(struct cache *ca, struct bucket *b)
@@ -671,7 +673,7 @@ int bch_open_buckets_alloc(struct cache_set *c)
 
 	spin_lock_init(&c->data_bucket_lock);
 
-	for (i = 0; i < 6; i++) {
+	for (i = 0; i < MAX_OPEN_BUCKETS; i++) {
 		struct open_bucket *b = kzalloc(sizeof(*b), GFP_KERNEL);
 		if (!b)
 			return -ENOMEM;
-- 
2.13.5

  parent reply	other threads:[~2017-09-06  6:25 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-06  6:25 [PATCH 00/13] bcache: fixes and update for 4.14 Coly Li
2017-09-06  6:25 ` [PATCH 01/12] bcache: Fix leak of bdev reference Coly Li
2017-09-06  6:25 ` [PATCH 02/12] bcache: fix sequential large write IO bypass Coly Li
2017-09-06  6:25 ` [PATCH 03/12] bcache: do not subtract sectors_to_gc for bypassed IO Coly Li
2017-09-06  6:25 ` [PATCH 04/12] bcache: Don't reinvent the wheel but use existing llist API Coly Li
2017-09-26  4:38   ` Michael Lyle
2017-09-26  6:39     ` 박병철/선임연구원/SW Platform(연)AOT팀(byungchul.park@lge.com)
2017-09-26  7:09       ` Coly Li
2017-09-26  7:15         ` 박병철/선임연구원/SW Platform(연)AOT팀(byungchul.park@lge.com)
2017-09-26  7:22           ` Coly Li
2017-09-26  7:08     ` Coly Li
2017-09-26  7:16       ` 박병철/선임연구원/SW Platform(연)AOT팀(byungchul.park@lge.com)
2017-09-26  7:24         ` Coly Li
2017-09-26  7:46     ` Coly Li
2017-09-26 19:55       ` Michael Lyle
2017-09-06  6:25 ` [PATCH 05/12] bcache: gc does not work when triggering by manual command Coly Li
2017-09-06  6:25 ` [PATCH 06/12] bcache: correct cache_dirty_target in __update_writeback_rate() Coly Li
2017-09-06  6:25 ` [PATCH 07/12] bcache: Correct return value for sysfs attach errors Coly Li
2017-09-06  6:25 ` Coly Li [this message]
2017-09-06  6:25 ` [PATCH 09/12] bcache: fix for gc and write-back race Coly Li
2017-09-06  6:26 ` [PATCH 10/12] bcache: silence static checker warning Coly Li
2017-09-06  6:26 ` [PATCH 11/12] bcache: Update continue_at() documentation Coly Li
2017-09-06  6:26 ` [PATCH 12/12] bcache: fix bch_hprint crash and improve output Coly Li
2017-09-06 14:20 ` [PATCH 00/13] bcache: fixes and update for 4.14 Jens Axboe
2017-09-06 15:41   ` Coly Li
2017-09-06 15:46     ` Jens Axboe
2017-09-06 17:38       ` Coly Li
2017-09-07 18:51         ` Eddie Chapman
2017-09-07 19:31           ` Jens Axboe
2017-09-07 19:01         ` Eddie Chapman

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=20170906062602.50497-9-colyli@suse.de \
    --to=colyli@suse.de \
    --cc=axboe@kernel.dk \
    --cc=bcache@lists.ewheeler.net \
    --cc=linux-bcache@vger.kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=tang.junhui@zte.com.cn \
    /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