From 567549dbdad0180a2112c8f8be0bbcab2f288b73 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Thu, 29 Jan 2009 14:28:16 +0000 Subject: add-kconfig-for-find-irq-blockers.patch This adds a debug section Kconfig entry for the interrupt blocking detection and deals with the config in our stock defconfigs Signed-off-by: Andy Green --- arch/arm/configs/gta01-moredrivers-defconfig | 2 ++ arch/arm/configs/gta02-moredrivers-defconfig | 1 + arch/arm/configs/gta02-packaging-defconfig | 1 + arch/arm/configs/gta03_defconfig | 2 ++ arch/arm/include/asm/irqflags.h | 8 ++++++-- arch/arm/kernel/Makefile | 2 +- lib/Kconfig.debug | 7 +++++++ 7 files changed, 20 insertions(+), 3 deletions(-) diff --git a/arch/arm/configs/gta01-moredrivers-defconfig b/arch/arm/configs/gta01-moredrivers-defconfig index 574df960c11..aef1fcfb5fb 100644 --- a/arch/arm/configs/gta01-moredrivers-defconfig +++ b/arch/arm/configs/gta01-moredrivers-defconfig @@ -2039,3 +2039,5 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y +# CONFIG_FIND_IRQ_BLOCKERS is not set + diff --git a/arch/arm/configs/gta02-moredrivers-defconfig b/arch/arm/configs/gta02-moredrivers-defconfig index 36fa51a1d8d..a5b25a5f9de 100644 --- a/arch/arm/configs/gta02-moredrivers-defconfig +++ b/arch/arm/configs/gta02-moredrivers-defconfig @@ -2019,6 +2019,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y # CONFIG_BOOT_TRACER is not set # CONFIG_TRACE_BRANCH_PROFILING is not set # CONFIG_STACK_TRACER is not set +# CONFIG_FIND_IRQ_BLOCKERS is not set CONFIG_DYNAMIC_PRINTK_DEBUG=y # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y diff --git a/arch/arm/configs/gta02-packaging-defconfig b/arch/arm/configs/gta02-packaging-defconfig index f2241c3cf7c..6780bdb85da 100644 --- a/arch/arm/configs/gta02-packaging-defconfig +++ b/arch/arm/configs/gta02-packaging-defconfig @@ -2155,3 +2155,4 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y +# CONFIG_FIND_IRQ_BLOCKERS is not set diff --git a/arch/arm/configs/gta03_defconfig b/arch/arm/configs/gta03_defconfig index a2df7db9197..3596df20d2f 100644 --- a/arch/arm/configs/gta03_defconfig +++ b/arch/arm/configs/gta03_defconfig @@ -1732,3 +1732,5 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y +# CONFIG_FIND_IRQ_BLOCKERS is not set + diff --git a/arch/arm/include/asm/irqflags.h b/arch/arm/include/asm/irqflags.h index 3b01c151507..dd7872ab798 100644 --- a/arch/arm/include/asm/irqflags.h +++ b/arch/arm/include/asm/irqflags.h @@ -5,11 +5,15 @@ #include - +#ifdef CONFIG_FIND_IRQ_BLOCKERS void iblock_start(void); void iblock_end(void); void iblock_end_maybe(unsigned long flags); - +#else +#define iblock_start() +#define iblock_end() +#define iblock_end_maybe(x) +#endif /* * CPU interrupt mask handling. diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index 29d70d2ac86..62163b55f34 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile @@ -44,6 +44,6 @@ endif head-y := head$(MMUEXT).o obj-$(CONFIG_DEBUG_LL) += debug.o -obj-y += iblock.o +obj-$(CONFIG_FIND_IRQ_BLOCKERS) += iblock.o extra-y := $(head-y) init_task.o vmlinux.lds diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 4c9ae6085c7..9abfbaa686d 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -851,6 +851,13 @@ menuconfig BUILD_DOCSRC Say N if you are unsure. +config FIND_IRQ_BLOCKERS + bool "IRQ Blocker statistics" + depends on ARM + ---help--- + Enables tracking of IRQ dead-time because something has + disabled interrupts + config DYNAMIC_PRINTK_DEBUG bool "Enable dynamic printk() call support" default n -- cgit v1.2.3