From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: device-mapper development <dm-devel@redhat.com>,
Mike Snitzer <snitzer@redhat.com>,
linux-kernel@vger.kernel.org, Alasdair G Kergon <agk@redhat.com>,
Jens Axboe <jens.axboe@oracle.com>
Subject: Re: [PATCH 1/3] block: Add blk_queue_copy_limits()
Date: Sun, 20 Sep 2009 00:22:54 +0900 [thread overview]
Message-ID: <4AB4F74E.7000908@ce.jp.nec.com> (raw)
In-Reply-To: <yq1eiq46ohz.fsf@sermon.lab.mkp.net>
Martin K. Petersen wrote:
>>>>>> "Jun'ichi" == Jun'ichi Nomura <j-nomura@ce.jp.nec.com> writes:
>
> + if (q->limits.max_sectors == 0 || q->limits.max_hw_sectors == 0)
> + blk_queue_max_sectors(q, SAFE_MAX_SECTORS);
>
> I'm really not keen on perpetuating SAFE_MAX_SECTORS for something that
> was written in this millennium.
>
> I'd much rather we just do this, then:
>
> block: Set max_sectors correctly for stacking devices
>
> The topology changes unintentionally caused SAFE_MAX_SECTORS to be set
> for stacking devices. Set the default limit to BLK_DEF_MAX_SECTORS and
> provide SAFE_MAX_SECTORS in blk_queue_make_request() for legacy hw
> drivers that depend on the old behavior.
>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
>
> ---
>
> diff --git a/block/blk-settings.c b/block/blk-settings.c
> index 83413ff..cd9b730 100644
> --- a/block/blk-settings.c
> +++ b/block/blk-settings.c
> @@ -111,7 +111,7 @@ void blk_set_default_limits(struct queue_limits *lim)
> lim->max_hw_segments = MAX_HW_SEGMENTS;
> lim->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK;
> lim->max_segment_size = MAX_SEGMENT_SIZE;
> - lim->max_sectors = lim->max_hw_sectors = SAFE_MAX_SECTORS;
> + lim->max_sectors = lim->max_hw_sectors = BLK_DEF_MAX_SECTORS;
Umm, with this, BLK_DEF_MAX_SECTORS becomes upper bound of max_hw_sectors
and the values of underlying devices are not propagated to the stacking
devices.
Is it intended?
> lim->logical_block_size = lim->physical_block_size = lim->io_min = 512;
> lim->bounce_pfn = (unsigned long)(BLK_BOUNCE_ANY >> PAGE_SHIFT);
> lim->alignment_offset = 0;
> @@ -164,6 +164,7 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
> q->unplug_timer.data = (unsigned long)q;
>
> blk_set_default_limits(&q->limits);
> + blk_queue_max_sectors(q, SAFE_MAX_SECTORS);
>
> /*
> * If the caller didn't supply a lock, fall back to our embedded
Thanks,
--
Jun'ichi Nomura, NEC Corporation
WARNING: multiple messages have this Message-ID (diff)
From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: device-mapper development <dm-devel@redhat.com>,
linux-kernel@vger.kernel.org, Alasdair G Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@redhat.com>,
Jens Axboe <jens.axboe@oracle.com>
Subject: Re: [dm-devel] [PATCH 1/3] block: Add blk_queue_copy_limits()
Date: Sun, 20 Sep 2009 00:22:54 +0900 [thread overview]
Message-ID: <4AB4F74E.7000908@ce.jp.nec.com> (raw)
In-Reply-To: <yq1eiq46ohz.fsf@sermon.lab.mkp.net>
Martin K. Petersen wrote:
>>>>>> "Jun'ichi" == Jun'ichi Nomura <j-nomura@ce.jp.nec.com> writes:
>
> + if (q->limits.max_sectors == 0 || q->limits.max_hw_sectors == 0)
> + blk_queue_max_sectors(q, SAFE_MAX_SECTORS);
>
> I'm really not keen on perpetuating SAFE_MAX_SECTORS for something that
> was written in this millennium.
>
> I'd much rather we just do this, then:
>
> block: Set max_sectors correctly for stacking devices
>
> The topology changes unintentionally caused SAFE_MAX_SECTORS to be set
> for stacking devices. Set the default limit to BLK_DEF_MAX_SECTORS and
> provide SAFE_MAX_SECTORS in blk_queue_make_request() for legacy hw
> drivers that depend on the old behavior.
>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
>
> ---
>
> diff --git a/block/blk-settings.c b/block/blk-settings.c
> index 83413ff..cd9b730 100644
> --- a/block/blk-settings.c
> +++ b/block/blk-settings.c
> @@ -111,7 +111,7 @@ void blk_set_default_limits(struct queue_limits *lim)
> lim->max_hw_segments = MAX_HW_SEGMENTS;
> lim->seg_boundary_mask = BLK_SEG_BOUNDARY_MASK;
> lim->max_segment_size = MAX_SEGMENT_SIZE;
> - lim->max_sectors = lim->max_hw_sectors = SAFE_MAX_SECTORS;
> + lim->max_sectors = lim->max_hw_sectors = BLK_DEF_MAX_SECTORS;
Umm, with this, BLK_DEF_MAX_SECTORS becomes upper bound of max_hw_sectors
and the values of underlying devices are not propagated to the stacking
devices.
Is it intended?
> lim->logical_block_size = lim->physical_block_size = lim->io_min = 512;
> lim->bounce_pfn = (unsigned long)(BLK_BOUNCE_ANY >> PAGE_SHIFT);
> lim->alignment_offset = 0;
> @@ -164,6 +164,7 @@ void blk_queue_make_request(struct request_queue *q, make_request_fn *mfn)
> q->unplug_timer.data = (unsigned long)q;
>
> blk_set_default_limits(&q->limits);
> + blk_queue_max_sectors(q, SAFE_MAX_SECTORS);
>
> /*
> * If the caller didn't supply a lock, fall back to our embedded
Thanks,
--
Jun'ichi Nomura, NEC Corporation
next prev parent reply other threads:[~2009-09-19 15:22 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-18 16:24 [PATCH 1/3] block: Add blk_queue_copy_limits() Jun'ichi Nomura
2009-09-18 16:24 ` Jun'ichi Nomura
2009-09-18 16:26 ` [PATCH 2/3] dm: Use blk_queue_copy_limits() Jun'ichi Nomura
2009-09-18 16:26 ` Jun'ichi Nomura
2009-09-18 19:11 ` Mike Snitzer
2009-09-18 19:11 ` Mike Snitzer
2009-09-18 16:29 ` [PATCH 3/3] block: blk_set_default_limits sets 0 to max_sectors Jun'ichi Nomura
2009-09-18 16:29 ` Jun'ichi Nomura
2009-09-18 19:07 ` [PATCH 1/3] block: Add blk_queue_copy_limits() Mike Snitzer
2009-09-18 19:07 ` Mike Snitzer
2009-09-18 19:28 ` Martin K. Petersen
2009-09-18 19:28 ` [dm-devel] " Martin K. Petersen
2009-09-18 20:30 ` Mike Snitzer
2009-09-18 20:30 ` Mike Snitzer
2009-09-19 15:22 ` Jun'ichi Nomura [this message]
2009-09-19 15:22 ` [dm-devel] " Jun'ichi Nomura
2009-09-20 21:00 ` Martin K. Petersen
2009-09-20 21:00 ` [dm-devel] " Martin K. Petersen
2009-09-21 16:33 ` Jun'ichi Nomura
2009-09-21 16:33 ` [dm-devel] " Jun'ichi Nomura
2009-09-21 19:43 ` Martin K. Petersen
2009-09-21 19:43 ` [dm-devel] " Martin K. Petersen
2009-09-21 19:45 ` Jens Axboe
2009-09-21 19:45 ` [dm-devel] " Jens Axboe
2009-09-18 20:33 ` Jens Axboe
2009-09-18 20:33 ` Jens Axboe
2009-09-18 20:35 ` Jens Axboe
2009-09-18 20:35 ` Jens Axboe
2009-09-19 15:35 ` Jun'ichi Nomura
2009-09-19 15:35 ` Jun'ichi Nomura
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=4AB4F74E.7000908@ce.jp.nec.com \
--to=j-nomura@ce.jp.nec.com \
--cc=agk@redhat.com \
--cc=dm-devel@redhat.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=snitzer@redhat.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.