* [PATCH 1/3] bcache: For back device, stripe_size get the small value between "1 << 31" and the io_opt of request_queue of back device.
@ 2014-01-08 11:39 majianpeng
2014-01-08 21:33 ` Kent Overstreet
0 siblings, 1 reply; 2+ messages in thread
From: majianpeng @ 2014-01-08 11:39 UTC (permalink / raw)
To: kmo; +Cc: linux-bcache
Let's the stripe_size of back device is io_opt of request_queue make
good sense.
Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
---
drivers/md/bcache/super.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index c57bfa0..21f77c1 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -759,11 +759,15 @@ static int bcache_device_init(struct bcache_device *d, unsigned block_size,
sector_t sectors)
{
struct request_queue *q;
+ struct cached_dev *dc;
size_t n;
int minor;
+ dc = container_of(d, struct cached_dev, disk);
+ q = bdev_get_queue(dc->bdev);
+
if (!d->stripe_size)
- d->stripe_size = 1 << 31;
+ d->stripe_size = min_t(unsigned, 1 << 31, q->limits.io_opt);
d->nr_stripes = DIV_ROUND_UP_ULL(sectors, d->stripe_size);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 1/3] bcache: For back device, stripe_size get the small value between "1 << 31" and the io_opt of request_queue of back device.
2014-01-08 11:39 [PATCH 1/3] bcache: For back device, stripe_size get the small value between "1 << 31" and the io_opt of request_queue of back device majianpeng
@ 2014-01-08 21:33 ` Kent Overstreet
0 siblings, 0 replies; 2+ messages in thread
From: Kent Overstreet @ 2014-01-08 21:33 UTC (permalink / raw)
To: majianpeng; +Cc: linux-bcache
On Wed, Jan 08, 2014 at 07:39:21PM +0800, majianpeng wrote:
> Let's the stripe_size of back device is io_opt of request_queue make
> good sense.
>
> Signed-off-by: Jianpeng Ma <majianpeng@gmail.com>
> ---
> drivers/md/bcache/super.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
> index c57bfa0..21f77c1 100644
> --- a/drivers/md/bcache/super.c
> +++ b/drivers/md/bcache/super.c
> @@ -759,11 +759,15 @@ static int bcache_device_init(struct bcache_device *d, unsigned block_size,
> sector_t sectors)
> {
> struct request_queue *q;
> + struct cached_dev *dc;
> size_t n;
> int minor;
>
> + dc = container_of(d, struct cached_dev, disk);
> + q = bdev_get_queue(dc->bdev);
> +
> if (!d->stripe_size)
> - d->stripe_size = 1 << 31;
> + d->stripe_size = min_t(unsigned, 1 << 31, q->limits.io_opt);
>
> d->nr_stripes = DIV_ROUND_UP_ULL(sectors, d->stripe_size);
We only care about stripe size if we're trying to flush dirty data by
stripe - this is for writeback with raid5/6 stripe awareness. There's
currently no way to enable this functionality, the patch that enables it
is going into 3.14.
If we don't have that stuff enabled, we only care about stripes insofar
as we have to track dirty data at _some_ granularity.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-01-08 21:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-08 11:39 [PATCH 1/3] bcache: For back device, stripe_size get the small value between "1 << 31" and the io_opt of request_queue of back device majianpeng
2014-01-08 21:33 ` Kent Overstreet
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).