Messages in this thread | | | Date | Wed, 15 Mar 2006 17:33:56 -0500 | From | Jeff Garzik <> | Subject | Re: libata/sata_nv latency on NVIDIA CK804 [was Re: AMD64 X2 lost ticks on PM timer] |
| |
Ingo Molnar wrote: > the patch below is a blind shot into the dark: it turns on MMIO for the > sata_nv driver. But be careful with it - this turns on a probably > totally untested mode in the driver and thus may damage your data. (It > might not even work at all because the driver might not be ready for it > - Jeff?). I'd suggest to first boot into single-user mode with all > filesystems readonly mounted. > > on the low chance of this patch actually working, the interesting thing > would be to check whether the latencies occur in MMIO mode too? (if they > do then please send us the new latency traces too.) > > Ingo > > --------- > > WARNING: this may damage your data. Be careful ... > > drivers/scsi/sata_nv.c | 1 + > 1 files changed, 1 insertion(+) > > Index: linux/drivers/scsi/sata_nv.c > =================================================================== > --- linux.orig/drivers/scsi/sata_nv.c > +++ linux/drivers/scsi/sata_nv.c > @@ -280,6 +280,7 @@ static struct ata_port_info nv_port_info > .host_flags = ATA_FLAG_SATA | > /* ATA_FLAG_SATA_RESET | */ > ATA_FLAG_SRST | > + ATA_FLAG_MMIO | > ATA_FLAG_NO_LEGACY,
It won't work at all...
You have to stop talking to PCI IDE registers completely (consumes 5 PCI BARs), and talk exclusively to the MMIO 6th PCI BAR, at non-standard offsets and a using a proprietary DMA descriptor format [all public now in that link I just sent].
My main workstation has one: > 00:08.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev f3) (prog-if 85 [Master SecO PriO]) > Subsystem: Hewlett-Packard Company: Unknown device 1500 > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- > Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- > <MAbort- >SERR- <PERR- > Latency: 0 (750ns min, 250ns max) > Interrupt: pin A routed to IRQ 201 > Region 0: I/O ports at 28e0 [size=8] > Region 1: I/O ports at 2c00 [size=4] > Region 2: I/O ports at 28e8 [size=8] > Region 3: I/O ports at 2c04 [size=4] > Region 4: I/O ports at 28c0 [size=16] > Region 5: Memory at f2103000 (32-bit, non-prefetchable) [size=4K]
Regards,
Jeff
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |