Re: Page allocation failures in guest

From: Avi Kivity
Date: Wed Aug 12 2009 - 01:41:54 EST


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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/