Lines Matching refs:async_pf
17 #include "async_pf.h"
40 INIT_LIST_HEAD(&vcpu->async_pf.done);
41 INIT_LIST_HEAD(&vcpu->async_pf.queue);
42 spin_lock_init(&vcpu->async_pf.lock);
71 spin_lock(&vcpu->async_pf.lock);
72 first = list_empty(&vcpu->async_pf.done);
73 list_add_tail(&apf->link, &vcpu->async_pf.done);
75 spin_unlock(&vcpu->async_pf.lock);
115 spin_lock(&vcpu->async_pf.lock);
118 while (!list_empty(&vcpu->async_pf.queue)) {
120 list_first_entry(&vcpu->async_pf.queue,
125 * We know it's present in vcpu->async_pf.done, do
131 spin_unlock(&vcpu->async_pf.lock);
140 spin_lock(&vcpu->async_pf.lock);
143 while (!list_empty(&vcpu->async_pf.done)) {
145 list_first_entry(&vcpu->async_pf.done,
149 spin_unlock(&vcpu->async_pf.lock);
151 spin_lock(&vcpu->async_pf.lock);
153 spin_unlock(&vcpu->async_pf.lock);
155 vcpu->async_pf.queued = 0;
162 while (!list_empty_careful(&vcpu->async_pf.done) &&
164 spin_lock(&vcpu->async_pf.lock);
165 work = list_first_entry(&vcpu->async_pf.done, typeof(*work),
168 spin_unlock(&vcpu->async_pf.lock);
175 vcpu->async_pf.queued--;
189 if (vcpu->async_pf.queued >= ASYNC_PF_PER_VCPU)
214 list_add_tail(&work->queue, &vcpu->async_pf.queue);
215 vcpu->async_pf.queued++;
228 if (!list_empty_careful(&vcpu->async_pf.done))
238 spin_lock(&vcpu->async_pf.lock);
239 first = list_empty(&vcpu->async_pf.done);
240 list_add_tail(&work->link, &vcpu->async_pf.done);
241 spin_unlock(&vcpu->async_pf.lock);
246 vcpu->async_pf.queued++;