[PATCH] trace: add the MMIO-tracer to the tracer menu - Kernel

This is a discussion on [PATCH] trace: add the MMIO-tracer to the tracer menu - Kernel ; Subject: trace: add the MMIO-tracer to the tracer menu From: Peter Zijlstra Date: Fri Oct 24 12:46:04 CEST 2008 Add the MMIO-tracer to the tracer menu. Signed-off-by: Peter Zijlstra CC: Pekka Paalanen --- arch/x86/Kconfig.debug | 28 ++-------------------------- kernel/trace/Kconfig | 28 ...

+ Reply to Thread
Results 1 to 6 of 6

Thread: [PATCH] trace: add the MMIO-tracer to the tracer menu

  1. [PATCH] trace: add the MMIO-tracer to the tracer menu

    Subject: trace: add the MMIO-tracer to the tracer menu
    From: Peter Zijlstra
    Date: Fri Oct 24 12:46:04 CEST 2008

    Add the MMIO-tracer to the tracer menu.

    Signed-off-by: Peter Zijlstra
    CC: Pekka Paalanen
    ---
    arch/x86/Kconfig.debug | 28 ++--------------------------
    kernel/trace/Kconfig | 28 ++++++++++++++++++++++++++++
    2 files changed, 30 insertions(+), 26 deletions(-)

    Index: linux-2.6/arch/x86/Kconfig.debug
    ================================================== =================
    --- linux-2.6.orig/arch/x86/Kconfig.debug
    +++ linux-2.6/arch/x86/Kconfig.debug
    @@ -175,32 +175,8 @@ config IOMMU_LEAK
    Add a simple leak tracer to the IOMMU code. This is useful when you
    are debugging a buggy device driver that leaks IOMMU mappings.

    -config MMIOTRACE_HOOKS
    - bool
    -
    -config MMIOTRACE
    - bool "Memory mapped IO tracing"
    - depends on DEBUG_KERNEL && PCI
    - select TRACING
    - select MMIOTRACE_HOOKS
    - help
    - Mmiotrace traces Memory Mapped I/O access and is meant for
    - debugging and reverse engineering. It is called from the ioremap
    - implementation and works via page faults. Tracing is disabled by
    - default and can be enabled at run-time.
    -
    - See Documentation/tracers/mmiotrace.txt.
    - If you are not helping to develop drivers, say N.
    -
    -config MMIOTRACE_TEST
    - tristate "Test module for mmiotrace"
    - depends on MMIOTRACE && m
    - help
    - This is a dumb module for testing mmiotrace. It is very dangerous
    - as it will write garbage to IO memory starting at a given address.
    - However, it should be safe to use on e.g. unused portion of VRAM.
    -
    - Say N, unless you absolutely know what you are doing.
    +config HAVE_MMIOTRACE_SUPPORT
    + def_bool y

    #
    # IO delay types:
    Index: linux-2.6/kernel/trace/Kconfig
    ================================================== =================
    --- linux-2.6.orig/kernel/trace/Kconfig
    +++ linux-2.6/kernel/trace/Kconfig
    @@ -194,4 +194,32 @@ config FTRACE_STARTUP_TEST
    functioning properly. It will do tests on all the configured
    tracers of ftrace.

    +config MMIOTRACE_HOOKS
    + bool
    +
    +config MMIOTRACE
    + bool "Memory mapped IO tracing"
    + depends on HAVE_MMIOTRACE_SUPPORT && DEBUG_KERNEL && PCI
    + select TRACING
    + select MMIOTRACE_HOOKS
    + help
    + Mmiotrace traces Memory Mapped I/O access and is meant for
    + debugging and reverse engineering. It is called from the ioremap
    + implementation and works via page faults. Tracing is disabled by
    + default and can be enabled at run-time.
    +
    + See Documentation/tracers/mmiotrace.txt.
    + If you are not helping to develop drivers, say N.
    +
    +config MMIOTRACE_TEST
    + tristate "Test module for mmiotrace"
    + depends on MMIOTRACE && m
    + help
    + This is a dumb module for testing mmiotrace. It is very dangerous
    + as it will write garbage to IO memory starting at a given address.
    + However, it should be safe to use on e.g. unused portion of VRAM.
    +
    + Say N, unless you absolutely know what you are doing.
    +
    +
    endmenu

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [PATCH] trace: add the MMIO-tracer to the tracer menu


    * Peter Zijlstra wrote:

    > Subject: trace: add the MMIO-tracer to the tracer menu
    > From: Peter Zijlstra
    > Date: Fri Oct 24 12:46:04 CEST 2008
    >
    > Add the MMIO-tracer to the tracer menu.
    >
    > Signed-off-by: Peter Zijlstra
    > CC: Pekka Paalanen
    > ---
    > arch/x86/Kconfig.debug | 28 ++--------------------------
    > kernel/trace/Kconfig | 28 ++++++++++++++++++++++++++++
    > 2 files changed, 30 insertions(+), 26 deletions(-)
    >
    > Index: linux-2.6/arch/x86/Kconfig.debug
    > ================================================== =================
    > --- linux-2.6.orig/arch/x86/Kconfig.debug
    > +++ linux-2.6/arch/x86/Kconfig.debug
    > @@ -175,32 +175,8 @@ config IOMMU_LEAK
    > Add a simple leak tracer to the IOMMU code. This is useful when you
    > are debugging a buggy device driver that leaks IOMMU mappings.
    >
    > -config MMIOTRACE_HOOKS
    > - bool
    > -
    > -config MMIOTRACE
    > - bool "Memory mapped IO tracing"
    > - depends on DEBUG_KERNEL && PCI
    > - select TRACING
    > - select MMIOTRACE_HOOKS
    > - help
    > - Mmiotrace traces Memory Mapped I/O access and is meant for
    > - debugging and reverse engineering. It is called from the ioremap
    > - implementation and works via page faults. Tracing is disabled by
    > - default and can be enabled at run-time.
    > -
    > - See Documentation/tracers/mmiotrace.txt.
    > - If you are not helping to develop drivers, say N.
    > -
    > -config MMIOTRACE_TEST
    > - tristate "Test module for mmiotrace"
    > - depends on MMIOTRACE && m
    > - help
    > - This is a dumb module for testing mmiotrace. It is very dangerous
    > - as it will write garbage to IO memory starting at a given address.
    > - However, it should be safe to use on e.g. unused portion of VRAM.
    > -
    > - Say N, unless you absolutely know what you are doing.
    > +config HAVE_MMIOTRACE_SUPPORT
    > + def_bool y
    >
    > #
    > # IO delay types:
    > Index: linux-2.6/kernel/trace/Kconfig
    > ================================================== =================
    > --- linux-2.6.orig/kernel/trace/Kconfig
    > +++ linux-2.6/kernel/trace/Kconfig
    > @@ -194,4 +194,32 @@ config FTRACE_STARTUP_TEST
    > functioning properly. It will do tests on all the configured
    > tracers of ftrace.
    >
    > +config MMIOTRACE_HOOKS
    > + bool
    > +
    > +config MMIOTRACE
    > + bool "Memory mapped IO tracing"
    > + depends on HAVE_MMIOTRACE_SUPPORT && DEBUG_KERNEL && PCI
    > + select TRACING
    > + select MMIOTRACE_HOOKS


    change makes sense, but isnt MMIOTRACE_HOOKS basically overlapping
    HAVE_MMIOTRACE_SUPPORT? So i think we could get rid of MMIOTRACE_HOOKS
    altogether and just use HAVE_MMIOTRACE_SUPPORT.

    Pekka?

    Ingo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [PATCH] trace: add the MMIO-tracer to the tracer menu


    On Fri, 24 Oct 2008, Peter Zijlstra wrote:

    > Subject: trace: add the MMIO-tracer to the tracer menu
    > From: Peter Zijlstra
    > Date: Fri Oct 24 12:46:04 CEST 2008
    >
    > Add the MMIO-tracer to the tracer menu.
    >
    > Signed-off-by: Peter Zijlstra
    > CC: Pekka Paalanen
    > ---
    > arch/x86/Kconfig.debug | 28 ++--------------------------
    > kernel/trace/Kconfig | 28 ++++++++++++++++++++++++++++
    > 2 files changed, 30 insertions(+), 26 deletions(-)
    >
    > Index: linux-2.6/arch/x86/Kconfig.debug
    > ================================================== =================
    > --- linux-2.6.orig/arch/x86/Kconfig.debug
    > +++ linux-2.6/arch/x86/Kconfig.debug
    > @@ -175,32 +175,8 @@ config IOMMU_LEAK
    > Add a simple leak tracer to the IOMMU code. This is useful when you
    > are debugging a buggy device driver that leaks IOMMU mappings.
    >
    > -config MMIOTRACE_HOOKS
    > - bool
    > -
    > -config MMIOTRACE
    > - bool "Memory mapped IO tracing"
    > - depends on DEBUG_KERNEL && PCI
    > - select TRACING
    > - select MMIOTRACE_HOOKS
    > - help
    > - Mmiotrace traces Memory Mapped I/O access and is meant for
    > - debugging and reverse engineering. It is called from the ioremap
    > - implementation and works via page faults. Tracing is disabled by
    > - default and can be enabled at run-time.
    > -
    > - See Documentation/tracers/mmiotrace.txt.
    > - If you are not helping to develop drivers, say N.
    > -
    > -config MMIOTRACE_TEST
    > - tristate "Test module for mmiotrace"
    > - depends on MMIOTRACE && m
    > - help
    > - This is a dumb module for testing mmiotrace. It is very dangerous
    > - as it will write garbage to IO memory starting at a given address.
    > - However, it should be safe to use on e.g. unused portion of VRAM.
    > -
    > - Say N, unless you absolutely know what you are doing.
    > +config HAVE_MMIOTRACE_SUPPORT
    > + def_bool y
    >
    > #
    > # IO delay types:
    > Index: linux-2.6/kernel/trace/Kconfig
    > ================================================== =================
    > --- linux-2.6.orig/kernel/trace/Kconfig
    > +++ linux-2.6/kernel/trace/Kconfig
    > @@ -194,4 +194,32 @@ config FTRACE_STARTUP_TEST
    > functioning properly. It will do tests on all the configured
    > tracers of ftrace.
    >
    > +config MMIOTRACE_HOOKS
    > + bool
    > +
    > +config MMIOTRACE
    > + bool "Memory mapped IO tracing"
    > + depends on HAVE_MMIOTRACE_SUPPORT && DEBUG_KERNEL && PCI
    > + select TRACING


    Since this was taken from the x86 Kconfig, do we need to add a
    "depends X86" ?

    -- Steve

    > + select MMIOTRACE_HOOKS
    > + help
    > + Mmiotrace traces Memory Mapped I/O access and is meant for
    > + debugging and reverse engineering. It is called from the ioremap
    > + implementation and works via page faults. Tracing is disabled by
    > + default and can be enabled at run-time.
    > +
    > + See Documentation/tracers/mmiotrace.txt.
    > + If you are not helping to develop drivers, say N.
    > +
    > +config MMIOTRACE_TEST
    > + tristate "Test module for mmiotrace"
    > + depends on MMIOTRACE && m
    > + help
    > + This is a dumb module for testing mmiotrace. It is very dangerous
    > + as it will write garbage to IO memory starting at a given address.
    > + However, it should be safe to use on e.g. unused portion of VRAM.
    > +
    > + Say N, unless you absolutely know what you are doing.
    > +
    > +
    > endmenu
    >
    >
    >

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [PATCH] trace: add the MMIO-tracer to the tracer menu


    On Fri, 24 Oct 2008, Ingo Molnar wrote:
    > > #
    > > # IO delay types:
    > > Index: linux-2.6/kernel/trace/Kconfig
    > > ================================================== =================
    > > --- linux-2.6.orig/kernel/trace/Kconfig
    > > +++ linux-2.6/kernel/trace/Kconfig
    > > @@ -194,4 +194,32 @@ config FTRACE_STARTUP_TEST
    > > functioning properly. It will do tests on all the configured
    > > tracers of ftrace.
    > >
    > > +config MMIOTRACE_HOOKS
    > > + bool
    > > +
    > > +config MMIOTRACE
    > > + bool "Memory mapped IO tracing"
    > > + depends on HAVE_MMIOTRACE_SUPPORT && DEBUG_KERNEL && PCI
    > > + select TRACING
    > > + select MMIOTRACE_HOOKS

    >
    > change makes sense, but isnt MMIOTRACE_HOOKS basically overlapping
    > HAVE_MMIOTRACE_SUPPORT? So i think we could get rid of MMIOTRACE_HOOKS
    > altogether and just use HAVE_MMIOTRACE_SUPPORT.


    And doing this will remove the need about my question on depends on X86.

    -- Steve

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. Re: [PATCH] trace: add the MMIO-tracer to the tracer menu

    On Fri, 24 Oct 2008 07:56:05 -0400 (EDT)
    Steven Rostedt wrote:

    >
    > On Fri, 24 Oct 2008, Ingo Molnar wrote:
    > > > #
    > > > # IO delay types:
    > > > Index: linux-2.6/kernel/trace/Kconfig
    > > > ================================================== =================
    > > > --- linux-2.6.orig/kernel/trace/Kconfig
    > > > +++ linux-2.6/kernel/trace/Kconfig
    > > > @@ -194,4 +194,32 @@ config FTRACE_STARTUP_TEST
    > > > functioning properly. It will do tests on all the configured
    > > > tracers of ftrace.
    > > >
    > > > +config MMIOTRACE_HOOKS
    > > > + bool
    > > > +
    > > > +config MMIOTRACE
    > > > + bool "Memory mapped IO tracing"
    > > > + depends on HAVE_MMIOTRACE_SUPPORT && DEBUG_KERNEL && PCI
    > > > + select TRACING
    > > > + select MMIOTRACE_HOOKS

    > >
    > > change makes sense, but isnt MMIOTRACE_HOOKS basically overlapping
    > > HAVE_MMIOTRACE_SUPPORT? So i think we could get rid of MMIOTRACE_HOOKS
    > > altogether and just use HAVE_MMIOTRACE_SUPPORT.

    >
    > And doing this will remove the need about my question on depends on X86.


    Yes, we can remove MMIOTRACE_HOOKS and replace it with just MMIOTRACE.
    MMIOTRACE_HOOKS is a remnant from the time when I thought that
    something else could also use the kmmio facilities.

    Here's a compile-tested patch against current Ingo's tip/master.

    From d4b97cd777c3382b784a9504281feccc9f2c4036 Mon Sep 17 00:00:00 2001
    From: Pekka Paalanen
    Date: Fri, 24 Oct 2008 18:59:56 +0300
    Subject: [PATCH] mmiotrace: Remove unneeded CONFIG_MMIOTRACE_HOOKS.

    Signed-off-by: Pekka Paalanen
    ---
    arch/x86/Kconfig.debug | 4 ----
    arch/x86/mm/Makefile | 3 +--
    arch/x86/mm/fault.c | 2 +-
    3 files changed, 2 insertions(+), 7 deletions(-)

    diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
    index fc58b86..01649e1 100644
    --- a/arch/x86/Kconfig.debug
    +++ b/arch/x86/Kconfig.debug
    @@ -175,14 +175,10 @@ config IOMMU_LEAK
    Add a simple leak tracer to the IOMMU code. This is useful when you
    are debugging a buggy device driver that leaks IOMMU mappings.

    -config MMIOTRACE_HOOKS
    - bool
    -
    config MMIOTRACE
    bool "Memory mapped IO tracing"
    depends on DEBUG_KERNEL && PCI
    select TRACING
    - select MMIOTRACE_HOOKS
    help
    Mmiotrace traces Memory Mapped I/O access and is meant for
    debugging and reverse engineering. It is called from the ioremap
    diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
    index f4edb6e..617537f 100644
    --- a/arch/x86/mm/Makefile
    +++ b/arch/x86/mm/Makefile
    @@ -10,9 +10,8 @@ obj-$(CONFIG_HIGHMEM) += highmem_32.o

    obj-$(CONFIG_KMEMCHECK) += kmemcheck/

    -obj-$(CONFIG_MMIOTRACE_HOOKS) += kmmio.o
    obj-$(CONFIG_MMIOTRACE) += mmiotrace.o
    -mmiotrace-y := pf_in.o mmio-mod.o
    +mmiotrace-y := kmmio.o pf_in.o mmio-mod.o
    obj-$(CONFIG_MMIOTRACE_TEST) += testmmiotrace.o

    obj-$(CONFIG_NUMA) += numa_$(BITS).o
    diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
    index ed9ee30..63e9f7c 100644
    --- a/arch/x86/mm/fault.c
    +++ b/arch/x86/mm/fault.c
    @@ -55,7 +55,7 @@

    static inline int kmmio_fault(struct pt_regs *regs, unsigned long addr)
    {
    -#ifdef CONFIG_MMIOTRACE_HOOKS
    +#ifdef CONFIG_MMIOTRACE
    if (unlikely(is_kmmio_active()))
    if (kmmio_handler(regs, addr) == 1)
    return -1;
    --
    1.5.6.4


    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. Re: [PATCH] trace: add the MMIO-tracer to the tracer menu


    * Pekka Paalanen wrote:

    > > And doing this will remove the need about my question on depends
    > > on X86.

    >
    > Yes, we can remove MMIOTRACE_HOOKS and replace it with just
    > MMIOTRACE. MMIOTRACE_HOOKS is a remnant from the time when I thought
    > that something else could also use the kmmio facilities.
    >
    > Here's a compile-tested patch against current Ingo's tip/master.
    >
    > From d4b97cd777c3382b784a9504281feccc9f2c4036 Mon Sep 17 00:00:00 2001
    > From: Pekka Paalanen
    > Date: Fri, 24 Oct 2008 18:59:56 +0300
    > Subject: [PATCH] mmiotrace: Remove unneeded CONFIG_MMIOTRACE_HOOKS.
    >
    > Signed-off-by: Pekka Paalanen
    > ---
    > arch/x86/Kconfig.debug | 4 ----
    > arch/x86/mm/Makefile | 3 +--
    > arch/x86/mm/fault.c | 2 +-
    > 3 files changed, 2 insertions(+), 7 deletions(-)


    applied, thanks Pekka!

    Ingo
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread