Bill Rugolsky Jr. wrote:
On Sat, Mar 18, 2006 at 03:56:28AM -0500, Jeff Garzik wrote:
OK, can you try the attached sata_nv.c? Does it perform to the level
that yours does?
Yes, the results are approximately the same. Booting from port 0 (sda)
with ADMA enabled still results in timeouts on port 3 (sdc) while
running tars on the RAID1 array on ports 2&3.
Thanks a lot for testing.
I've stored the sata_nv updates I sent you in the 'nv-adma' branch of
git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
ata4: command 0x25 timeout, stat 0x50
ata4: command 0x25 timeout, stat 0x50
( xterm-3349 |#0): new 355 us maximum-latency wakeup.
( watchdog/0-4 |#0): new 468 us maximum-latency wakeup.
ata4: command 0x35 timeout, stat 0x50
ata4: command 0x35 timeout, stat 0x50
ata4: command 0x35 timeout, stat 0x50
ata4: command 0x35 timeout, stat 0x50
ata4: command 0x35 timeout, stat 0x50
ata4: command 0x35 timeout, stat 0x50
After a while, syncing the filesystems hangs the sync process, though
the system continues to function, and I can log in on another VC.
hmmm. Sounds like some attention should be paid to the error handling
portion of the code.
The good news: no long latencies from the status inb() during the
period that it is functional! :-p
heh :)
Dumb question, to be certain that I understood your first paragraph:
you do indeed see at least -some- success talking to devices on port 1,
2, 3... ? i.e. not just port 0 works?
Booting without ADMA gives the usual stable behavior, with the long
latencies from the status inb().
Weird. Well, now that we appear to have narrowed the non-ADMA case down
to inb(), I'm going to punt this one as not-my-problem ;-)
I was a little disconcerted when I saw this this in the trace with ADMA
disabled,
tar-21466 0dnh. 3979us : nv_check_hotplug_adma (nv_interrupt)
until I realized that this
if (!adma_enabled && host_desc->host_type == ADMA)
host_desc->host_type--;
only alters the outcome of the "host_desc->host_type == ADMA" test, but
still uses the ADMA-based hotplug functions.
Yep. That's part of my general plan to eliminate all the
if (adma)
foo
else
bar
type code in favor to create separate ADMA and non-ADMA hooks.
Particularly in the key hot paths, sata_nv should avoid asking "are we
ADMA?" all the time.
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]