Skip to contentSkip to conversation

KVM MMU: allow more shadow pages become asynchronous

PATCH In review Xiao Guangrong 1 participant 2 messages May 6, 2010 – May 7, 2010 KVM

lore
Share & tools
lore
#0 lore raw

v4 cover KVM MMU: allow more shadow pages become asynchronous

Changlog v4:

- fix the bug that reported by Marcelo

- fix the race in invlpg code

Changlog v3:

Those changes all form Avi's suggestion, thanks.

- use smart way to fix the bug in patch 1
- remove duplicates code in patch 5
- check error code and fix forgot release page in patch 9
- sync shadow pages in a batch instead of one by one

And, there is one TODO thing:
Marker shadow page as unsync at create time avoid write-protect, this idea is from Avi:

|Another interesting case is to create new shadow pages in the unsync state.
|That can help when the guest starts a short lived process: we can avoid write
|protecting its pagetables completely

I'll send the patch out after this patchset applied.

Changlog v2:

- when level is PT_DIRECTORY_LEVEL, the 'offset' should be 'role.quadrant << 8', thanks Avi for point it out

- keep invlpg code in paging_tmpl.h address Avi's suggestion

- split kvm_sync_page() into kvm_sync_page() and kvm_sync_page_transient() to clarify the code address Avi's suggestion

#1 lore raw

Hi Avi, Marcelo,

patch 5 and patch 6 are can't apply to current kvm tree, i'll rebase those two patches.

Marcelo, does this patchset fix your issue? I have tested it with Fedora12/Ubuntu/CentOS 32/64 guests, it works well.

Thanks,
Xiao