Loading arch/x86/xen/mmu.c +4 −0 Original line number Diff line number Diff line Loading @@ -885,6 +885,8 @@ static int xen_pin_page(struct mm_struct *mm, struct page *page, read-only, and can be pinned. */ static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd) { trace_xen_mmu_pgd_pin(mm, pgd); xen_mc_batch(); if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) { Loading Loading @@ -1010,6 +1012,8 @@ static int xen_unpin_page(struct mm_struct *mm, struct page *page, /* Release a pagetables pages back as normal RW */ static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd) { trace_xen_mmu_pgd_unpin(mm, pgd); xen_mc_batch(); xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd))); Loading include/trace/events/xen.h +24 −0 Original line number Diff line number Diff line Loading @@ -381,6 +381,30 @@ TRACE_EVENT(xen_mmu_release_ptpage, __entry->pinned ? "" : "un") ); TRACE_EVENT(xen_mmu_pgd_pin, TP_PROTO(struct mm_struct *mm, pgd_t *pgd), TP_ARGS(mm, pgd), TP_STRUCT__entry( __field(struct mm_struct *, mm) __field(pgd_t *, pgd) ), TP_fast_assign(__entry->mm = mm; __entry->pgd = pgd), TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd) ); TRACE_EVENT(xen_mmu_pgd_unpin, TP_PROTO(struct mm_struct *mm, pgd_t *pgd), TP_ARGS(mm, pgd), TP_STRUCT__entry( __field(struct mm_struct *, mm) __field(pgd_t *, pgd) ), TP_fast_assign(__entry->mm = mm; __entry->pgd = pgd), TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd) ); #endif /* _TRACE_XEN_H */ /* This part must be outside protection */ Loading Loading
arch/x86/xen/mmu.c +4 −0 Original line number Diff line number Diff line Loading @@ -885,6 +885,8 @@ static int xen_pin_page(struct mm_struct *mm, struct page *page, read-only, and can be pinned. */ static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd) { trace_xen_mmu_pgd_pin(mm, pgd); xen_mc_batch(); if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) { Loading Loading @@ -1010,6 +1012,8 @@ static int xen_unpin_page(struct mm_struct *mm, struct page *page, /* Release a pagetables pages back as normal RW */ static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd) { trace_xen_mmu_pgd_unpin(mm, pgd); xen_mc_batch(); xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd))); Loading
include/trace/events/xen.h +24 −0 Original line number Diff line number Diff line Loading @@ -381,6 +381,30 @@ TRACE_EVENT(xen_mmu_release_ptpage, __entry->pinned ? "" : "un") ); TRACE_EVENT(xen_mmu_pgd_pin, TP_PROTO(struct mm_struct *mm, pgd_t *pgd), TP_ARGS(mm, pgd), TP_STRUCT__entry( __field(struct mm_struct *, mm) __field(pgd_t *, pgd) ), TP_fast_assign(__entry->mm = mm; __entry->pgd = pgd), TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd) ); TRACE_EVENT(xen_mmu_pgd_unpin, TP_PROTO(struct mm_struct *mm, pgd_t *pgd), TP_ARGS(mm, pgd), TP_STRUCT__entry( __field(struct mm_struct *, mm) __field(pgd_t *, pgd) ), TP_fast_assign(__entry->mm = mm; __entry->pgd = pgd), TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd) ); #endif /* _TRACE_XEN_H */ /* This part must be outside protection */ Loading