vio_cmo_balance(9)
β¨ vio_cmo_balance(9) β¨
okay bestie, this is a page straight out of the Kernel API Manual and honestly? it's giving "kernel internals but make it understandable." buckle up π
πΈ NAME πΈ
vio_cmo_balance β the function that balances entitlement among devices, no cap π
π¦ SYNOPSIS π¦
void vio_cmo_balance (struct work_struct *work );
π ARGUMENTS π
workβ the work queue structure for this operation. that's it, that's the whole argument, she's lowkey simple like that π«Ά
π DESCRIPTION π
so here's the vibe: any system entitlement that's above the minimum needed for devices β or that's already allocated to devices β can be distributed out to the devices. iconic. the list of devices gets iterated through to recalculate the desired entitlement level and to figure out how much entitlement above the minimum entitlement is actually allocated to devices. main character energy for the device list, honestly β¨
small chunks of the available entitlement get handed to devices until their requirements are fulfilled or there's literally no entitlement left to give π upon completion, the sizes of the reserve and excess pools are calculated. slay.
the system minimum entitlement level is also recalculated right here. entitlement will be reserved for devices even after vio_bus_remove is called β this is so reloading the driver works out π§ the OF tree gets walked to count the number of devices present, and this will remove entitlement for devices that have actually left the system after having vio_bus_remove called. so like, gone-gone. π
π₯ SEE ALSO π₯
kernel file ./arch/powerpc/platforms/pseries/vio.c β and her whole friend group:
vio_cmo_alloc(9)vio_cmo_dealloc(9)vio_cmo_entitlement_update(9)vio_cmo_set_dev_desired(9)vio_cmo_bus_probe(9)vio_cmo_bus_remove(9)vio_cmo_bus_init(9)vio_h_cop_sync(9)vio_match_device(9)vio_unregister_driver(9)vio_register_device_node(9)vio_bus_init(9)vio_get_attribute(9)vio_find_node(9)
π« and that's the page! π« this one lives in ./arch/powerpc/platforms/pseries and it's dated October 2026 β so basically, when you're poking at vio.c and need the balance girlies, you know exactly where to find her ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms