On Mon, Mar 21, 2016 at 02:53:07PM +1100, David Gibson wrote: > This is an implementation of the kernel parts of the PAPR hashed page > table (HPT) resizing extension. > > It contains a complete guest-side implementation - or as complete as > it can be until we have a final PAPR change. > > It also contains a draft host side implementation for KVM HV (the KVM > PR and TCG host-side implementations live in qemu). This works, but > is very slow in the critical section (where the guest must be > stopped). It is significantly slower than the TCG/PR implementation; > unusably slow for large hash tables (~2.8s for a 1G HPT). > > I'm still looking into what's the cause of the slowness, and I'm not > sure yet if the current approach can be tweaked to be fast enough, or > if it will require a new approach.
I have finally managed to have a close look at this series. The approach and implementation seem basically sane, though I think the rehash function could be optimized a bit. I also have an optimized implementation of hpte_page_size() and hpte_base_page_size() which should be a lot quicker than the 2d linear (areal?) search which we do at present. Paul.