Bug 156378 - [EMC RHEL 5.0.0 FEAT] kernel dm: Should the QUEUE_CLUSTER_FLAG of a target device's request queue be included in the device-mapper io_restrictions semantics?
[EMC RHEL 5.0.0 FEAT] kernel dm: Should the QUEUE_CLUSTER_FLAG of a target de...
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Alasdair Kergon
: FutureFeature
Depends On:
Blocks: 182355 186569
  Show dependency treegraph
Reported: 2005-04-29 11:41 EDT by Ed Goggin
Modified: 2007-11-30 17:07 EST (History)
13 users (show)

See Also:
Fixed In Version: 5.0.0
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-10-11 08:37:23 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
dm-table-queue-cluster.patch (1.86 KB, patch)
2006-02-15 11:18 EST, Alasdair Kergon
no flags Details | Diff

  None (edit)
Description Ed Goggin 2005-04-29 11:41:11 EDT
Description of problem:

It appears the the request queue for ALL device-mapper mapped devices
has the QUEUE_CLUSTER_FLAG reset thereby disabling the clustering
of physically contiguous pages into a single io segment.  This can
lead to premature exhaustion of the request queue's maximum hardware
segment count for bios sent to mapped devices.

Seems like a natural enhancement to the device-mapper io_restrictions
structure include a field to indicate whether or not I/O may be clustered
as indicated by the setting of the QUEUE_CLUSTER_FLAG bit of the queue_flags 
field of the request_queue structures for the collective set of target devices.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
Actual results:

Expected results:

Additional info:
Comment 1 Ed Goggin 2005-04-29 12:02:22 EDT
The embedded Qlogic FC HBA driver enables page clustering.  Likely
that all of the FC HBA drivers do.  Should only affect large bios
since at least the Qlogic FC HBA driver is configured to support
an io up to 255 segments.  This should handle just shy of a 1MB bio.
Comment 2 Alasdair Kergon 2005-05-04 10:50:16 EDT
Need to check how this would interact with the bio splitting and suspend code. 
There may be a case for deciding whether or not to set it according to the
characteristics of the table.
Comment 3 Heather Conway 2005-08-30 14:22:32 EDT
Is this request being considered for incorporation into RHEL 4.0 U3?
Comment 5 Heather Conway 2005-09-15 11:42:23 EDT
Is there an update on this Bugzilla?
Comment 14 Heather Conway 2006-01-16 11:32:22 EST
Hi Alasdair - have you had an opportunity to look into this enhancement 
request?  If so, do you have an update?
Comment 15 Alasdair Kergon 2006-02-15 10:32:15 EST
Well Neil Brown has made a patch (which I'll attach and we can test for U4) but
I'm not sure it'll make much difference to performance because device-mapper
still requires I/O to be broken up into small pieces.  This is likely to need
block layer changes for which we should create a separate feature request to try
to address this issue in the RHEL5 (or might even have to be RHEL6) time frame.
Comment 16 Alasdair Kergon 2006-02-15 11:18:09 EST
Created attachment 124691 [details]

Unfortunately the structures in device-mapper.h weren't designed for extension
and the new 'no_cluster' field forms part of an important exposed structure -
struct dm_target - and this patch will break ABI.

If we decide it is worth putting this in RHEL4 U4, then we need to come up with
a workaround.
Comment 17 Alasdair Kergon 2006-03-15 11:55:53 EST
I don't think it's worth doing a backport - propose letting the upstream change
filter down into RHEL5.
Comment 25 Jay Turner 2006-09-19 14:09:06 EDT
What's the status of this?  Did the changes land in RHEL5?
Comment 26 Alasdair Kergon 2006-10-10 11:15:15 EDT
Yes, they're in the upstream kernel RHEL5 kernel was derived from.
Comment 27 Jay Turner 2006-10-11 08:37:23 EDT
Closing out based on comment 26.

Note You need to log in before you can comment on or make changes to this bug.