Messages in this thread | | | Date | Fri, 18 May 2007 14:06:24 -0700 | From | Andrew Morton <> | Subject | Re: aio is unlikely |
| |
On Fri, 18 May 2007 16:49:49 -0400 "Alex Volkov" <avcp-lkmail@usa.net> wrote:
> > Andrew Morton wrote: > > aio is unlikely > > Stick an unlikely() around is_aio(): I assert that most IO is > synchronous. > > > > -#define in_aio() !is_sync_wait(current->io_wait) > > +#define in_aio() (unlikely(!is_sync_wait(current->io_wait))) > > > Jeff Garzik <jeff@garzik.org> wrote: > > > > > > -#define in_aio() !is_sync_wait(current->io_wait) > > > > +#define in_aio() (unlikely(!is_sync_wait(current->io_wait))) > > > > > > Please revert. Workload-dependent "likelihood" should not cause > > > programmers to add such markers. > > a) disagree with the above > > > > b) if in_aio() ever returns true we do > > > > printk(KERN_ERR "%s(%s:%d) called in async context!\n", > > __FUNCTION__, __FILE__, __LINE__); > > > > so I sure hope it's unlikely for all workloads. > > Shouldn't unlikely() go where in_aio() is actually used, if we printk(error) > there? > Isn't putting likely/unlikely into a boolean function-like macro itself > asking for later trouble? >
Yes, if you agree with Jeff's original point.
But I don't, actually. Sure, on some machines+workloads, AIO is more common than sync IO. But I expect that when we sum across all the machines+workloads in the world, sync IO is more common and is hence the case we should optimise for.
That's assuming that the unlikely() actually does something. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |