>>> For some reason, I am not seeing this work as I would have expected >>> but I don't have solid reasoning to share yet. It could be simply >>> because I am putting my hook at the wrong place. I will continue >>> investigating this. >>> >>> In any case, I may be over complicating things here, so please let me >>> if there is a better way to do this. >> I have already been demonstrating the "better way" I think there is to >> do this. I will push v7 of it early next week unless there is some >> other feedback. By putting the bit in the page and controlling what >> comes into and out of the lists it makes most of this quite a bit >> easier. The only limitation is you have to modify where things get >> placed in the lists so you don't create a "vapor lock" that would >> stall the feed of pages into the reporting engine. >> >>> If this overhead is not significant we can probably live with it. >> You have bigger issues you still have to overcome as I recall. Didn't >> you still need to sort out hotplu > > For memory hotplug, my impression is that it should > not be a blocker for taking the first step (in case we do decide to > go ahead with this approach). Another reason why I am considering > this as future work is that memory hot(un)plug is still under > development and requires fixing. (Specifically, issue such as zone > shrinking which will directly impact the bitmap approach is still > under discussion).
Memory hotplug is way more reliable than memory unplug - however, but both are used in production. E.g. the zone shrinking you mention is something that is not "optimal", but works in most scenarios. So both features are rather in a "production/fixing" stage than a pure "development" stage. However, I do agree that memory hot(un)plug is not something high-priority for free page hinting in the first shot. If it works out of the box (Alexander's approach) - great - if not it is just one additional scenario where free page hinting might not be optimal yet (like vfio where we can't use it completely right now). After all, most virtual environment (under KVM) I am aware of don't use DIMM-base memory hot(un)plug at all. The important part is that it will not break when memory is added/removed. > >> g and a sparse map with a wide span >> in a zone? Without those resolved the bitmap approach is still a no-go >> regardless of performance. > > For sparsity, the memory wastage should not be significant as I > am tracking pages on the granularity of (MAX_ORDER - 2) and maintaining > the bitmaps on a per-zone basis (which was not the case earlier). To handle sparsity one would have to have separate bitmaps for each section. Roughly 64 bit per 128MB section. Scanning the scattered bitmap would get more expensive. Of course, one could have a hierarchical bitmap to speed up the search etc. But again, I think we should have a look how much of an issue sparse zones/nodes actually are in virtual machines (KVM). The setups I am aware of minimize sparsity (e.g., QEMU will place DIMMs consecutively in memory, only aligning to e.g, 128MB on x86 if required). Usually all memory in VMs is onlined to the NORMAL zone (except special cases of course). The only "issue" would be if you start mixing DIMMs of different nodes when hotplugging memory. The overhead for 1bit per 2MB could be almost neglectable in most setups. But I do agree that for the bitmap-based approach there might be more scenarios where you'd rather not want to use free page hinting and instead disable it. > > However, if you do consider this as a block I will think about it and try to > fix it. > In the worst case, if I don't find a solution I will add this as a known > limitation > for this approach in my cover. > >> - Alex -- Thanks, David / dhildenb --------------------------------------------------------------------- To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org