diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2010-12-17 14:21:17 -0800 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2011-07-18 15:43:27 -0700 |
commit | c2ba050d2e5638774571ea0ad0375a1c17c7b04e (patch) | |
tree | 3b90b1ee94de25e9d8a4ad2dab5fd7ca39db66ad /arch/x86/xen/mmu.c | |
parent | 847088079162a5cf8ab0d1ad1ecf7fa60c057246 (diff) | |
download | talos-obmc-linux-c2ba050d2e5638774571ea0ad0375a1c17c7b04e.tar.gz talos-obmc-linux-c2ba050d2e5638774571ea0ad0375a1c17c7b04e.zip |
xen/trace: add ptpage alloc/release tracepoints
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'arch/x86/xen/mmu.c')
-rw-r--r-- | arch/x86/xen/mmu.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 43fa7771ccb9..f2160997287e 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -1478,8 +1478,11 @@ static void __init xen_release_pmd_init(unsigned long pfn) static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned level) { struct page *page = pfn_to_page(pfn); + int pinned = PagePinned(virt_to_page(mm->pgd)); + + trace_xen_mmu_alloc_ptpage(mm, pfn, level, pinned); - if (PagePinned(virt_to_page(mm->pgd))) { + if (pinned) { SetPagePinned(page); if (!PageHighMem(page)) { @@ -1508,8 +1511,11 @@ static void xen_alloc_pmd(struct mm_struct *mm, unsigned long pfn) static void xen_release_ptpage(unsigned long pfn, unsigned level) { struct page *page = pfn_to_page(pfn); + bool pinned = PagePinned(page); - if (PagePinned(page)) { + trace_xen_mmu_release_ptpage(pfn, level, pinned); + + if (pinned) { if (!PageHighMem(page)) { if (level == PT_PTE && USE_SPLIT_PTLOCKS) pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn); |