Re: libata/sata_nv latency on NVIDIA CK804 [was Re: AMD64 X2 lost ticks on PM timer]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux