lkml.org 
[lkml]   [2011]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/15] xen/trace: add xen_pgd_(un)pin tracepoints
    Date
    From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    ---
    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


    \
     
     \ /
      Last update: 2011-06-21 00:19    [W:0.028 / U:5.348 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site