|
@@ -180,12 +180,12 @@ static void vmpressure_work_fn(struct work_struct *work)
|
|
|
if (!vmpr->scanned)
|
|
|
return;
|
|
|
|
|
|
- mutex_lock(&vmpr->sr_lock);
|
|
|
+ spin_lock(&vmpr->sr_lock);
|
|
|
scanned = vmpr->scanned;
|
|
|
reclaimed = vmpr->reclaimed;
|
|
|
vmpr->scanned = 0;
|
|
|
vmpr->reclaimed = 0;
|
|
|
- mutex_unlock(&vmpr->sr_lock);
|
|
|
+ spin_unlock(&vmpr->sr_lock);
|
|
|
|
|
|
do {
|
|
|
if (vmpressure_event(vmpr, scanned, reclaimed))
|
|
@@ -240,11 +240,11 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg,
|
|
|
if (!scanned)
|
|
|
return;
|
|
|
|
|
|
- mutex_lock(&vmpr->sr_lock);
|
|
|
+ spin_lock(&vmpr->sr_lock);
|
|
|
vmpr->scanned += scanned;
|
|
|
vmpr->reclaimed += reclaimed;
|
|
|
scanned = vmpr->scanned;
|
|
|
- mutex_unlock(&vmpr->sr_lock);
|
|
|
+ spin_unlock(&vmpr->sr_lock);
|
|
|
|
|
|
if (scanned < vmpressure_win || work_pending(&vmpr->work))
|
|
|
return;
|
|
@@ -367,7 +367,7 @@ void vmpressure_unregister_event(struct cgroup *cg, struct cftype *cft,
|
|
|
*/
|
|
|
void vmpressure_init(struct vmpressure *vmpr)
|
|
|
{
|
|
|
- mutex_init(&vmpr->sr_lock);
|
|
|
+ spin_lock_init(&vmpr->sr_lock);
|
|
|
mutex_init(&vmpr->events_lock);
|
|
|
INIT_LIST_HEAD(&vmpr->events);
|
|
|
INIT_WORK(&vmpr->work, vmpressure_work_fn);
|