Commit 95170b2e authored by Daniel Kiper's avatar Daniel Kiper Committed by Konrad Rzeszutek Wilk

xen/balloon: Migration from mod_timer() to schedule_delayed_work()

Migration from mod_timer() to schedule_delayed_work().
Signed-off-by: default avatarDaniel Kiper <dkiper@net-space.pl>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 06f521d5
...@@ -99,8 +99,7 @@ static LIST_HEAD(ballooned_pages); ...@@ -99,8 +99,7 @@ static LIST_HEAD(ballooned_pages);
/* Main work function, always executed in process context. */ /* Main work function, always executed in process context. */
static void balloon_process(struct work_struct *work); static void balloon_process(struct work_struct *work);
static DECLARE_WORK(balloon_worker, balloon_process); static DECLARE_DELAYED_WORK(balloon_worker, balloon_process);
static struct timer_list balloon_timer;
/* When ballooning out (allocating memory to return to Xen) we don't really /* When ballooning out (allocating memory to return to Xen) we don't really
want the kernel to try too hard since that can trigger the oom killer. */ want the kernel to try too hard since that can trigger the oom killer. */
...@@ -172,11 +171,6 @@ static struct page *balloon_next_page(struct page *page) ...@@ -172,11 +171,6 @@ static struct page *balloon_next_page(struct page *page)
return list_entry(next, struct page, lru); return list_entry(next, struct page, lru);
} }
static void balloon_alarm(unsigned long unused)
{
schedule_work(&balloon_worker);
}
static unsigned long current_target(void) static unsigned long current_target(void)
{ {
unsigned long target = balloon_stats.target_pages; unsigned long target = balloon_stats.target_pages;
...@@ -333,7 +327,7 @@ static void balloon_process(struct work_struct *work) ...@@ -333,7 +327,7 @@ static void balloon_process(struct work_struct *work)
/* Schedule more work if there is some still to be done. */ /* Schedule more work if there is some still to be done. */
if (current_target() != balloon_stats.current_pages) if (current_target() != balloon_stats.current_pages)
mod_timer(&balloon_timer, jiffies + HZ); schedule_delayed_work(&balloon_worker, HZ);
mutex_unlock(&balloon_mutex); mutex_unlock(&balloon_mutex);
} }
...@@ -343,7 +337,7 @@ static void balloon_set_new_target(unsigned long target) ...@@ -343,7 +337,7 @@ static void balloon_set_new_target(unsigned long target)
{ {
/* No need for lock. Not read-modify-write updates. */ /* No need for lock. Not read-modify-write updates. */
balloon_stats.target_pages = target; balloon_stats.target_pages = target;
schedule_work(&balloon_worker); schedule_delayed_work(&balloon_worker, 0);
} }
static struct xenbus_watch target_watch = static struct xenbus_watch target_watch =
...@@ -400,10 +394,6 @@ static int __init balloon_init(void) ...@@ -400,10 +394,6 @@ static int __init balloon_init(void)
balloon_stats.balloon_low = 0; balloon_stats.balloon_low = 0;
balloon_stats.balloon_high = 0; balloon_stats.balloon_high = 0;
init_timer(&balloon_timer);
balloon_timer.data = 0;
balloon_timer.function = balloon_alarm;
register_balloon(&balloon_sysdev); register_balloon(&balloon_sysdev);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment