linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: IDE/ATA development list <linux-ide@vger.kernel.org>
Subject: Re: Combined mode quirk removal kills performance
Date: Sat, 16 Jun 2007 11:36:53 -0400	[thread overview]
Message-ID: <46740395.6080702@garzik.org> (raw)
In-Reply-To: <20070616075347.96b2405d.akpm@linux-foundation.org>

Andrew Morton wrote:
> So I revisited [...]
> http://bugzilla.kernel.org/show_bug.cgi?id=8636
> 
> I don't see why it's not-a-bug.  The second guy (Stephen Clark) had to toss
> out the FC6 kernel and build his own kernel to fix this regression.

(I hope you don't mind me copying linux-ide)

The combined mode removal changed the driver load configuration.  Some 
distros updated with that knowledge, but apparently Fedora did not.

Combined mode would explicitly reserve ports for libata in pci/quirks.c, 
a horrible layering violation that created special case module load 
order dependencies.

The change made libata and the old-IDE driver behave like normal Linux 
drivers.  They can both grab an entire PCI device and drive it 
correctly, so -- just like every other situation where two drivers can 
match the same PCI ID -- the one that loads first wins.

Kernel configs need to be tweaked a bit, due to this change.  That's why 
it was communicated in advance (but poorly, as it appears from your 
questions and existing bug reports).  Two common results appear in bug 
reports:

1) One possible result of a complete lack of kconfig tweaking (blindly 
hitting <enter> during 'make oldconfig') is falling back to the 
most-compatible configuration, the legacy IDE driver (either libata or 
old-IDE), with resultant slow performance.

2) "no root! panic!" and similar I-cant-find-your-hard-drive results for 
people with hardcoding root= configurations, for the minority where a 
device moved from /dev/hdX -> /dev/sdX, or vice versa.

The damage is hoped to be limited to:

* Intel ICH5/6[/7?] users with combined mode enabled, which is a 
not-small subset of all ICH[567] users.

* Users that did /not/ choose the combined_mode=libata kernel command 
line option, a popular option for restoring performance /broken/ by 
running two drivers in tandem [i.e. the old way, recently removed].

* In the combined mode configuration, one device is /dev/hdX (often the 
CD-ROM) and one device is /dev/sdX, so only one of those devices will 
move.  Standard LVM and mount-by-label/uuid found in standard distro 
installs makes this move seamless for many.

* ...in distros that hopefully took stock of their compatibility 
picture, and modified their kernel configs and drivers accordingly. 
Some distros were defaulting to combined_mode=libata (==libata drives 
all applicable Intel ICHx IDE devices), others were not.  That affects 
the decision about kernel config changes.

	Jeff






           reply	other threads:[~2007-06-16 15:36 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <20070616075347.96b2405d.akpm@linux-foundation.org>]

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=46740395.6080702@garzik.org \
    --to=jeff@garzik.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-ide@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).