Zachary Amsden wrote: > Are you sure that it still wins even with these patches? I can't see > ptep_get_and_clear getting much faster than a pure non-emulated, and > the stress case which wins 25-30% is fork/exit being able to drop the > pte updates in zap_pte_range from trapping and / or going into a pte > update queue. That is what my patches addressed for shadow paging > performance - the call to pte_update can be dropped - but you should > already be getting this benefit for Xen, since there pte_update is a > nop. Are you sure you are unpinning the page tables and mapping them > back as writable pages prior to address space destruction? I'll ask Jan for more details later today, but he did this work on xen-unstable. The specific change is that it only bothers to update the pte if it wasn't already not-present. I guess that's a generally applicable optimisation, though it wouldn't do much for native. > Maybe the best strategy is to just re-add ptep_get_and_clear as a > paravirt-op after the whole set of patches and before Jan's speedup > patch? Yes, I'm happy with native_ptep_get_and_clear to be a direct pagetable write for pulldown, and then use ptep_get_and_clear as a hook for manipulating a live pagetable. I don't see any particular need to put Jan's patch into the pvops Xen right now, but it would be nice to have the option. J