asi_series cluster_0 Design doc cluster_1 Retire the stashed GDT/LDT L1 pointers cluster_2 vCPU-scoped perdomain interfaces cluster_3 Root-PT flush prep cluster_4 Per-vCPU address space and mapcache cluster_5 Rendezvous / callfunc off-stack cluster_6 Mapcache prep cluster_7 Per-CPU stacks cluster_8 PV dom0 build cluster_9 Mapcache / PMAP everywhere cluster_10 Directmap removal cluster_11 Move CPU stacks from xenheap to domheap cluster_12 Multi-page transient maps cluster_13 vCPU state window cluster_14 FPU / XSAVE area handling p01 01  add Address Space Isolation (ASI) design document p02 02  allocate the per-domain page-tables from the xenheap p03 03  introduce populate_perdoma in_mapping() p02->p03 p04 04  use populate_perdomain_map ping() to map the Xen GDT p03->p04 p05 05  set/clear guest GDT mappings using {populate,destroy}_per... p03->p05 p06 06  update guest LDT mappings using {populate,destroy}_p erdom... p03->p06 p17 17  create per-domain mapping for guest_root_pt p03->p17 p07 07  remove stashing of GDT/LDT L1 page-tables p04->p07 p05->p07 p06->p07 p08 08  simplify create_perdomain_mapping() interface p07->p08 p15 15  introduce per-vCPU L3 page-table p07->p15 p09 09  purge unneeded destroy_per domain_mapping() p10 10  switch destroy_perdomain_m apping() parameter from domain ... p09->p10 p11 11  switch create_perdomain_mapping() domain parameter to vCPU p14 14  introduce Address Space Isolation command line option p11->p14 p12 12  untie issuing FLUSH_ROOT_PGTBL from XPTI p13 13  move FLUSH_ROOT_PGTBL handling before TLB flush p12->p13 p18 18  allow using a unique per- vCPU root page table (L4) p13->p18 p33 33  move the set_mtrr() rendezvous data off the stack p14->p15 p16 16  introduce a per-vCPU mapcache when using ASI p15->p16 p15->p18 p17->p18 p42 42  switch to a per-CPU mapped stack when using ASI p18->p42 p25 25  Initialize the mapcache for PV, HVM, and idle domains p18->p25 p19 19  introduce a per-vCPU state window in the perdomain area p18->p19 p34 34  move smp_send_stop()'s AP- stop flag off the stack p35 35  move the calibration rendezvous data off the stack p36 36  move the stop_machine payload off the stack p37 37  introduce by-value payloads for call-function IPIs p38 38  pass stack-allocated callfunc payloads by value p37->p38 p39 39  pass error-injection callfunc payloads by value p37->p39 p40 40  pass remaining stack- allocated callfunc payloads by value p37->p40 p41 41  assert that by-pointer callfunc payloads are not on the s... p38->p41 p39->p41 p40->p41 p41->p42 p24 24  allow alloc_heap_pages() calls with current == NULL p24->p25 p43 43  zero stack on context switch p42->p43 p46 46  skip the XPTI stack-alias clone with per-CPU stacks p42->p46 g_stack Xen stacks per-CPU private and scrubbed p43->g_stack p22 22  Use copy_domain_page() when relocating the dom0 initrd p23 23  Rewrite how building PV dom0 handles domheap mappings p22->p23 p32 32  Wire the on-demand directmap into the asi= option p23->p32 p25->p42 p27 27  Remove the fast paths when mfn is not in the directmap p25->p27 p48 48  introduce map_domain_pages() p25->p48 g_map Transient guest mappings per-vCPU private p25->g_map p26 26  Add support for the PMAP p26->p27 p27->p32 p28 28  Leave early boot slightly earlier p30 30  vmap heap nodes when they are outside the direct map p28->p30 p29 29  Add a path for xenheap when there is no direct map p29->p32 p30->p32 p31 31  Do not create valid mappings when the directmap is on demand p31->p32 g_dmap No always-mapped full directmap p32->g_dmap p44 44  track per-CPU stack pages alongside stack_base p47 47  allocate per-CPU stacks from the domheap under ASI p44->p47 p45 45  keep a per-CPU mirror of current for cross-CPU readers p45->p47 p46->p47 p47->g_stack p49 49  use map_domain_pages() for cross-page emulated writes p48->p49 p50 50  use map_domain_pages() for multi-frame emulated accesses p48->p50 p57 57  move the guest XSAVE area behind the vCPU state window p48->p57 p49->g_map p50->g_map p20 20  allocate VMCBs from the domain heap behind the vCPU state... p19->p20 p21 21  move the guest MSR load/save list off always- mapped memory p19->p21 p21->p57 g_state Guest register state not always-mapped p21->g_state p51 51  Refactor FXSAVE_AREA to use wrappers p52 52  Map/unmap xsave area in read_bndcfgu() p51->p52 p53 53  Pass explicit xsave areas to fpu_(f)xsave() p51->p53 p54 54  Pass explicit xsave areas to fpu_(f)xrstor() p51->p54 p52->p57 p53->p57 p54->p57 p55 55  classify xsave-area seam accesses by failure mode p55->p57 p56 56  restore FPU state after switching to the new page tables p56->p57 p57->g_state

Xen ASI series — 57 patches

Selected patch

Click a patch. Blue outline = what it needs (ancestors); vermilion = what needs it (descendants). Click again or press Clear to reset.

Legend

verified dependency
inferred (verify during group review)
gold arrow: completes an end goal (hexagons). Each goal is drawn beside the group that achieves it; together the four constitute the ASI end state (guest-owned data not reachable from other contexts).
green node border: vetted so far (status shown on selection)
double border: posted to xen-devel (thread link on selection)
Dependencies already implied by a drawn path are recorded but not drawn; the click-cone includes them.

Postings

Open items

Source of truth: gen-depgraph.py (same directory); positions read live from stg series; regenerate with python3 gen-depgraph.py.