Bug 2011
Summary: | Kernel hang on heavy disk access, PDC 20376 | ||
---|---|---|---|
Product: | Platform Specific/Hardware | Reporter: | Gunnlaugur Thor Briem (gthb) |
Component: | i386 | Assignee: | Zwane Mwaikambo (zwane) |
Status: | CLOSED CODE_FIX | ||
Severity: | high | ||
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.2rc3 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Gunnlaugur Thor Briem
2004-02-04 03:15:45 UTC
sata_promise.c contains several FIXMEs; are any of these possibly relevant? In the struct ata_port_info for board_2037x: .udma_mask = 0x7f, /* udma0-6 ; FIXME */ (This is presumably unused, right? It would be used in pdc_sata_set_udmamode, but that's a no-op because SATA uses its own DMA mode, not the Ultra DMA modes. Same goes for .pio_mask above. If that's correctly understood, then why is this marked FIXME rather than DUMMY?) In pdc_host_init: /* reduce TBG clock to 133 Mhz. FIXME: why? */ tmp = readl(mmio + PDC_TBG_MODE); tmp &= ~0x30000; /* clear bit 17, 16*/ tmp |= 0x10000; /* set bit 17:16 = 0:1 */ writel(tmp, mmio + PDC_TBG_MODE); /* adjust slew rate control register. FIXME: why? */ tmp = readl(mmio + PDC_SLEW_CTL); tmp &= 0xFFFFF03F; /* clear bit 11 ~ 6 */ tmp |= 0x00000900; /* set bit 11-9 = 100b , bit 8-6 = 100 */ writel(tmp, mmio + PDC_SLEW_CTL); (Do the questions "why?" indicate that this code is there only because that's what the closed-source drivers do?) In pdc_sata_init_one: /* FIXME: check ata_device_add return value */ ata_device_add(probe_ent); kfree(probe_ent); (I'm almost certain that this is not relevant here -- right? If the return value were 0, then my disks wouldn't have come online for the kernel) Looks like I jumped on the wrong culprit here. I just tried applying Ross Dickson's patches for APIC quirks on nForce2 chipsets: http://lkml.org/lkml/2003/12/21/7 and setting the apic_tack=2 boot parameter, and with that kernel I can't reproduce this -- haven't tested for very long, but my machine got through the bonnie++ test with this kernel, and was never even close before. So it appears that the Promise controller and driver are as innocent as the driven snow. I suggest that you close this, unless you know better (you did mention that this was a known bug, but perhaps you meant only the sil driver). Sorry for the mistargeted report! |