Re: [PATCH 15/26] aio: support for IO polling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2018-12-09 at 07:36 -0700, Jens Axboe wrote:
> On 12/9/18 3:02 AM, Benny Halevy wrote:
> > > +static int __aio_iopoll_check(struct kioctx *ctx, struct io_event __user *event,
> > > +			      unsigned int *nr_events, long min_nr, long max_nr)
> > > +{
> > > +	int ret = 0;
> > > +
> > > +	while (!*nr_events || !need_resched()) {
> > 
> > Hmm, it doesn't make sense to spin in this loop
> > if the user got _all_ the events he requested, even
> > if !need_resched().  How about:
> > 
> > 	while (!*nr_events || (!need_resched() && *nr_events < max_nr)) {
> 
> That checking is done io aio_iopoll_getevents(), there are other
> conditions where we don't want to spin, like nr_events >= min_nr for
> instance. But all that logic is in aio_iopoll_getevents(), from here we

Right.  We'll break from the loop in this case.

> just know that we probably need to continue if nr_events == 0.
> 
> I don't think there's an issue here, and no spinning when we don't need
> it.
> 





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux