Lines Matching refs:vmpr
77 static struct vmpressure *vmpressure_parent(struct vmpressure *vmpr) in vmpressure_parent() argument
79 struct cgroup_subsys_state *css = vmpressure_to_css(vmpr); in vmpressure_parent()
160 static bool vmpressure_event(struct vmpressure *vmpr, in vmpressure_event() argument
167 mutex_lock(&vmpr->events_lock); in vmpressure_event()
168 list_for_each_entry(ev, &vmpr->events, node) { in vmpressure_event()
178 mutex_unlock(&vmpr->events_lock); in vmpressure_event()
185 struct vmpressure *vmpr = work_to_vmpressure(work); in vmpressure_work_fn() local
192 spin_lock(&vmpr->sr_lock); in vmpressure_work_fn()
201 scanned = vmpr->tree_scanned; in vmpressure_work_fn()
203 spin_unlock(&vmpr->sr_lock); in vmpressure_work_fn()
207 reclaimed = vmpr->tree_reclaimed; in vmpressure_work_fn()
208 vmpr->tree_scanned = 0; in vmpressure_work_fn()
209 vmpr->tree_reclaimed = 0; in vmpressure_work_fn()
210 spin_unlock(&vmpr->sr_lock); in vmpressure_work_fn()
215 if (vmpressure_event(vmpr, level, ancestor, signalled)) in vmpressure_work_fn()
218 } while ((vmpr = vmpressure_parent(vmpr))); in vmpressure_work_fn()
245 struct vmpressure *vmpr; in vmpressure() local
251 vmpr = memcg_to_vmpressure(memcg); in vmpressure()
283 spin_lock(&vmpr->sr_lock); in vmpressure()
284 scanned = vmpr->tree_scanned += scanned; in vmpressure()
285 vmpr->tree_reclaimed += reclaimed; in vmpressure()
286 spin_unlock(&vmpr->sr_lock); in vmpressure()
290 schedule_work(&vmpr->work); in vmpressure()
298 spin_lock(&vmpr->sr_lock); in vmpressure()
299 scanned = vmpr->scanned += scanned; in vmpressure()
300 reclaimed = vmpr->reclaimed += reclaimed; in vmpressure()
302 spin_unlock(&vmpr->sr_lock); in vmpressure()
305 vmpr->scanned = vmpr->reclaimed = 0; in vmpressure()
306 spin_unlock(&vmpr->sr_lock); in vmpressure()
377 struct vmpressure *vmpr = memcg_to_vmpressure(memcg); in vmpressure_register_event() local
415 mutex_lock(&vmpr->events_lock); in vmpressure_register_event()
416 list_add(&ev->node, &vmpr->events); in vmpressure_register_event()
417 mutex_unlock(&vmpr->events_lock); in vmpressure_register_event()
438 struct vmpressure *vmpr = memcg_to_vmpressure(memcg); in vmpressure_unregister_event() local
441 mutex_lock(&vmpr->events_lock); in vmpressure_unregister_event()
442 list_for_each_entry(ev, &vmpr->events, node) { in vmpressure_unregister_event()
449 mutex_unlock(&vmpr->events_lock); in vmpressure_unregister_event()
459 void vmpressure_init(struct vmpressure *vmpr) in vmpressure_init() argument
461 spin_lock_init(&vmpr->sr_lock); in vmpressure_init()
462 mutex_init(&vmpr->events_lock); in vmpressure_init()
463 INIT_LIST_HEAD(&vmpr->events); in vmpressure_init()
464 INIT_WORK(&vmpr->work, vmpressure_work_fn); in vmpressure_init()
474 void vmpressure_cleanup(struct vmpressure *vmpr) in vmpressure_cleanup() argument
480 flush_work(&vmpr->work); in vmpressure_cleanup()