Messages in this thread | | | Date | Wed, 7 Jan 2009 17:21:02 -0800 | From | Arjan van de Ven <> | Subject | Re: [PATCH 0/7] V3 of the async function call patches |
| |
On Wed, 7 Jan 2009 16:17:24 -0800 (PST) Linus Torvalds <torvalds@linux-foundation.org> 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
| |