diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2010-12-17 18:31:23 -0500 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2011-07-18 18:43:27 -0400 |
commit | 5f94fb5b8edf29bba06e2cd05f9d3a80a5dfb9bc (patch) | |
tree | 180fb7320f840a51ec64d349bbeeaaba0cae8a7c | |
parent | c2ba050d2e5638774571ea0ad0375a1c17c7b04e (diff) |
xen/trace: add xen_pgd_(un)pin tracepoints
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
-rw-r--r-- | arch/x86/xen/mmu.c | 4 | ||||
-rw-r--r-- | include/trace/events/xen.h | 24 |
2 files changed, 28 insertions, 0 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index f2160997287..5dfa90a7ad1 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c | |||
@@ -885,6 +885,8 @@ static int xen_pin_page(struct mm_struct *mm, struct page *page, | |||
885 | read-only, and can be pinned. */ | 885 | read-only, and can be pinned. */ |
886 | static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd) | 886 | static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd) |
887 | { | 887 | { |
888 | trace_xen_mmu_pgd_pin(mm, pgd); | ||
889 | |||
888 | xen_mc_batch(); | 890 | xen_mc_batch(); |
889 | 891 | ||
890 | if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) { | 892 | if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) { |
@@ -1010,6 +1012,8 @@ static int xen_unpin_page(struct mm_struct *mm, struct page *page, | |||
1010 | /* Release a pagetables pages back as normal RW */ | 1012 | /* Release a pagetables pages back as normal RW */ |
1011 | static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd) | 1013 | static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd) |
1012 | { | 1014 | { |
1015 | trace_xen_mmu_pgd_unpin(mm, pgd); | ||
1016 | |||
1013 | xen_mc_batch(); | 1017 | xen_mc_batch(); |
1014 | 1018 | ||
1015 | xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd))); | 1019 | xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd))); |
diff --git a/include/trace/events/xen.h b/include/trace/events/xen.h index f46fdb4afb8..0b6056de2b0 100644 --- a/include/trace/events/xen.h +++ b/include/trace/events/xen.h | |||
@@ -381,6 +381,30 @@ TRACE_EVENT(xen_mmu_release_ptpage, | |||
381 | __entry->pinned ? "" : "un") | 381 | __entry->pinned ? "" : "un") |
382 | ); | 382 | ); |
383 | 383 | ||
384 | TRACE_EVENT(xen_mmu_pgd_pin, | ||
385 | TP_PROTO(struct mm_struct *mm, pgd_t *pgd), | ||
386 | TP_ARGS(mm, pgd), | ||
387 | TP_STRUCT__entry( | ||
388 | __field(struct mm_struct *, mm) | ||
389 | __field(pgd_t *, pgd) | ||
390 | ), | ||
391 | TP_fast_assign(__entry->mm = mm; | ||
392 | __entry->pgd = pgd), | ||
393 | TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd) | ||
394 | ); | ||
395 | |||
396 | TRACE_EVENT(xen_mmu_pgd_unpin, | ||
397 | TP_PROTO(struct mm_struct *mm, pgd_t *pgd), | ||
398 | TP_ARGS(mm, pgd), | ||
399 | TP_STRUCT__entry( | ||
400 | __field(struct mm_struct *, mm) | ||
401 | __field(pgd_t *, pgd) | ||
402 | ), | ||
403 | TP_fast_assign(__entry->mm = mm; | ||
404 | __entry->pgd = pgd), | ||
405 | TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd) | ||
406 | ); | ||
407 | |||
384 | #endif /* _TRACE_XEN_H */ | 408 | #endif /* _TRACE_XEN_H */ |
385 | 409 | ||
386 | /* This part must be outside protection */ | 410 | /* This part must be outside protection */ |