From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932089Ab1FTWRs (ORCPT ); Mon, 20 Jun 2011 18:17:48 -0400 Received: from claw.goop.org ([74.207.240.146]:53613 "EHLO claw.goop.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755944Ab1FTWPZ (ORCPT ); Mon, 20 Jun 2011 18:15:25 -0400 From: Jeremy Fitzhardinge To: Xen Devel Cc: Konrad Rzeszutek Wilk , Steven Rostedt , Ingo Molnar , Linux Kernel Mailing List , Jeremy Fitzhardinge Subject: [PATCH 07/15] xen/trace: add xen_pgd_(un)pin tracepoints Date: Mon, 20 Jun 2011 15:15:03 -0700 Message-Id: X-Mailer: git-send-email 1.7.5.4 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jeremy Fitzhardinge Signed-off-by: Jeremy Fitzhardinge --- arch/x86/xen/mmu.c | 4 ++++ 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 84c796f..8aaa398 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -884,6 +884,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)) { @@ -1009,6 +1011,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))); diff --git a/include/trace/events/xen.h b/include/trace/events/xen.h index 16edcb7..5811c24 100644 --- a/include/trace/events/xen.h +++ b/include/trace/events/xen.h @@ -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 */ -- 1.7.5.4