/* A zone is low on free memory, so wake its kswapd task to service it.  */
void wakeup_kswapd(struct zone *zone, int order)
/* A zone is low on free memory, so wake its kswapd task to service it.  */
void wakeup_kswapd(struct zone *zone, int order)
{
	pg_data_t *pgdat;
	if (!populated_zone(zone))
		return;
	pgdat = zone->zone_pgdat;
	if (zone_watermark_ok(zone, order, low_wmark_pages(zone), 0, 0))
		return;
	if (pgdat->kswapd_max_order < order)
		pgdat->kswapd_max_order = order;
	if (!cpuset_zone_allowed_hardwall(zone, GFP_KERNEL))
		return;
	if (!waitqueue_active(&pgdat->kswapd_wait))
		return;
	wake_up_interruptible(&pgdat->kswapd_wait);
}