Symbol: vio_cmo
arch/powerpc/platforms/pseries/vio.c
1001
return sprintf(buf, "%lu\n", vio_cmo.name); \
arch/powerpc/platforms/pseries/vio.c
101
} vio_cmo;
arch/powerpc/platforms/pseries/vio.c
1010
return sprintf(buf, "%lu\n", vio_cmo.name.var); \
arch/powerpc/platforms/pseries/vio.c
1025
return sprintf(buf, "%lu\n", vio_cmo.high);
arch/powerpc/platforms/pseries/vio.c
1033
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
1034
vio_cmo.high = vio_cmo.curr;
arch/powerpc/platforms/pseries/vio.c
1035
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
152
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
159
if (vio_cmo.spare >= VIO_CMO_MIN_ENT)
arch/powerpc/platforms/pseries/vio.c
160
excess_free = vio_cmo.excess.free;
arch/powerpc/platforms/pseries/vio.c
164
vio_cmo.curr += size;
arch/powerpc/platforms/pseries/vio.c
165
if (vio_cmo.curr > vio_cmo.high)
arch/powerpc/platforms/pseries/vio.c
166
vio_cmo.high = vio_cmo.curr;
arch/powerpc/platforms/pseries/vio.c
169
vio_cmo.excess.free -= size;
arch/powerpc/platforms/pseries/vio.c
173
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
198
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
199
vio_cmo.curr -= size;
arch/powerpc/platforms/pseries/vio.c
212
spare_needed = VIO_CMO_MIN_ENT - vio_cmo.spare;
arch/powerpc/platforms/pseries/vio.c
220
vio_cmo.excess.size -= tmp;
arch/powerpc/platforms/pseries/vio.c
221
vio_cmo.reserve.size += tmp;
arch/powerpc/platforms/pseries/vio.c
222
vio_cmo.spare += tmp;
arch/powerpc/platforms/pseries/vio.c
237
vio_cmo.spare += tmp;
arch/powerpc/platforms/pseries/vio.c
249
if (excess_freed && (vio_cmo.desired > vio_cmo.reserve.size)) {
arch/powerpc/platforms/pseries/vio.c
250
tmp = min(excess_freed, (vio_cmo.desired - vio_cmo.reserve.size));
arch/powerpc/platforms/pseries/vio.c
252
vio_cmo.excess.size -= tmp;
arch/powerpc/platforms/pseries/vio.c
253
vio_cmo.reserve.size += tmp;
arch/powerpc/platforms/pseries/vio.c
260
vio_cmo.excess.free += excess_freed;
arch/powerpc/platforms/pseries/vio.c
263
schedule_delayed_work(&vio_cmo.balance_q, VIO_CMO_BALANCE_DELAY);
arch/powerpc/platforms/pseries/vio.c
264
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
285
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
288
if (new_entitlement > vio_cmo.entitled) {
arch/powerpc/platforms/pseries/vio.c
289
delta = new_entitlement - vio_cmo.entitled;
arch/powerpc/platforms/pseries/vio.c
292
if (vio_cmo.spare < VIO_CMO_MIN_ENT) {
arch/powerpc/platforms/pseries/vio.c
293
tmp = min(delta, (VIO_CMO_MIN_ENT - vio_cmo.spare));
arch/powerpc/platforms/pseries/vio.c
294
vio_cmo.spare += tmp;
arch/powerpc/platforms/pseries/vio.c
295
vio_cmo.reserve.size += tmp;
arch/powerpc/platforms/pseries/vio.c
300
vio_cmo.entitled += delta;
arch/powerpc/platforms/pseries/vio.c
301
vio_cmo.excess.size += delta;
arch/powerpc/platforms/pseries/vio.c
302
vio_cmo.excess.free += delta;
arch/powerpc/platforms/pseries/vio.c
308
delta = vio_cmo.entitled - new_entitlement;
arch/powerpc/platforms/pseries/vio.c
309
avail = vio_cmo.excess.free;
arch/powerpc/platforms/pseries/vio.c
315
list_for_each_entry(dev_ent, &vio_cmo.device_list, list) {
arch/powerpc/platforms/pseries/vio.c
328
vio_cmo.entitled -= delta;
arch/powerpc/platforms/pseries/vio.c
331
tmp = min(vio_cmo.excess.free, delta);
arch/powerpc/platforms/pseries/vio.c
332
vio_cmo.excess.size -= tmp;
arch/powerpc/platforms/pseries/vio.c
333
vio_cmo.excess.free -= tmp;
arch/powerpc/platforms/pseries/vio.c
340
list_for_each_entry(dev_ent, &vio_cmo.device_list, list) {
arch/powerpc/platforms/pseries/vio.c
355
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
360
schedule_delayed_work(&vio_cmo.balance_q, 0);
arch/powerpc/platforms/pseries/vio.c
361
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
388
struct vio_cmo *cmo;
arch/powerpc/platforms/pseries/vio.c
395
cmo = container_of(work, struct vio_cmo, balance_q.work);
arch/powerpc/platforms/pseries/vio.c
397
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
411
list_for_each_entry(dev_ent, &vio_cmo.device_list, list) {
arch/powerpc/platforms/pseries/vio.c
427
list_for_each_entry(dev_ent, &vio_cmo.device_list, list) {
arch/powerpc/platforms/pseries/vio.c
465
list_for_each_entry(dev_ent, &vio_cmo.device_list, list) {
arch/powerpc/platforms/pseries/vio.c
479
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
640
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
649
list_for_each_entry(dev_ent, &vio_cmo.device_list, list)
arch/powerpc/platforms/pseries/vio.c
655
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
662
vio_cmo.desired += desired - viodev->cmo.desired;
arch/powerpc/platforms/pseries/vio.c
666
vio_cmo.desired -= viodev->cmo.desired - desired;
arch/powerpc/platforms/pseries/vio.c
673
vio_cmo.reserve.size -= viodev->cmo.entitled - desired;
arch/powerpc/platforms/pseries/vio.c
674
vio_cmo.excess.size += viodev->cmo.entitled - desired;
arch/powerpc/platforms/pseries/vio.c
681
vio_cmo.excess.free += viodev->cmo.entitled -
arch/powerpc/platforms/pseries/vio.c
686
schedule_delayed_work(&vio_cmo.balance_q, 0);
arch/powerpc/platforms/pseries/vio.c
687
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
752
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
753
list_add(&dev_ent->list, &vio_cmo.device_list);
arch/powerpc/platforms/pseries/vio.c
757
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
766
if (vio_cmo.min == ((vio_cmo_num_OF_devs() + 1) *
arch/powerpc/platforms/pseries/vio.c
770
vio_cmo.desired += (viodev->cmo.desired -
arch/powerpc/platforms/pseries/vio.c
775
tmp = vio_cmo.spare + vio_cmo.excess.free;
arch/powerpc/platforms/pseries/vio.c
780
size, (vio_cmo.spare + tmp));
arch/powerpc/platforms/pseries/vio.c
781
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
786
tmp = min(size, vio_cmo.excess.free);
arch/powerpc/platforms/pseries/vio.c
787
vio_cmo.excess.free -= tmp;
arch/powerpc/platforms/pseries/vio.c
788
vio_cmo.excess.size -= tmp;
arch/powerpc/platforms/pseries/vio.c
789
vio_cmo.reserve.size += tmp;
arch/powerpc/platforms/pseries/vio.c
792
vio_cmo.spare -= size - tmp;
arch/powerpc/platforms/pseries/vio.c
795
vio_cmo.min += size;
arch/powerpc/platforms/pseries/vio.c
796
vio_cmo.desired += viodev->cmo.desired;
arch/powerpc/platforms/pseries/vio.c
798
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
818
spin_lock_irqsave(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
830
list_for_each_entry(dev_ent, &vio_cmo.device_list, list)
arch/powerpc/platforms/pseries/vio.c
848
vio_cmo.desired -= (viodev->cmo.desired - VIO_CMO_MIN_ENT);
arch/powerpc/platforms/pseries/vio.c
858
if (viodev->cmo.entitled && (vio_cmo.spare < VIO_CMO_MIN_ENT)) {
arch/powerpc/platforms/pseries/vio.c
860
vio_cmo.spare));
arch/powerpc/platforms/pseries/vio.c
861
vio_cmo.spare += tmp;
arch/powerpc/platforms/pseries/vio.c
866
vio_cmo.excess.size += viodev->cmo.entitled;
arch/powerpc/platforms/pseries/vio.c
867
vio_cmo.excess.free += viodev->cmo.entitled;
arch/powerpc/platforms/pseries/vio.c
868
vio_cmo.reserve.size -= viodev->cmo.entitled;
arch/powerpc/platforms/pseries/vio.c
880
spin_unlock_irqrestore(&vio_cmo.lock, flags);
arch/powerpc/platforms/pseries/vio.c
900
memset(&vio_cmo, 0, sizeof(struct vio_cmo));
arch/powerpc/platforms/pseries/vio.c
901
spin_lock_init(&vio_cmo.lock);
arch/powerpc/platforms/pseries/vio.c
902
INIT_LIST_HEAD(&vio_cmo.device_list);
arch/powerpc/platforms/pseries/vio.c
903
INIT_DELAYED_WORK(&vio_cmo.balance_q, vio_cmo_balance);
arch/powerpc/platforms/pseries/vio.c
915
vio_cmo.entitled = 0;
arch/powerpc/platforms/pseries/vio.c
917
vio_cmo.entitled = mpp_data.entitled_mem;
arch/powerpc/platforms/pseries/vio.c
921
vio_cmo.spare = VIO_CMO_MIN_ENT;
arch/powerpc/platforms/pseries/vio.c
922
vio_cmo.reserve.size = vio_cmo.spare;
arch/powerpc/platforms/pseries/vio.c
923
vio_cmo.reserve.size += (vio_cmo_num_OF_devs() *
arch/powerpc/platforms/pseries/vio.c
925
if (vio_cmo.reserve.size > vio_cmo.entitled) {
arch/powerpc/platforms/pseries/vio.c
932
vio_cmo.excess.size = vio_cmo.entitled - vio_cmo.reserve.size;
arch/powerpc/platforms/pseries/vio.c
933
vio_cmo.excess.free = vio_cmo.excess.size;
arch/powerpc/platforms/pseries/vio.c
934
vio_cmo.min = vio_cmo.reserve.size;
arch/powerpc/platforms/pseries/vio.c
935
vio_cmo.desired = vio_cmo.reserve.size;