One problem is the accessed bit. If it's unset, the shadow code cannot
make the pte present (since it has to trap in order to set the accessed
bit); if it's set, we're lying to the vm.
This doesn't affect Xen, only kvm.
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.