Messages in this thread | | | Date | Wed, 12 Aug 2009 08:41:21 +0300 | From | Avi Kivity <> | Subject | Re: Page allocation failures in guest |
| |
On 08/12/2009 08:31 AM, Rusty Russell wrote: > +static void refill_work(struct work_struct *work) > +{ > + struct virtnet_info *vi; > + bool still_empty; > + > + vi = container_of(work, struct virtnet_info, refill); > + napi_disable(&vi->napi); > + try_fill_recv(vi, GFP_KERNEL); > + still_empty = (vi->num == 0); > + napi_enable(&vi->napi); > + > + /* In theory, this can happen: if we don't get any buffers in > + * we will*never* try to fill again. Sleeping in keventd if > + * bad, but that is worse. */ > + if (still_empty) { > + msleep(100); > + schedule_work(&vi->refill); > + } > +} > + >
schedule_delayed_work()?
-- Do not meddle in the internals of kernels, for they are subtle and quick to panic.
| |