ATA timeout issues

Matthew Dillon dillon at
Wed Oct 13 20:20:18 PDT 2004

    I thought this patch might help but after further review I don't think
    it will.  It turns out that the ATA driver doesn't use the busdma
    API yet.

    Another possiblity is that the ATA device is sharing an interrupt
    with another device when booted into DragonFly, and not sharing it
    when booted into FreeBSD-4.  There are several threads on the FreeBSD
    lists related to issues with shared ATA interrupts.

    I'm investigating other avenues.


:    I compared the base code for the PIIX4 (71118086) chipset and it's
:    the same between 4.10 and DragonFly.  However, I did find a potential
:    issue in the bus_dma*() support code.  It appears to still be using
:    M_NOWAIT mallocs in a number of places where it should not be.
:    My question to you is whether you can better characterize the timeout
:    issue.   Do you get a timeout immediately during probe or mounting root,
:    or does the timeout occur later on?
:    If it fails immediately the patch below probably will not help.  But if
:    it fails at some random point later on the patch might help.
:					-Matt
:Index: i386/busdma_machdep.c
:RCS file: /cvs/src/sys/i386/i386/busdma_machdep.c,v
:retrieving revision 1.9
:diff -u -r1.9 busdma_machdep.c
:--- i386/busdma_machdep.c	19 Apr 2004 13:37:43 -0000	1.9
:+++ i386/busdma_machdep.c	13 Oct 2004 05:04:54 -0000
:@@ -138,7 +138,7 @@
: 	/* Return a NULL tag on failure */
: 	*dmat = NULL;

More information about the Kernel mailing list