Re: Fwd: [LIBATA] drives not detected

2007-02-26 Thread Patrick Ale

On 2/25/07, Patrick Ale [EMAIL PROTECTED] wrote:

On 2/25/07, Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:


Dobri dan (I think, I am learning croatian and got told by a friend
this is the polish way of saying it).

Anyway,

I guess it will take a bit before I can do this test for you,
regarding the loading pata_pdc207x and all.

md3 : active raid1 sdc1[2] sdb1[0]
 117218176 blocks [2/1] [U_]
 [==..]  recovery = 31.8% (37313792/117218176)
finish=2503.2min speed=531K/sec


A while a go I had a southbridge that wasnt too happy about the fact
that the fan wasnt running for some weeks allready, I guess I am
feeling the pain for it now. Lot's of Port is slow, please be
patient warnings.

Good thing is: the disk stays in UDMA100 now, instead of dropping to
PIO mode 1. As soon as i can replace the disk, I will do the tests for
you.

So as the dmesg says: be patient :P


Thanks again for all your help,

Patrick
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: nonzero mismatch_cnt with no earlier error

2007-02-26 Thread Eyal Lebedinsky
I CC'ed linux-ide to see if they think the reported error was really innocent:

Question: does this error report suggest that a disk could be corrupted?

This SATA disk is part of an md raid and no error was reported by md.

[937567.332751] ata3.00: exception Emask 0x10 SAct 0x0 SErr 0x4190002 action 0x2
[937567.354094] ata3.00: cmd b0/d5:01:09:4f:c2/00:00:00:00:00/00 tag 0 cdb 0x0 
data 512 in
[937567.354096]  res 51/04:83:45:00:00/00:00:00:00:00/a0 Emask 0x10 
(ATA bus error)
[937568.120783] ata3: soft resetting port
[937568.282450] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[937568.306693] ata3.00: configured for UDMA/100
[937568.319733] ata3: EH complete
[937568.361223] SCSI device sdc: 625142448 512-byte hdwr sectors (320073 MB)
[937568.397207] sdc: Write Protect is off
[937568.408620] sdc: Mode Sense: 00 3a 00 00
[937568.453522] SCSI device sdc: write cache: enabled, read cache: enabled, 
doesn't support DPO or FUA

Neil Brown wrote:
 On Saturday February 24, [EMAIL PROTECTED] wrote:
 
But is this not a good opportunity to repair the bad stripe for a very
low cost (no complete resync required)?
 
 
 In this case, 'md' knew nothing about an error.  The SCSI layer
 detected something and thought it had fixed it itself.  Nothing for md
 to do.

I expected this. So either the scsi layer incorrectly held back the error
report of the mismatch_cnt is due to something unrelated to the disk
i/o failure.

At time of error we actually know which disk failed and can re-write
it, something we do not know at resync time, so I assume we always
write to the parity disk.

Again, as I expected, resync cannot correct a problem, effectively
blaming the parity block. To know which block to correct one needs
a higher level parity code (can raid6 correct single bit/disk read
errors?).

 md only knows of a 'problem' if the lower level driver reports one.
 If it reports a problem for a write request, md will fail the device.
 If it reports a problem for a read request, md will try to over-write
 correct data on the failed block. 
 But if the driver doesn't report the failure, there is nothing md can
 do.
 
 When performing a check/repair md looks for consistencies and fixes
 the 'arbitrarily'.  For raid5/6, it just 'corrects' the parity.  For
 raid1/10, it chooses one block and over-writes the other(s) with it.
 
 Mapping these corrections back to blocks in files in the filesystem is
 extremely non-trivial.
 
 NeilBrown

-- 
Eyal Lebedinsky ([EMAIL PROTECTED]) http://samba.org/eyal/
attach .zip as .dat
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] pata_jmicron: drop unnecessary device programming in [re]init

2007-02-26 Thread Tejun Heo
Channel redirect and AHCI mode enable programmings are done via PCI
quirk for both probe and resume paths.  Drop duplicate and possibly
unsafe device programming from pata_jmicron().

Signed-off-by: Tejun Heo [EMAIL PROTECTED]
---
 drivers/ata/pata_jmicron.c |   32 +---
 1 file changed, 1 insertion(+), 31 deletions(-)

Index: work/drivers/ata/pata_jmicron.c
===
--- work.orig/drivers/ata/pata_jmicron.c
+++ work/drivers/ata/pata_jmicron.c
@@ -202,43 +202,13 @@ static int jmicron_init_one (struct pci_
};
struct ata_port_info *port_info[2] = { info, info };
 
-   u32 reg;
-
/* PATA controller is fn 1, AHCI is fn 0 */
if (id-driver_data != 368  PCI_FUNC(pdev-devfn) != 1)
return -ENODEV;
 
-   /* The 365/66 have two PATA channels, redirect the second */
-   if (id-driver_data == 365 || id-driver_data == 366) {
-   pci_read_config_dword(pdev, 0x80, reg);
-   reg |= (1  24);   /* IDE1 to PATA IDE secondary */
-   pci_write_config_dword(pdev, 0x80, reg);
-   }
-
return ata_pci_init_one(pdev, port_info, 2);
 }
 
-static int jmicron_reinit_one(struct pci_dev *pdev)
-{
-   u32 reg;
-
-   switch(pdev-device) {
-   case PCI_DEVICE_ID_JMICRON_JMB368:
-   break;
-   case PCI_DEVICE_ID_JMICRON_JMB365:
-   case PCI_DEVICE_ID_JMICRON_JMB366:
-   /* Restore mapping or disks swap and boy does it get 
ugly */
-   pci_read_config_dword(pdev, 0x80, reg);
-   reg |= (1  24);   /* IDE1 to PATA IDE secondary */
-   pci_write_config_dword(pdev, 0x80, reg);
-   /* Fall through */
-   default:
-   /* Make sure AHCI is turned back on */
-   pci_write_config_byte(pdev, 0x41, 0xa1);
-   }
-   return ata_pci_device_resume(pdev);
-}
-
 static const struct pci_device_id jmicron_pci_tbl[] = {
{ PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB361), 361},
{ PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB363), 363},
@@ -255,7 +225,7 @@ static struct pci_driver jmicron_pci_dri
.probe  = jmicron_init_one,
.remove = ata_pci_remove_one,
.suspend= ata_pci_device_suspend,
-   .resume = jmicron_reinit_one,
+   .resume = ata_pci_device_resume,
 };
 
 static int __init jmicron_init(void)
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/3] jmicron ATA: reimplement jmicron ATA quirk

2007-02-26 Thread Tejun Heo
Reimplement jmicron ATA quirk.

* renamed to quirk_jmicron_ata()
* quirk is invoked only for the affected controllers
* programming is stricter.  e.g. conf5 bit24 is cleared if
  unnecessary.
* code factored for readability
* JMB360 and JMB368 are programmed into proper mode

Verified on JMB360, 363 and 368.

Signed-off-by: Tejun Heo [EMAIL PROTECTED]
---
 drivers/pci/quirks.c |   80 +++
 1 file changed, 50 insertions(+), 30 deletions(-)

Index: work/drivers/pci/quirks.c
===
--- work.orig/drivers/pci/quirks.c
+++ work/drivers/pci/quirks.c
@@ -1218,45 +1218,65 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_V
  * do this early on to make the additional device appear during
  * the PCI scanning.
  */
-
-static void quirk_jmicron_dualfn(struct pci_dev *pdev)
+static void quirk_jmicron_ata(struct pci_dev *pdev)
 {
-   u32 conf;
+   u32 conf1, conf5;
u8 hdr;
 
/* Only poke fn 0 */
if (PCI_FUNC(pdev-devfn))
return;
 
-   switch(pdev-device) {
-   case PCI_DEVICE_ID_JMICRON_JMB365:
-   case PCI_DEVICE_ID_JMICRON_JMB366:
-   /* Redirect IDE second PATA port to the right spot */
-   pci_read_config_dword(pdev, 0x80, conf);
-   conf |= (1  24);
-   /* Fall through */
-   pci_write_config_dword(pdev, 0x80, conf);
-   case PCI_DEVICE_ID_JMICRON_JMB361:
-   case PCI_DEVICE_ID_JMICRON_JMB363:
-   pci_read_config_dword(pdev, 0x40, conf);
-   /* Enable dual function mode, AHCI on fn 0, IDE fn1 */
-   /* Set the class codes correctly and then direct IDE 0 
*/
-   conf = ~0x000FF200; /* Clear bit 9 and 12-19 */
-   conf |=  0x00C2A102; /* Set 1, 8, 13, 15, 17, 22, 23 */
-   pci_write_config_dword(pdev, 0x40, conf);
-
-   /* Reconfigure so that the PCI scanner discovers the
-  device is now multifunction */
-
-   pci_read_config_byte(pdev, PCI_HEADER_TYPE, hdr);
-   pdev-hdr_type = hdr  0x7f;
-   pdev-multifunction = !!(hdr  0x80);
+   pci_read_config_dword(pdev, 0x40, conf1);
+   pci_read_config_dword(pdev, 0x80, conf5);
+
+   conf1 = ~0x00CFF302; /* Clear bit 1, 8, 9, 12-19, 22, 23 */
+   conf5 = ~(1  24);  /* Clear bit 24 */
+
+   switch (pdev-device) {
+   case PCI_DEVICE_ID_JMICRON_JMB360:
+   /* The controller should be in single function ahci mode */
+   conf1 |= 0x0002A100; /* Set 8, 13, 15, 17 */
+   break;
 
-   break;
+   case PCI_DEVICE_ID_JMICRON_JMB365:
+   case PCI_DEVICE_ID_JMICRON_JMB366:
+   /* Redirect IDE second PATA port to the right spot */
+   conf5 |= (1  24);
+   /* Fall through */
+   case PCI_DEVICE_ID_JMICRON_JMB361:
+   case PCI_DEVICE_ID_JMICRON_JMB363:
+   /* Enable dual function mode, AHCI on fn 0, IDE fn1 */
+   /* Set the class codes correctly and then direct IDE 0 */
+   conf1 |= 0x00C2A102; /* Set 1, 8, 13, 15, 17, 22, 23 */
+   break;
+
+   case PCI_DEVICE_ID_JMICRON_JMB368:
+   /* The controller should be in single function IDE mode */
+   conf1 |= 0x00C0; /* Set 22, 23 */
+   break;
}
-}
-DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, 
quirk_jmicron_dualfn);
-DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, 
quirk_jmicron_dualfn);
+
+   pci_write_config_dword(pdev, 0x40, conf1);
+   pci_write_config_dword(pdev, 0x80, conf5);
+
+   /* Update pdev accordingly */
+   pci_read_config_byte(pdev, PCI_HEADER_TYPE, hdr);
+   pdev-hdr_type = hdr  0x7f;
+   pdev-multifunction = !!(hdr  0x80);
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB360, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB360, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, 
quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, 
quirk_jmicron_ata);

[PATCH 3/3] ahci/pata_jmicron: match class not function number

2007-02-26 Thread Tejun Heo
Make jmiron_ata quirk update pdev-class after programming the device
and update ahci and pata_jmicron such that they match class code
instead of checking function number manually.  For ahci, it matches
for vendor and class.  For pata_jmicron, it matches vendor, device and
class as IDE class isn't as well defined as AHCI class.

This makes jmicron device matching more conventional and script
friendly.

Signed-off-by: Tejun Heo [EMAIL PROTECTED]
---
 drivers/ata/ahci.c |   16 +++-
 drivers/ata/pata_jmicron.c |   19 ++-
 drivers/pci/quirks.c   |5 -
 3 files changed, 17 insertions(+), 23 deletions(-)

Index: work/drivers/pci/quirks.c
===
--- work.orig/drivers/pci/quirks.c
+++ work/drivers/pci/quirks.c
@@ -1220,7 +1220,7 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_V
  */
 static void quirk_jmicron_ata(struct pci_dev *pdev)
 {
-   u32 conf1, conf5;
+   u32 conf1, conf5, class;
u8 hdr;
 
/* Only poke fn 0 */
@@ -1264,6 +1264,9 @@ static void quirk_jmicron_ata(struct pci
pci_read_config_byte(pdev, PCI_HEADER_TYPE, hdr);
pdev-hdr_type = hdr  0x7f;
pdev-multifunction = !!(hdr  0x80);
+
+   pci_read_config_dword(pdev, PCI_CLASS_REVISION, class);
+   pdev-class = class  8;
 }
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB360, 
quirk_jmicron_ata);
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, 
quirk_jmicron_ata);
Index: work/drivers/ata/ahci.c
===
--- work.orig/drivers/ata/ahci.c
+++ work/drivers/ata/ahci.c
@@ -385,12 +385,9 @@ static const struct pci_device_id ahci_p
{ PCI_VDEVICE(INTEL, 0x294d), board_ahci_pi }, /* ICH9 */
{ PCI_VDEVICE(INTEL, 0x294e), board_ahci_pi }, /* ICH9M */
 
-   /* JMicron */
-   { PCI_VDEVICE(JMICRON, 0x2360), board_ahci_ign_iferr }, /* JMB360 */
-   { PCI_VDEVICE(JMICRON, 0x2361), board_ahci_ign_iferr }, /* JMB361 */
-   { PCI_VDEVICE(JMICRON, 0x2363), board_ahci_ign_iferr }, /* JMB363 */
-   { PCI_VDEVICE(JMICRON, 0x2365), board_ahci_ign_iferr }, /* JMB365 */
-   { PCI_VDEVICE(JMICRON, 0x2366), board_ahci_ign_iferr }, /* JMB366 */
+   /* JMicron 360/1/3/5/6, match class to avoid IDE function */
+   { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+ PCI_CLASS_STORAGE_SATA_AHCI, 0xff, board_ahci_ign_iferr },
 
/* ATI */
{ PCI_VDEVICE(ATI, 0x4380), board_ahci }, /* ATI SB600 non-raid */
@@ -1665,13 +1662,6 @@ static int ahci_init_one(struct pci_dev 
if (!printed_version++)
dev_printk(KERN_DEBUG, pdev-dev, version  DRV_VERSION \n);
 
-   if (pdev-vendor == PCI_VENDOR_ID_JMICRON) {
-   /* Function 1 is the PATA controller except on the 368, where
-  we are not AHCI anyway */
-   if (PCI_FUNC(pdev-devfn))
-   return -ENODEV;
-   }
-
rc = pcim_enable_device(pdev);
if (rc)
return rc;
Index: work/drivers/ata/pata_jmicron.c
===
--- work.orig/drivers/ata/pata_jmicron.c
+++ work/drivers/ata/pata_jmicron.c
@@ -202,19 +202,20 @@ static int jmicron_init_one (struct pci_
};
struct ata_port_info *port_info[2] = { info, info };
 
-   /* PATA controller is fn 1, AHCI is fn 0 */
-   if (id-driver_data != 368  PCI_FUNC(pdev-devfn) != 1)
-   return -ENODEV;
-
return ata_pci_init_one(pdev, port_info, 2);
 }
 
 static const struct pci_device_id jmicron_pci_tbl[] = {
-   { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB361), 361},
-   { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB363), 363},
-   { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB365), 365},
-   { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB366), 366},
-   { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB368), 368},
+   { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361,
+ PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE  8, 0x00, 361 },
+   { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363,
+ PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE  8, 0x00, 363 },
+   { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365,
+ PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE  8, 0x00, 365 },
+   { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366,
+ PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE  8, 0x00, 366 },
+   { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368,
+ PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE  8, 0x00, 368 },
 
{ } /* terminate list */
 };
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: end to end error recovery musings

2007-02-26 Thread Theodore Tso
On Mon, Feb 26, 2007 at 04:33:37PM +1100, Neil Brown wrote:
 Do we want a path in the other direction to handle write errors?  The
 file system could say Don't worry to much if this block cannot be
 written, just return an error and I will write it somewhere else?
 This might allow md not to fail a whole drive if there is a single
 write error.

Can someone with knowledge of current disk drive behavior confirm that
for all drives that support bad block sparing, if an attempt to write
to a particular spot on disk results in an error due to bad media at
that spot, the disk drive will automatically rewrite the sector to a
sector in its spare pool, and automatically redirect that sector to
the new location.  I believe this should be always true, so presumably
with all modern disk drives a write error should mean something very
serious has happend.  

(Or that someone was in the middle of reconfiguring a FC network and
they're running a kernel that doesn't understand why short-duration FC
timeouts should be retried.  :-)

 Or is that completely un-necessary as all modern devices do bad-block
 relocation for us?
 Is there any need for a bad-block-relocating layer in md or dm?

That's the question.  It wouldn't be that hard for filesystems to be
able to remap a data block, but (a) it would be much more difficult
for fundamental metadata (for example, the inode table), and (b) it's
unnecessary complexity if the lower levels in the storage stack should
always be doing this for us in the case of media errors anyway.

 What about corrected-error counts?  Drives provide them with SMART.
 The SCSI layer could provide some as well.  Md can do a similar thing
 to some extent.  Where these are actually useful predictors of pending
 failure is unclear, but there could be some value.
 e.g. after a certain number of recovered errors raid5 could trigger a
 background consistency check, or a filesystem could trigger a
 background fsck should it support that.

Somewhat off-topic, but my one big regret with how the dm vs. evms
competition settled out was that evms had the ability to perform block
device snapshots using a non-LVM volume as the base --- and that EVMS
allowed a single drive to be partially managed by the LVM layer, and
partially managed by evms.  

What this allowed is the ability to do device snapshots and therefore
background fsck's without needing to convert the entire laptop disk to
using a LVM solution (since to this day I still don't trust initrd's
to always do the right thing when I am constantly replacing the kernel
for kernel development).

I know, I'm weird, distro users have initrd that seem to mostly work,
and it's only wierd developers that try to use bleeding edge kernels
with a RHEL4 userspace that suffer, but it's one of the reasons why
I've avoided initrd's like the plague --- I've wasted entire days
trying to debug problems with the userspace-provided initrd being too
old to support newer 2.6 development kernels.

In any case, the reason why I bring this up is that it would be really
nice if there was a way with a single laptop drive to be able to do
snapshots and background fsck's without having to use initrd's with
device mapper.

- Ted
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: end to end error recovery musings

2007-02-26 Thread Ric Wheeler



Alan wrote:

the new location.  I believe this should be always true, so presumably
with all modern disk drives a write error should mean something very
serious has happend. 


Not quite that simple.


I think that write errors are normally quite serious, but there are exceptions 
which might be able to be worked around with retries.  To Ted's point, in 
general, a write to a bad spot on the media will cause a remapping which should 
be transparent (if a bit slow) to us.




If you write a block aligned size the same size as the physical media
block size maybe this is true. If you write a sector on a device with
physical sector size larger than logical block size (as allowed by say
ATA7) then it's less clear what happens. I don't know if the drive
firmware implements multiple tails in this case.

On a read error it is worth trying the other parts of the I/O.



I think that this is mostly true, but we also need to balance this against the 
need for higher levels to get a timely response.  In a really large IO, a naive 
retry of a very large write could lead to a non-responsive system for a very 
large time...


ric



-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH libata-dev#upstream-fixes] pata_amd: fix an obvious bug in cable detection

2007-02-26 Thread Alan
On Mon, 26 Feb 2007 02:41:22 +0900
Tejun Heo [EMAIL PROTECTED] wrote:

 Bartlomiej Zolnierkiewicz wrote:
  Why can't libata do the right thing and just send IDENTIFY command
  to the slave device first?
 
 That's my plan B.  I'm just not sure whether it would do any good, would it?

Should find out soon. I've updated my tree to add the -cable_detect()
method, along with finishing off the (ap, adev) cleanup by passing only
adev to set_pio_mode and friends, also killing the un-needed
-post_set_mode() now that set_mode can be wrapped.

Having a separate -cable_detect() method cleans stuff up a ton btw. Will
post my tree soon for discussion.

Alan
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] more IDE updates

2007-02-26 Thread Sergei Shtylyov

Hello, I wrote:

Contains: IRQ-ack fix for ICH chipsets (Albert Lee), ide-floppy 
unformatted

media fix (Alan Cox), more fixes for IDE PCI drivers (Sergei Shtylyov),
new driver for Toshiba Cell Reference Board (Kou Ishizaki kou.ishizaki
at toshiba.co.jp) and a bunch of rather obvious 
cleanups/improvements (me).


There are still some bugfix patches in my tree which should go into 
2.6.21

but since they are quite fresh and there have already been a lot of IDE
changes since the merge window was opened I will wait for -rc1 to push
them upstream.



[ Andrew, IDE quilt tree has already been updated wrt to this update ]


   Which quilt tree do you mean? I've noticed that in 
http://kernel.org/pub/linux/kernel/people/bart/pata-2.6/ the series 
file itself hasn't been updated, so this tree appears broken currently.



   Begging your pardon, it's all browser caching. :-


  Now it's *actually* borken since rtying to read 
delkin_cb-pci_module_init-to-pci_register_driver.patch gets you 403 Forbidden...


WBR, Sergei
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] more IDE updates

2007-02-26 Thread Bartlomiej Zolnierkiewicz

On Monday 26 February 2007, Sergei Shtylyov wrote:
 Hello, I wrote:
 
  Contains: IRQ-ack fix for ICH chipsets (Albert Lee), ide-floppy 
  unformatted
  media fix (Alan Cox), more fixes for IDE PCI drivers (Sergei Shtylyov),
  new driver for Toshiba Cell Reference Board (Kou Ishizaki kou.ishizaki
  at toshiba.co.jp) and a bunch of rather obvious 
  cleanups/improvements (me).
 
  There are still some bugfix patches in my tree which should go into 
  2.6.21
  but since they are quite fresh and there have already been a lot of IDE
  changes since the merge window was opened I will wait for -rc1 to push
  them upstream.
 
  [ Andrew, IDE quilt tree has already been updated wrt to this update ]
 
 Which quilt tree do you mean? I've noticed that in 
  http://kernel.org/pub/linux/kernel/people/bart/pata-2.6/ the series 
  file itself hasn't been updated, so this tree appears broken currently.
 
 Begging your pardon, it's all browser caching. :-
 
Now it's *actually* borken since rtying to read 
 delkin_cb-pci_module_init-to-pci_register_driver.patch gets you 403 
 Forbidden...

Doh, wrong permission (600 instead of 644) - I've fixed this once already but
only in the public tree and not in my private mirror so during last re-sync it
got broken again.   I corrected this in both trees this time :) but it will
take some time for the change to propagate to kernel.org mirrors.

[ Thankfully this patch is the last one in the series. ]

Thanks,
Bart
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Current PATA working tree

2007-02-26 Thread Alan
While Andrew and -mm are taking a bit of a break...

I've uploaded a patch file of the libata PATA working tree versus
2.6.20-mm2 to

http://zeniv.linux.org.uk/~alan/IDE

2.6.20-mm2-ac1 has the cable detect method, the identify slave first
change, and assorted core cleanups to methods like -set_pio_mode() that
were deferred due to the number of things they touched.

The current -ac1 tree I would class as unstable, its a work in progress
having done all the merging and updating but not yet enough testing to
shake all the bugs out

Alan
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: end to end error recovery musings

2007-02-26 Thread Ric Wheeler


Alan wrote:
I think that this is mostly true, but we also need to balance this against the 
need for higher levels to get a timely response.  In a really large IO, a naive 
retry of a very large write could lead to a non-responsive system for a very 
large time...


And losing the I/O could result in a system that is non responsive until
the tape restore completes two days later


Which brings us back to a recent discussion at the file system workshop on being 
more repair oriented in file system design so we can survive situations like 
this a bit more reliably ;-)


ric
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: end to end error recovery musings

2007-02-26 Thread H. Peter Anvin

Theodore Tso wrote:


In any case, the reason why I bring this up is that it would be really
nice if there was a way with a single laptop drive to be able to do
snapshots and background fsck's without having to use initrd's with
device mapper.



This is a major part of why I've been trying to push integrated klibc to 
have all that stuff as a unified kernel deliverable.  Unfortunately, 
as you know, Linus apparently rejected the concept at least for now at 
LKS last year.


With klibc this stuff could still be in one single wrapper without funny 
dependencies, but wouldn't have to be ported to kernel space.


-hpa
-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


really bad performance with ICH7 SATA controller

2007-02-26 Thread Baeckham
Hi,

on my laptop (noname; MSI hardware) system it seems that the SATA controller 
causes many trouble, at least it is running stable but the performance is 
bad. When copying data from a dvd to hard disk the system reacts really slow 
so it is almost not usable. I got up to 80% iowaits on top when simply 
copying data from dvd to hd.

I think it might be the IDE/SATA controller. I tried several configurations of 
my kernel (tried 2.6.19 to 2.6.20.1 now) but I was not able to improve the 
performance.

I have a notebook with this SATA controller:
00:1f.2 IDE interface [0101]: Intel Corporation 82801GBM/GHM (ICH7 Family) 
Serial ATA Storage Controller IDE [8086:27c4] (rev 02)

So this device seems not to be AHCI conform. I found in the web the mostly 
this controllers are named Serial ATA Storage Controller AHCI.

Further I do have this optical drive:
# hdparm -I /dev/hdd

/dev/hdd:

ATAPI CD-ROM, with removable media
Model Number:   TSSTcorpCD/DVDW SN-S082D
Serial Number:
Firmware Revision:  SS02
Standards:
Likely used CD-ROM ATAPI-1
Configuration:
DRQ response: 50us.
Packet size: 12 bytes
Capabilities:
LBA, IORDY(can be disabled)
DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2
 Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
 Cycle time: no flow control=227ns  IORDY flow control=120ns
Commands/features:
Enabled Supported:
HW reset results:
CBLID- below Vih
Device num = 0

Does someone know what is the best way to use this hardware - the best kernel 
config. Maybe some options do interfere.
My IDE/SATA config on my 2.6.20.1 kernel looks like this:
 #
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_BLK_DEV_IDECS is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_NETLINK=y
# CONFIG_SCSI_PROC_FS is not set

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set
CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_SCSI_SAS_LIBSAS is not set

#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W__RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not 

2.6.21-rc1: known regressions (v2) (part 1)

2007-02-26 Thread Adrian Bunk
This email lists some known regressions in 2.6.21-rc1 compared to 2.6.20
that are not yet fixed in Linus' tree.

If you find your name in the Cc header, you are either submitter of one
of the bugs, maintainer of an affectected subsystem or driver, a patch
of you caused a breakage or I'm considering you in any other way possibly
involved with one or more of these issues.

Due to the huge amount of recipients, please trim the Cc when answering.


Subject: resume: slab error in verify_redzone_free(): cache `size-512':
 memory outside object was overwritten
References : http://lkml.org/lkml/2007/2/24/41
Submitter  : Pavel Machek [EMAIL PROTECTED]
Handled-By : Marcel Holtmann [EMAIL PROTECTED]
Status : unknown


Subject: ThinkPad T60: no screen after suspend to RAM
References : http://lkml.org/lkml/2007/2/22/391
Submitter  : Michael S. Tsirkin [EMAIL PROTECTED]
Handled-By : Ingo Molnar [EMAIL PROTECTED]
Status : unknown


Subject: HP nx6325 notebook: usb mouse stops working after suspend to ram
References : http://lkml.org/lkml/2007/2/21/413
Submitter  : Arkadiusz Miskiewicz [EMAIL PROTECTED]
Caused-By  : Konstantin Karasyov [EMAIL PROTECTED]
 commit 0a6139027f3986162233adc17285151e78b39cac
Status : unknown


Subject: ACPI update breaks kpowersave
References : http://lkml.org/lkml/2007/2/10/7
Submitter  : Ismail Dönmez [EMAIL PROTECTED]
 Fabio Comolli [EMAIL PROTECTED]
Status : unknown


Subject: MacBook: AE_NOT_FOUND ACPI messages
References : http://bugzilla.kernel.org/show_bug.cgi?id=8066
Submitter  : Thomas Meyer [EMAIL PROTECTED]
Status : unknown


Subject: Asus A8N-VM motherboard:
 framebuffer/console boot failure boot failure (ACPI related)
References : http://lkml.org/lkml/2007/2/23/132
Submitter  : Andrew Nelless [EMAIL PROTECTED]
Handled-By : Antonino A. Daplas [EMAIL PROTECTED]
Status : problem is being debugged


Subject: Asus M6Ne notebook: ACPI: First battery is not detected
References : http://bugzilla.kernel.org/show_bug.cgi?id=8080
Submitter  : Janosch Machowinski [EMAIL PROTECTED]
Status : unknown


Subject: Asus M6Ne/M6A notebooks: SATA_ACPI errors during kernel boot
References : http://bugzilla.kernel.org/show_bug.cgi?id=8080
 http://bugzilla.kernel.org/show_bug.cgi?id=8046
Submitter  : Janosch Machowinski [EMAIL PROTECTED]
 Lukas Hejtmanek [EMAIL PROTECTED]
Status : unknown


Subject: ata-piix ACPI errors (40/80 pin cable mix)
References : http://lkml.org/lkml/2007/2/22/159
Submitter  : Meelis Roos [EMAIL PROTECTED]
Status : unknown


Subject: libata: PATA UDMA/100 configured as UDMA/33
References : http://lkml.org/lkml/2007/2/20/294
 http://www.mail-archive.com/linux-ide@vger.kernel.org/msg04115.html
Submitter  : Fabio Comolli [EMAIL PROTECTED]
Handled-By : Tejun Heo [EMAIL PROTECTED]
Status : problem is being discussed


Subject: sata_via failure
References : http://bugzilla.kernel.org/show_bug.cgi?id=8025
Submitter  : Jean-Luc Coulon [EMAIL PROTECTED]
 Markus Trippelsdorf [EMAIL PROTECTED]
Handled-By : Tejun Heo [EMAIL PROTECTED]
Patch  : http://www.mail-archive.com/linux-ide@vger.kernel.org/msg03945.html
Status : patch available


Subject: BUG: at drivers/pci/pci.c:817 pcim_enable_device() (libata)
References : http://lkml.org/lkml/2007/2/14/275
 http://lkml.org/lkml/2007/2/22/367
Submitter  : Rafael J. Wysocki [EMAIL PROTECTED]
 Lukas Hejtmanek [EMAIL PROTECTED]
Handled-By : Tejun Heo [EMAIL PROTECTED]
Patch  : http://lkml.org/lkml/2007/2/25/102
Status : patch available


-
To unsubscribe from this list: send the line unsubscribe linux-ide in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html