STRUCT ACRN_VM(9)
๐ struct_acrn_vm(9) โ like, the whole vibe of an ACRN User VM
okay so bestie, welcome to the Kernel API Manual โจ this is the page for struct acrn_vm, which is literally the receipt for what makes an ACRN User VM a User VM. every field, every lock, every list โ it's all here, no cap. ๐ซถ
๐ธ NAME ๐ธ
struct acrn_vm โ Properties of ACRN User VM. that's it, that's the whole name section, she's short and she knows it ๐
๐ฆ SYNOPSIS ๐ฆ
here's the actual struct, copied character for character because we do NOT play with code in this house:
struct acrn_vm {
struct list_head list;
u16 vmid;
int vcpu_num;
unsigned long flags;
struct mutex regions_mapping_lock;
struct vm_memory_mapping
regions_mapping[ACRN_MEM_MAPPING_MAX];
int regions_mapping_count;
spinlock_t ioreq_clients_lock;
struct list_head ioreq_clients;
struct acrn_ioreq_client *default_client;
struct acrn_io_request_buffer *ioreq_buf;
struct page *ioreq_page;
u32 pci_conf_addr;
struct page *monitor_page;
struct mutex ioeventfds_lock;
struct list_head ioeventfds;
struct acrn_ioreq_client *ioeventfd_client;
struct mutex irqfds_lock;
struct list_head irqfds;
struct workqueue_struct *irqfd_wq;
};
(and yes, that one member decl is split across two lines in the original and we are keeping it, okay, respect the source ๐)
๐ Members ๐
this is the main character energy section. every single field, in order, no skips:
listโ her entry within the global list of all VMs. she's on the list, she's iconic, she's tracked. ๐vmidโ User VM ID. the name tag at the party. ๐vcpu_numโ number of virtual CPUs in the VM. how many lil workers she's got. ๐ฅflagsโ flags (ACRN_VM_FLAG_*) of the VM. important lore: this is VM flag management in HSM, and it's different from theacrn_vm_creation.vm_flag. do not confuse them, bestie, they are not the same thing, fr fr. ๐regions_mapping_lockโ the lock protectingacrn_vm.regions_mappingandacrn_vm.regions_mapping_count. bodyguard behavior. ๐ก๏ธ (ok there's no shield emoji in the allowed list but the vibe stands)regions_mappingโ memory mappings of this VM. the map of her territory ๐regions_mapping_countโ number of memory mappings of this VM. literally just the count, keeping the map honest ๐งฎioreq_clients_lockโ lock to protectioreq_clientsanddefault_client. another bodyguard, different ward ๐ioreq_clientsโ the I/O request clients list of this VM. the group chat of I/O clients, lowkey ๐ซถdefault_clientโ the default I/O request client. when nobody else gets picked, she does ๐ioreq_bufโ I/O request shared buffer. the shared snack table, everyone's welcome ๐ioreq_pageโ the page of the I/O request shared buffer. the physical page that holds the above ๐pci_conf_addrโ address of a PCI configuration access emulation. (the original says "Address of a PCI configuration access emulation" and we are saying it exactly, no edits ๐ญ)monitor_pageโ page of interrupt statistics of User VM. stats page, she's the analytics dashboard ๐ioeventfds_lockโ lock to protect theioeventfdslist. ๐ioeventfdsโ list to link allhsm_ioeventfd. all of them. linked. chain gang โ๏ธ (cute chain gang though)ioeventfd_clientโ I/O client forioeventfdsof the VM. she handles the ioeventfds business specifically โจirqfds_lockโ lock to protect theirqfdslist. yes, another lock, we have so many locks, it's giving secure ๐irqfdsโ list to link allhsm_irqfd. same energy, different list ๐ซirqfd_wqโ workqueue for irqfd async shutdown. the cleanup crew, doing it asynchronously, slay ๐
๐ SEE ALSO ๐
go read these too, iykyk, they're all connected:
- Kernel file
./drivers/virt/acrn/acrn_drv.h struct vm_memory_region_op(9)struct vm_memory_region_batch(9)struct vm_memory_mapping(9)struct acrn_ioreq_buffer(9)struct acrn_ioreq_client(9)
that's the page bestie, you ate it up ๐
โจ a big sparkly thank you to ./drivers/virt/acrn for the source, dated October 2026, and this manual page will forever be known as struct acrn_vm(9) ๐๐ฆ๐
๐ฆ 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