Re: long boot delays caused by 070ad7e7 floppy change

From: Andi Kleen
Date: Tue Jul 03 2012 - 14:45:56 EST


On Tue, Jul 03, 2012 at 07:57:15PM +0200, Jiri Kosina wrote:
> On Tue, 3 Jul 2012, Linus Torvalds wrote:
>
> > > Ok, here's the dmesg output that I get:
> > >
> > > [ 0.714316] floppy0: lock_fdc: -1 (out of 8)
> >
> > Ok, thanks. That -1 definitely explains the long delay. It's using
> > "drive=-1" because it has no actual drive number, just the
> > *controller* number.
> >
> > And the backtrace shows what's going on too: it's the
> >
> > user_reset_fdc(-1, FD_RESET_ALWAYS, false);
> >
> > that passes in -1 as the floppy controller number.
> >
> > Ugh.
> >
> > It looks like the code meant for -1 to mean "regular delay"
> > (current_reqD), and -2 to mean MAXTIMEOUT. For some reason the "-1"
> > logic has gotten screwed.
>
> I am still trying to understand the exact situation.
>
> Andi, do I understand you correctly that even if you revert 070ad7e793dc
> on top of current Linus' tree, you are still seeing the 20 second delay
> inside the initcall?

Correct. Here's the debug output with just reverted (without Linus
patch):

[ 2.489559] calling floppy_init+0x0/0xe46 @ 1
[ 2.504363] floppy0: lock_fdc: -1 (out of 8)
[ 2.504410] floppy0: reschedule timeout lock fdc
[ 22.498784] floppy0: reschedule timeout do wakeup
[ 22.498811] floppy0: no floppy controllers found
[ 22.498944] initcall floppy_init+0x0/0xe46 returned -19 after
19577158 usecs

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/