|
@@ -2080,26 +2080,12 @@ void writeback_set_ratelimit(void)
|
|
|
ratelimit_pages = 16;
|
|
|
}
|
|
|
|
|
|
-static int
|
|
|
-ratelimit_handler(struct notifier_block *self, unsigned long action,
|
|
|
- void *hcpu)
|
|
|
+static int page_writeback_cpu_online(unsigned int cpu)
|
|
|
{
|
|
|
-
|
|
|
- switch (action & ~CPU_TASKS_FROZEN) {
|
|
|
- case CPU_ONLINE:
|
|
|
- case CPU_DEAD:
|
|
|
- writeback_set_ratelimit();
|
|
|
- return NOTIFY_OK;
|
|
|
- default:
|
|
|
- return NOTIFY_DONE;
|
|
|
- }
|
|
|
+ writeback_set_ratelimit();
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
-static struct notifier_block ratelimit_nb = {
|
|
|
- .notifier_call = ratelimit_handler,
|
|
|
- .next = NULL,
|
|
|
-};
|
|
|
-
|
|
|
/*
|
|
|
* Called early on to tune the page writeback dirty limits.
|
|
|
*
|
|
@@ -2122,8 +2108,10 @@ void __init page_writeback_init(void)
|
|
|
{
|
|
|
BUG_ON(wb_domain_init(&global_wb_domain, GFP_KERNEL));
|
|
|
|
|
|
- writeback_set_ratelimit();
|
|
|
- register_cpu_notifier(&ratelimit_nb);
|
|
|
+ cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "mm/writeback:online",
|
|
|
+ page_writeback_cpu_online, NULL);
|
|
|
+ cpuhp_setup_state(CPUHP_MM_WRITEBACK_DEAD, "mm/writeback:dead", NULL,
|
|
|
+ page_writeback_cpu_online);
|
|
|
}
|
|
|
|
|
|
/**
|