Lines Matching refs:vmpr

75 static struct vmpressure *vmpressure_parent(struct vmpressure *vmpr)
77 struct mem_cgroup *memcg = vmpressure_to_memcg(vmpr);
157 static bool vmpressure_event(struct vmpressure *vmpr,
164 mutex_lock(&vmpr->events_lock);
165 list_for_each_entry(ev, &vmpr->events, node) {
175 mutex_unlock(&vmpr->events_lock);
182 struct vmpressure *vmpr = work_to_vmpressure(work);
189 spin_lock(&vmpr->sr_lock);
196 * vmpr->reclaimed is in sync.
198 scanned = vmpr->tree_scanned;
200 spin_unlock(&vmpr->sr_lock);
204 reclaimed = vmpr->tree_reclaimed;
205 vmpr->tree_scanned = 0;
206 vmpr->tree_reclaimed = 0;
207 spin_unlock(&vmpr->sr_lock);
212 if (vmpressure_event(vmpr, level, ancestor, signalled))
215 } while ((vmpr = vmpressure_parent(vmpr)));
242 struct vmpressure *vmpr;
255 vmpr = memcg_to_vmpressure(memcg);
283 spin_lock(&vmpr->sr_lock);
284 scanned = vmpr->tree_scanned += scanned;
285 vmpr->tree_reclaimed += reclaimed;
286 spin_unlock(&vmpr->sr_lock);
290 schedule_work(&vmpr->work);
298 spin_lock(&vmpr->sr_lock);
299 scanned = vmpr->scanned += scanned;
300 reclaimed = vmpr->reclaimed += reclaimed;
302 spin_unlock(&vmpr->sr_lock);
305 vmpr->scanned = vmpr->reclaimed = 0;
306 spin_unlock(&vmpr->sr_lock);
377 struct vmpressure *vmpr = memcg_to_vmpressure(memcg);
415 mutex_lock(&vmpr->events_lock);
416 list_add(&ev->node, &vmpr->events);
417 mutex_unlock(&vmpr->events_lock);
438 struct vmpressure *vmpr = memcg_to_vmpressure(memcg);
441 mutex_lock(&vmpr->events_lock);
442 list_for_each_entry(ev, &vmpr->events, node) {
449 mutex_unlock(&vmpr->events_lock);
454 * @vmpr: Structure to be initialized
459 void vmpressure_init(struct vmpressure *vmpr)
461 spin_lock_init(&vmpr->sr_lock);
462 mutex_init(&vmpr->events_lock);
463 INIT_LIST_HEAD(&vmpr->events);
464 INIT_WORK(&vmpr->work, vmpressure_work_fn);
469 * @vmpr: Structure to be cleaned up
474 void vmpressure_cleanup(struct vmpressure *vmpr)
480 flush_work(&vmpr->work);