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 f2160997287e..5dfa90a7ad18 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 f46fdb4afb89..0b6056de2b00 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 */ |
