lkml.org 
[lkml]   [2012]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: long boot delays caused by 070ad7e7 floppy change
On Tue, Jul 3, 2012 at 11:58 AM, Andi Kleen <andi@firstfloor.org> wrote:
>
> [ 2.496493] calling floppy_init+0x0/0xe46 @ 1
> [ 2.511303] floppy0: lock_fdc: -1 (out of 8)
> [ 2.511346] floppy0: __reschedule_timeout: setting timeout to 750

Ahhah. And you have CONFIG_HZ250 set, don't you?

So it's actually asking for a 3-second timeout like it should.

> [ 2.511372] floppy0: reschedule timeout lock fdc
> [ 22.501757] floppy0: reschedule timeout do wakeup

But that actual timeout is too damn reliably pretty much exactly 20s
for it to be anything else.

I wonder if 'fd_timeout' had been previously queued already with the
20s timeout, and not canceled. So then the new queuing of a 3-second
timeout doesn't actually do anything, because the
WORK_STRUCT_PENDING_BIT is still set.

So maybe we're missing a cancel somewhere.

What happens if you add a

cancel_delayed_work(&fd_timeout);

to before the queue_delayed_work() in __reschedule_timeout()? Does
that possibly make the delay really be 3 seconds?

Linus


\
 
 \ /
  Last update: 2012-07-03 22:01    [W:0.060 / U:2.404 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site