mm: make vmstat -rt aware
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
1ea4f83f1b
commit
8972c413b1
|
@ -29,7 +29,9 @@ DECLARE_PER_CPU(struct vm_event_state, vm_event_states);
|
|||
|
||||
static inline void __count_vm_event(enum vm_event_item item)
|
||||
{
|
||||
preempt_disable_rt();
|
||||
__this_cpu_inc(vm_event_states.event[item]);
|
||||
preempt_enable_rt();
|
||||
}
|
||||
|
||||
static inline void count_vm_event(enum vm_event_item item)
|
||||
|
@ -39,7 +41,9 @@ static inline void count_vm_event(enum vm_event_item item)
|
|||
|
||||
static inline void __count_vm_events(enum vm_event_item item, long delta)
|
||||
{
|
||||
preempt_disable_rt();
|
||||
__this_cpu_add(vm_event_states.event[item], delta);
|
||||
preempt_enable_rt();
|
||||
}
|
||||
|
||||
static inline void count_vm_events(enum vm_event_item item, long delta)
|
||||
|
|
|
@ -217,6 +217,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
|
|||
long x;
|
||||
long t;
|
||||
|
||||
preempt_disable_rt();
|
||||
x = delta + __this_cpu_read(*p);
|
||||
|
||||
t = __this_cpu_read(pcp->stat_threshold);
|
||||
|
@ -226,6 +227,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item,
|
|||
x = 0;
|
||||
}
|
||||
__this_cpu_write(*p, x);
|
||||
preempt_enable_rt();
|
||||
}
|
||||
EXPORT_SYMBOL(__mod_zone_page_state);
|
||||
|
||||
|
@ -258,6 +260,7 @@ void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
|
|||
s8 __percpu *p = pcp->vm_stat_diff + item;
|
||||
s8 v, t;
|
||||
|
||||
preempt_disable_rt();
|
||||
v = __this_cpu_inc_return(*p);
|
||||
t = __this_cpu_read(pcp->stat_threshold);
|
||||
if (unlikely(v > t)) {
|
||||
|
@ -266,6 +269,7 @@ void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
|
|||
zone_page_state_add(v + overstep, zone, item);
|
||||
__this_cpu_write(*p, -overstep);
|
||||
}
|
||||
preempt_enable_rt();
|
||||
}
|
||||
|
||||
void __inc_zone_page_state(struct page *page, enum zone_stat_item item)
|
||||
|
@ -280,6 +284,7 @@ void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
|
|||
s8 __percpu *p = pcp->vm_stat_diff + item;
|
||||
s8 v, t;
|
||||
|
||||
preempt_disable_rt();
|
||||
v = __this_cpu_dec_return(*p);
|
||||
t = __this_cpu_read(pcp->stat_threshold);
|
||||
if (unlikely(v < - t)) {
|
||||
|
@ -288,6 +293,7 @@ void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
|
|||
zone_page_state_add(v - overstep, zone, item);
|
||||
__this_cpu_write(*p, overstep);
|
||||
}
|
||||
preempt_enable_rt();
|
||||
}
|
||||
|
||||
void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
|
||||
|
|
Loading…
Reference in New Issue