From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933696AbdA0RTT (ORCPT ); Fri, 27 Jan 2017 12:19:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:39102 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932923AbdA0RRR (ORCPT ); Fri, 27 Jan 2017 12:17:17 -0500 Date: Fri, 27 Jan 2017 11:13:46 -0600 From: Josh Poimboeuf To: Miroslav Benes Cc: Jessica Yu , Jiri Kosina , Petr Mladek , linux-kernel@vger.kernel.org, live-patching@vger.kernel.org, Michael Ellerman , Heiko Carstens , x86@kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, Vojtech Pavlik , Jiri Slaby , Chris J Arges , Andy Lutomirski , Ingo Molnar , Peter Zijlstra , Kamalesh Babulal , Balbir Singh Subject: Re: [PATCH v4 01/15] stacktrace/x86: add function for detecting reliable stack traces Message-ID: <20170127171346.o7wuvycriajdpixc@treble> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.0.1 (2016-04-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 27 Jan 2017 17:13:55 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 27, 2017 at 09:47:08AM +0100, Miroslav Benes wrote: > > > diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h > > index 0a34489..8e8b67b 100644 > > --- a/include/linux/stacktrace.h > > +++ b/include/linux/stacktrace.h > > @@ -18,6 +18,8 @@ extern void save_stack_trace_regs(struct pt_regs *regs, > > struct stack_trace *trace); > > extern void save_stack_trace_tsk(struct task_struct *tsk, > > struct stack_trace *trace); > > +extern int save_stack_trace_tsk_reliable(struct task_struct *tsk, > > + struct stack_trace *trace); > > > > extern void print_stack_trace(struct stack_trace *trace, int spaces); > > extern int snprint_stack_trace(char *buf, size_t size, > > @@ -29,12 +31,12 @@ extern void save_stack_trace_user(struct stack_trace *trace); > > # define save_stack_trace_user(trace) do { } while (0) > > #endif > > > > -#else > > +#else /* !CONFIG_STACKTRACE */ > > # define save_stack_trace(trace) do { } while (0) > > # define save_stack_trace_tsk(tsk, trace) do { } while (0) > > # define save_stack_trace_user(trace) do { } while (0) > > # define print_stack_trace(trace, spaces) do { } while (0) > > # define snprint_stack_trace(buf, size, trace, spaces) do { } while (0) > > Is there a reason you did not define empty save_stack_trace_tsk_reliable() > here? Right, it should not be needed now as livepatching is the only user, > but still. Agreed, thanks. I'll make the stub return an error, since an empty stack trace isn't very reliable. -- Josh