On Friday, 9 February 2007 23:08, Nigel Cunningham wrote: > Hi. > > On Fri, 2007-02-09 at 17:03 -0500, Alan Stern wrote: > > On Sat, 10 Feb 2007, Nigel Cunningham wrote: > > > > > Hi. > > > > > > On Fri, 2007-02-09 at 17:04 +0100, Oliver Neukum wrote: > > > > Hi, > > > > > > > > can there be running aio requests if all tasks are frozen? > > > > > > Since tasks are frozen, no new aio requests would be submitted. We do a > > > sync to ssek to complete existing requests; I haven't looked to see > > > whether that would need extending to flush aio as well, but don't think > > > that would be the case. Given everyone else's silence, so far, you might > > > be better to ask the author(s) of the aio code. > > > > I believe Nigel is basically correct. However sync will only flush aio > > for block devices. Other types of aio will remain active. > > > > aio callbacks are interrupt-driven and execute in a workqueue (see > > fs/aio.c), and as far as I can tell that workqueue doesn't freeze. > > Unless some general facility freezes all workqueues... > > Hmm. That applies to Raid, too? I've had some reports of raid i/o being > caught in the BUG_ON() I have to catch I/O that shouldn't be happening, > but haven't gotten around to looking at them yet. Yes, I think it applies to RAID, but that's because md_thread has been made PF_NOFREEZE explicitly, since we want to be able to save the image to an md-based swap. Pretty much everything that uses workqueues can do that, too. Greetings, Rafael -- If you don't have the time to read, you don't have the time or the tools to write. - Stephen King