aditya shevalkar
2006-Nov-29 11:20 UTC
[Xen-devel] Information required on the pinning/unpinning of shadow.
Hi all, Looking at the following code snippets could anybody explain what is the purpose and meaning of the pinning and unpinning and hooking/unhook of the shadow/subshadow? Please correct my question if it seems some information missing in it. xen-3.0.3_0-src\xen\arch\x86\mm\shadow\common.c void shadow_prealloc(struct domain *d, unsigned int order) { /* Need a vpcu for calling unpins; for now, since we don''t have * per-vcpu shadows, any will do */ struct vcpu *v = d->vcpu[0]; .... /* For PAE, we need to unpin each subshadow on this shadow */ SHADOW_INTERNAL_NAME(sh_unpin_all_l3_subshadows,3,3)(v, smfn); } else #endif /* 32-bit code always takes this branch */ { /* Unpin this top-level shadow */ sh_unpin(v, smfn); ..... shadow_unhook_mappings(v, smfn); .... Also in the following code what is PGC_SH_pinned doing internally? xen-3.0.3_0-src\xen\arch\x86\mm\shadow\private.h /* Unpin a shadow page: unset the pin bit and release the extra ref. */ static inline void sh_unpin(struct vcpu *v, mfn_t smfn) { struct page_info *page; ASSERT(mfn_valid(smfn)); page = mfn_to_page(smfn); if ( page->count_info & PGC_SH_pinned ) { page->count_info &= ~PGC_SH_pinned; sh_put_ref(v, smfn, 0); } } xen-3.0.3_0-src\xen\include\asm-x86\mm.h #define PGC_SH_pinned (1U<<27) With Best Regards, Aditya Shevalkar. __________________________________________________________ Yahoo! India Answers: Share what you know. Learn something new http://in.answers.yahoo.com/ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel