diff options
| -rw-r--r-- | mm/slab.c | 8 |
1 files changed, 5 insertions, 3 deletions
| @@ -946,7 +946,8 @@ static void __devinit start_cpu_timer(int cpu) | |||
| 946 | if (keventd_up() && reap_work->work.func == NULL) { | 946 | if (keventd_up() && reap_work->work.func == NULL) { |
| 947 | init_reap_node(cpu); | 947 | init_reap_node(cpu); |
| 948 | INIT_DELAYED_WORK(reap_work, cache_reap); | 948 | INIT_DELAYED_WORK(reap_work, cache_reap); |
| 949 | schedule_delayed_work_on(cpu, reap_work, HZ + 3 * cpu); | 949 | schedule_delayed_work_on(cpu, reap_work, |
| 950 | __round_jiffies_relative(HZ, cpu)); | ||
| 950 | } | 951 | } |
| 951 | } | 952 | } |
| 952 | 953 | ||
| @@ -4006,7 +4007,7 @@ static void cache_reap(struct work_struct *unused) | |||
| 4006 | if (!mutex_trylock(&cache_chain_mutex)) { | 4007 | if (!mutex_trylock(&cache_chain_mutex)) { |
| 4007 | /* Give up. Setup the next iteration. */ | 4008 | /* Give up. Setup the next iteration. */ |
| 4008 | schedule_delayed_work(&__get_cpu_var(reap_work), | 4009 | schedule_delayed_work(&__get_cpu_var(reap_work), |
| 4009 | REAPTIMEOUT_CPUC); | 4010 | round_jiffies_relative(REAPTIMEOUT_CPUC)); |
| 4010 | return; | 4011 | return; |
| 4011 | } | 4012 | } |
| 4012 | 4013 | ||
| @@ -4052,7 +4053,8 @@ next: | |||
| 4052 | next_reap_node(); | 4053 | next_reap_node(); |
| 4053 | refresh_cpu_vm_stats(smp_processor_id()); | 4054 | refresh_cpu_vm_stats(smp_processor_id()); |
| 4054 | /* Set up the next iteration */ | 4055 | /* Set up the next iteration */ |
| 4055 | schedule_delayed_work(&__get_cpu_var(reap_work), REAPTIMEOUT_CPUC); | 4056 | schedule_delayed_work(&__get_cpu_var(reap_work), |
| 4057 | round_jiffies_relative(REAPTIMEOUT_CPUC)); | ||
| 4056 | } | 4058 | } |
| 4057 | 4059 | ||
| 4058 | #ifdef CONFIG_PROC_FS | 4060 | #ifdef CONFIG_PROC_FS |
