Hi Julien, > -----Original Message----- > From: Julien Grall <jul...@xen.org> > >>> +Users should be mindful that the static heap should at least satisfy the > >>> +allocation of the P2M maps for all guests. Currently, the minimal > >> requirement > >>> +of per-domain P2M pages pool is in-sync with function > >>> +libxl__get_required_paging_memory() (for xl-created domUs) and > >>> +domain_p2m_pages() (for dom0less domUs), that is, 1MB per vCPU, > plus > >> 4KiB per > >>> +MiB of RAM for the P2M map, and plus 512KiB to cover extended > regions. > >> > >> I think this wording is OK if the feature is a tech preview. However, if > >> this is security supported, we need to provide some more details about > >> the size. > >> > >> In particular, this doesn't tell a user how they can find the size that > >> would fit them. Can this be decided with a formula? > > My feeling of the formula would be: > > > > Total heap size needed per guest = 1MB * num_guest_vcpu + > > 4KB * guest_ram_size_in_mb + 512KB + > > the memory allocated from heap by xzalloc/xzalloc_array for > various uses > > for example alloc_domain_struct(), d->shared_info, evtchn_bucket, etc. > > There are also some pages allocated using alloc_{xen,dom}heap_pages(). > We also need to take into account runtime allocation done by some > hypercalls (I can't remember which one) or subsystem like OPTee. > > In addition to that, you also have memory for the system. E.g > frametables, Xen page-tables, various driver allocations... > > > > > Is this formula somehow make sense to you? I think we need to have a > > rough estimation of the last part (boot time allocation) though. > > That's going to be hard. It will vary depending on your system and this > could change in the future as we add more features. For instance, I > expect the PCI passthrough will need some memory to keep track of all > the devices. > > I am worry the formula will become complex. Ideally we need to have a > very simple formula. If that's not possible, then we need to provide a > way for the user to estimate it at runtime (like what I suggested before).
I agree, I think the simple formula can only be achieved is we have an estimation of the worst case scenario of those scattered memory usages. I remember I once had a try so let me try to find the results back that time... I am also very interested in the method that you proposed to provide a mechanism for users to get the system memory allocation at runtime. But IIUC this needs some work in another series. Could you please confirm if I am understanding correctly? Or probably Xen has some mechanisms that I am likely unaware? Thanks! Kind regards, Henry > > Cheers, > > -- > Julien Grall