Re: [PATCH 0/7] V3 of the async function call patches

From: Arjan van de Ven
Date: Wed Jan 07 2009 - 20:19:20 EST


On Wed, 7 Jan 2009 16:17:24 -0800 (PST)
Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

>
>
> On Wed, 7 Jan 2009, Arjan van de Ven wrote:
> >
> > version 3 of the async function call patches
> >
> > * Dropped the ACPI part; it broke i surprising ways; needs a rethink
> > (working with Len and co on that)
> > * Included asynchronous delete()
>
> Ok, I pulled this, because I really do want the boot speedups and the
> previous version missed the last merge window, but after booting it,
> I started to worry:
>
> My dmesg shows:
>
> [ 2.264955] sd 5:0:0:0: [sdb] Write cache: enabled, read cache:
> enabled, doesn't support DPO or FUA [ 2.264958] sdb:<6>Freeing
> unused kernel memory: 408k freed
>
> Ouch. How come that "Freeing unused kernel memory" got done in the
> middle of the sdb partition thing?
>
> There's a async_synchronize_full() there before the free_initmem(),
> but I'm worrying that it just isn't working. Hmm? What am I missing?
>

ok this part looks funny but it's not really (and it's safe I think).

The async sata thing launches another async thing (the scsi partition
scan).
The synchronize_full() waits for the sata to complete, but doesn't wait
for things that the sata async schedules after the wait started.

is this a problem? not right now, but it means we have a rule that if
an async item schedules another async item, the second one cannot be
__init. (which is ok right now.. scsi already had some of this async
anyway).

I could make the async_full() be more strict if that makes you feel
better, but for this specific purpose it would be over-synchronizing.


--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
--
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/