Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753858AbbHLPCh (ORCPT ); Wed, 12 Aug 2015 11:02:37 -0400 Received: from foss.arm.com ([217.140.101.70]:58905 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752920AbbHLPCg (ORCPT ); Wed, 12 Aug 2015 11:02:36 -0400 Date: Wed, 12 Aug 2015 16:02:32 +0100 From: Will Deacon To: Jungseok Lee Cc: Catalin Marinas , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , AKASHI Takahiro , Marc Zyngier , Rabin Vincent , Steven Rostedt Subject: Re: [PATCH] arm64: Add __exception_irq_entry definition for function graph Message-ID: <20150812150232.GI23540@arm.com> References: <1439388979-1518-1-git-send-email-jungseoklee85@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1439388979-1518-1-git-send-email-jungseoklee85@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1883 Lines: 57 On Wed, Aug 12, 2015 at 03:16:19PM +0100, Jungseok Lee wrote: > The gic_handle_irq() is defined with __exception_irq_entry attribute. > A single remaining work is to add its definition as ARM did. Below > shows how function graph data is changed with these hunks. [...] > diff --git a/arch/arm64/include/asm/traps.h b/arch/arm64/include/asm/traps.h > index 232e4ba..0cc2f29 100644 > --- a/arch/arm64/include/asm/traps.h > +++ b/arch/arm64/include/asm/traps.h > @@ -34,13 +34,32 @@ struct undef_hook { > void register_undef_hook(struct undef_hook *hook); > void unregister_undef_hook(struct undef_hook *hook); > > +#ifdef CONFIG_FUNCTION_GRAPH_TRACER > +static inline int __in_irqentry_text(unsigned long ptr) > +{ > + extern char __irqentry_text_start[]; > + extern char __irqentry_text_end[]; > + > + return ptr >= (unsigned long)&__irqentry_text_start && > + ptr < (unsigned long)&__irqentry_text_end; > +} > +#else > +static inline int __in_irqentry_text(unsigned long ptr) > +{ > + return 0; > +} > +#endif > + > static inline int in_exception_text(unsigned long ptr) > { > extern char __exception_text_start[]; > extern char __exception_text_end[]; > + int in; > + > + in = ptr >= (unsigned long)&__exception_text_start && > + ptr < (unsigned long)&__exception_text_end; > > - return ptr >= (unsigned long)&__exception_text_start && > - ptr < (unsigned long)&__exception_text_end; > + return in ? : __in_irqentry_text(ptr); > } On arm64, this function is only called from dump_backtrace, so I'm struggling to see why this change makes any difference to the ftrace output. What am I missing? Will -- 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/