Lines Matching full:spare

81  * @reserve: pool of memory from which devices reserve entitlement, incl. spare
82 * @excess: pool of excess entitlement not needed for device reserves or spare
83 * @spare: IO memory for device hotplug functionality
96 size_t spare; member
138 * IO memory available to all devices. The spare pool used to service
158 /* If spare is not fulfilled, the excess pool can not be used. */ in vio_cmo_alloc()
159 if (vio_cmo.spare >= VIO_CMO_MIN_ENT) in vio_cmo_alloc()
183 * The spare pool is replenished first from either memory pool, then
211 /* Spare is a subset of the reserve pool, replenish it first. */ in vio_cmo_dealloc()
212 spare_needed = VIO_CMO_MIN_ENT - vio_cmo.spare; in vio_cmo_dealloc()
215 * Replenish the spare in the reserve pool from the excess pool. in vio_cmo_dealloc()
222 vio_cmo.spare += tmp; in vio_cmo_dealloc()
229 * Replenish the spare in the reserve pool from the reserve pool. in vio_cmo_dealloc()
231 * if needed, and gives it to the spare pool. The amount of used in vio_cmo_dealloc()
237 vio_cmo.spare += tmp; in vio_cmo_dealloc()
272 * Increases in entitlement will be used to fulfill the spare entitlement
291 /* Fulfill spare allocation */ in vio_cmo_entitlement_update()
292 if (vio_cmo.spare < VIO_CMO_MIN_ENT) { in vio_cmo_entitlement_update()
293 tmp = min(delta, (VIO_CMO_MIN_ENT - vio_cmo.spare)); in vio_cmo_entitlement_update()
294 vio_cmo.spare += tmp; in vio_cmo_entitlement_update()
399 /* Calculate minimum entitlement and fulfill spare */ in vio_cmo_balance()
402 cmo->spare = min_t(size_t, VIO_CMO_MIN_ENT, (cmo->entitled - cmo->min)); in vio_cmo_balance()
403 cmo->min += cmo->spare; in vio_cmo_balance()
410 avail = cmo->entitled - cmo->spare; in vio_cmo_balance()
773 tmp = vio_cmo.spare + vio_cmo.excess.free; in vio_cmo_bus_probe()
778 size, (vio_cmo.spare + tmp)); in vio_cmo_bus_probe()
789 /* Use spare if excess pool was insufficient */ in vio_cmo_bus_probe()
790 vio_cmo.spare -= size - tmp; in vio_cmo_bus_probe()
855 /* Replenish spare from freed reserve pool */ in vio_cmo_bus_remove()
856 if (viodev->cmo.entitled && (vio_cmo.spare < VIO_CMO_MIN_ENT)) { in vio_cmo_bus_remove()
858 vio_cmo.spare)); in vio_cmo_bus_remove()
859 vio_cmo.spare += tmp; in vio_cmo_bus_remove()
908 * later when spare is reserved. in vio_cmo_bus_init()
919 vio_cmo.spare = VIO_CMO_MIN_ENT; in vio_cmo_bus_init()
920 vio_cmo.reserve.size = vio_cmo.spare; in vio_cmo_bus_init()
1025 viobus_cmo_rd_attr(spare);