From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757327AbbCPRd5 (ORCPT ); Mon, 16 Mar 2015 13:33:57 -0400 Received: from mail-wi0-f175.google.com ([209.85.212.175]:37120 "EHLO mail-wi0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754159AbbCPRdz convert rfc822-to-8bit (ORCPT ); Mon, 16 Mar 2015 13:33:55 -0400 From: Michal Nazarewicz To: Stefan Strogin , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Stefan Strogin , Joonsoo Kim , Andrew Morton , Marek Szyprowski , aneesh.kumar@linux.vnet.ibm.com, Laurent Pinchart , Dmitry Safonov , Pintu Kumar , Weijie Yang , Laura Abbott , SeongJae Park , Hui Zhu , Minchan Kim , Dyasly Sergey , Vyacheslav Tyrtov , Aleksei Mateosian , gregory.0xf0@gmail.com, sasha.levin@oracle.com, gioh.kim@lge.com, pavel@ucw.cz, stefan.strogin@gmail.com Subject: Re: [PATCH v4 3/5] stacktrace: add seq_print_stack_trace() In-Reply-To: <19b2815dbb60bfd38d17596a3d466637ee44c9a5.1426521377.git.s.strogin@partner.samsung.com> Organization: http://mina86.com/ References: <19b2815dbb60bfd38d17596a3d466637ee44c9a5.1426521377.git.s.strogin@partner.samsung.com> User-Agent: Notmuch/0.19+53~g2e63a09 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-unknown-linux-gnu) X-Face: PbkBB1w#)bOqd`iCe"Ds{e+!C7`pkC9a|f)Qo^BMQvy\q5x3?vDQJeN(DS?|-^$uMti[3D*#^_Ts"pU$jBQLq~Ud6iNwAw_r_o_4]|JO?]}P_}Nc&"p#D(ZgUb4uCNPe7~a[DbPG0T~!&c.y$Ur,=N4RT>]dNpd;KFrfMCylc}gc??'U2j,!8%xdD Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWbfGlUPDDHgE57V0jUupKjgIObY0PLrom9mH4dFRK4gmjPs41MxjOgAAACQElEQVQ4jW3TMWvbQBQHcBk1xE6WyALX1069oZBMlq+ouUwpEQQ6uRjttkWP4CmBgGM0BQLBdPFZYPsyFUo6uEtKDQ7oy/U96XR2Ux8ehH/89Z6enqxBcS7Lg81jmSuujrfCZcLI/TYYvbGj+jbgFpHJ/bqQAUISj8iLyu4LuFHJTosxsucO4jSDNE0Hq3hwK/ceQ5sx97b8LcUDsILfk+ovHkOIsMbBfg43VuQ5Ln9YAGCkUdKJoXR9EclFBhixy3EGVz1K6eEkhxCAkeMMnqoAhAKwhoUJkDrCqvbecaYINlFKSRS1i12VKH1XpUd4qxL876EkMcDvHj3s5RBajHHMlA5iK32e0C7VgG0RlzFPvoYHZLRmAC0BmNcBruhkE0KsMsbEc62ZwUJDxWUdMsMhVqovoT96i/DnX/ASvz/6hbCabELLk/6FF/8PNpPCGqcZTGFcBhhAaZZDbQPaAB3+KrWWy2XgbYDNIinkdWAFcCpraDE/knwe5DBqGmgzESl1p2E4MWAz0VUPgYYzmfWb9yS4vCvgsxJriNTHoIBz5YteBvg+VGISQWUqhMiByPIPpygeDBE6elD973xWwKkEiHZAHKjhuPsFnBuArrzxtakRcISv+XMIPl4aGBUJm8Emk7qBYU8IlgNEIpiJhk/No24jHwkKTFHDWfPniR4iw5vJaw2nzSjfq2zffcE/GDjRC2dn0J0XwPAbDL84TvaFCJEU4Oml9pRyEUhR3Cl2t01AoEjRbs0sYugp14/4X5n4pU4EHHnMAAAAAElFTkSuQmCC X-PGP: 50751FF4 X-PGP-FP: AC1F 5F5C D418 88F8 CC84 5858 2060 4012 5075 1FF4 X-Hashcash: 1:20:150316:m.szyprowski@samsung.com::QB7oQQ4uu+W9ygOa:00000000000000000000000000000000000000H9K X-Hashcash: 1:20:150316:s.strogin@partner.samsung.com::HlMx4tw169BhWGMc:000000000000000000000000000000000RoY X-Hashcash: 1:20:150316:lauraa@codeaurora.org::sZR980kcoUwvF1jM:00000000000000000000000000000000000000000ysF X-Hashcash: 1:20:150316:stefan.strogin@gmail.com::8FM5Q6IOP1fKAPQJ:00000000000000000000000000000000000000J3o X-Hashcash: 1:20:150316:gregory.0xf0@gmail.com::hVp6Tp8lkU78x9AO:0000000000000000000000000000000000000000wqk X-Hashcash: 1:20:150316:minchan@kernel.org::zuwxN21Kk352Vz+z:00000000000000000000000000000000000000000000Lht X-Hashcash: 1:20:150316:akpm@linux-foundation.org::Hdjnc51NWLSNCv4S:00000000000000000000000000000000000012OY X-Hashcash: 1:20:150316:s.dyasly@samsung.com::pvVucMjFdUGobFBU:0000000000000000000000000000000000000000017+2 X-Hashcash: 1:20:150316:sj38.park@gmail.com::utKit6RUe5sj0YcJ:0000000000000000000000000000000000000000001BS6 X-Hashcash: 1:20:150316:linux-kernel@vger.kernel.org::LsDYyBIBG55HYzKB:0000000000000000000000000000000001MbH X-Hashcash: 1:20:150316:linux-mm@kvack.org::CeZYw/m16U+CnEA0:00000000000000000000000000000000000000000001pY+ X-Hashcash: 1:20:150316:iamjoonsoo.kim@lge.com::+V32Bk6w0am3EClQ:0000000000000000000000000000000000000002SEk X-Hashcash: 1:20:150316:sasha.levin@oracle.com::UpCZ82s3Mi9GYOX/:0000000000000000000000000000000000000001hyh X-Hashcash: 1:20:150316:a.mateosian@samsung.com::QtlLjztdXnpqlQSM:000000000000000000000000000000000000002Z7u X-Hashcash: 1:20:150316:weijie.yang@samsung.com::+ZhCuWdkhjqiUurY:000000000000000000000000000000000000003Ska X-Hashcash: 1:20:150316:aneesh.kumar@linux.vnet.ibm.com::pen+VPsAfcPCpa3O:0000000000000000000000000000002xzB X-Hashcash: 1:20:150316:pavel@ucw.cz::6GIQzEEdzKbF1fLN:000003Gk9 X-Hashcash: 1:20:150316:pintu.k@samsung.com::Eq4aPg/N9/YlHofZ:00000000000000000000000000000000000000000036mO X-Hashcash: 1:20:150316:d.safonov@partner.samsung.com::xzNDtTpaYAjVaQxP:000000000000000000000000000000003fWl X-Hashcash: 1:20:150316:gioh.kim@lge.com::EDRm0Us4uo49PeSx:05bHz X-Hashcash: 1:20:150316:s.strogin@partner.samsung.com::YLJB2nPNULqYwOZb:000000000000000000000000000000006q8J X-Hashcash: 1:20:150316:v.tyrtov@samsung.com::dLXtzfgY66cW+uUE:000000000000000000000000000000000000000007S1c X-Hashcash: 1:20:150316:laurent.pinchart@ideasonboard.com::1V4s3riAeBOp1CT7:00000000000000000000000000009ev+ X-Hashcash: 1:20:150316:zhuhui@xiaomi.com::62OkCmfsXF9mld6S:000000000000000000000000000000000000000000008pOH Date: Mon, 16 Mar 2015 18:33:50 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 16 2015, Stefan Strogin wrote: > Add a function seq_print_stack_trace() which prints stacktraces to seq_files. > > Signed-off-by: Stefan Strogin > Reviewed-by: SeongJae Park Acked-by: Michal Nazarewicz > --- > include/linux/stacktrace.h | 4 ++++ > kernel/stacktrace.c | 17 +++++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h > index 0a34489..d80f2e9 100644 > --- a/include/linux/stacktrace.h > +++ b/include/linux/stacktrace.h > @@ -2,6 +2,7 @@ > #define __LINUX_STACKTRACE_H > > #include > +#include > > struct task_struct; > struct pt_regs; > @@ -22,6 +23,8 @@ extern void save_stack_trace_tsk(struct task_struct *tsk, > extern void print_stack_trace(struct stack_trace *trace, int spaces); > extern int snprint_stack_trace(char *buf, size_t size, > struct stack_trace *trace, int spaces); > +extern void seq_print_stack_trace(struct seq_file *m, > + struct stack_trace *trace, int spaces); > > #ifdef CONFIG_USER_STACKTRACE_SUPPORT > extern void save_stack_trace_user(struct stack_trace *trace); > @@ -35,6 +38,7 @@ extern void save_stack_trace_user(struct stack_trace *trace); > # 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) > +# define seq_print_stack_trace(m, trace, spaces) do { } while (0) > #endif > > #endif > diff --git a/kernel/stacktrace.c b/kernel/stacktrace.c > index b6e4c16..66ef6f4 100644 > --- a/kernel/stacktrace.c > +++ b/kernel/stacktrace.c > @@ -57,6 +57,23 @@ int snprint_stack_trace(char *buf, size_t size, > } > EXPORT_SYMBOL_GPL(snprint_stack_trace); > > +void seq_print_stack_trace(struct seq_file *m, struct stack_trace *trace, > + int spaces) > +{ > + int i; > + > + if (WARN_ON(!trace->entries)) > + return; > + > + for (i = 0; i < trace->nr_entries; i++) { > + unsigned long ip = trace->entries[i]; > + > + seq_printf(m, "%*c[<%p>] %pS\n", 1 + spaces, ' ', > + (void *) ip, (void *) ip); > + } > +} > +EXPORT_SYMBOL_GPL(seq_print_stack_trace); > + > /* > * Architectures that do not implement save_stack_trace_tsk or > * save_stack_trace_regs get this weak alias and a once-per-bootup warning > -- > 2.1.0 > -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał “mina86” Nazarewicz (o o) ooo +------ooO--(_)--Ooo-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by kanga.kvack.org (Postfix) with ESMTP id 8E01E6B0032 for ; Mon, 16 Mar 2015 13:33:56 -0400 (EDT) Received: by wgra20 with SMTP id a20so45916013wgr.3 for ; Mon, 16 Mar 2015 10:33:56 -0700 (PDT) Received: from mail-we0-x234.google.com (mail-we0-x234.google.com. [2a00:1450:400c:c03::234]) by mx.google.com with ESMTPS id eg10si19066180wjd.26.2015.03.16.10.33.54 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Mar 2015 10:33:55 -0700 (PDT) Received: by webcq43 with SMTP id cq43so43601971web.2 for ; Mon, 16 Mar 2015 10:33:54 -0700 (PDT) From: Michal Nazarewicz Subject: Re: [PATCH v4 3/5] stacktrace: add seq_print_stack_trace() In-Reply-To: <19b2815dbb60bfd38d17596a3d466637ee44c9a5.1426521377.git.s.strogin@partner.samsung.com> References: <19b2815dbb60bfd38d17596a3d466637ee44c9a5.1426521377.git.s.strogin@partner.samsung.com> Date: Mon, 16 Mar 2015 18:33:50 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Sender: owner-linux-mm@kvack.org List-ID: To: Stefan Strogin , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Joonsoo Kim , Andrew Morton , Marek Szyprowski , aneesh.kumar@linux.vnet.ibm.com, Laurent Pinchart , Dmitry Safonov , Pintu Kumar , Weijie Yang , Laura Abbott , SeongJae Park , Hui Zhu , Minchan Kim , Dyasly Sergey , Vyacheslav Tyrtov , Aleksei Mateosian , gregory.0xf0@gmail.com, sasha.levin@oracle.com, gioh.kim@lge.com, pavel@ucw.cz, stefan.strogin@gmail.com On Mon, Mar 16 2015, Stefan Strogin wrote: > Add a function seq_print_stack_trace() which prints stacktraces to seq_fi= les. > > Signed-off-by: Stefan Strogin > Reviewed-by: SeongJae Park Acked-by: Michal Nazarewicz > --- > include/linux/stacktrace.h | 4 ++++ > kernel/stacktrace.c | 17 +++++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h > index 0a34489..d80f2e9 100644 > --- a/include/linux/stacktrace.h > +++ b/include/linux/stacktrace.h > @@ -2,6 +2,7 @@ > #define __LINUX_STACKTRACE_H >=20=20 > #include > +#include >=20=20 > struct task_struct; > struct pt_regs; > @@ -22,6 +23,8 @@ extern void save_stack_trace_tsk(struct task_struct *ts= k, > extern void print_stack_trace(struct stack_trace *trace, int spaces); > extern int snprint_stack_trace(char *buf, size_t size, > struct stack_trace *trace, int spaces); > +extern void seq_print_stack_trace(struct seq_file *m, > + struct stack_trace *trace, int spaces); >=20=20 > #ifdef CONFIG_USER_STACKTRACE_SUPPORT > extern void save_stack_trace_user(struct stack_trace *trace); > @@ -35,6 +38,7 @@ extern void save_stack_trace_user(struct stack_trace *t= race); > # 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) > +# define seq_print_stack_trace(m, trace, spaces) do { } while (0) > #endif >=20=20 > #endif > diff --git a/kernel/stacktrace.c b/kernel/stacktrace.c > index b6e4c16..66ef6f4 100644 > --- a/kernel/stacktrace.c > +++ b/kernel/stacktrace.c > @@ -57,6 +57,23 @@ int snprint_stack_trace(char *buf, size_t size, > } > EXPORT_SYMBOL_GPL(snprint_stack_trace); >=20=20 > +void seq_print_stack_trace(struct seq_file *m, struct stack_trace *trace, > + int spaces) > +{ > + int i; > + > + if (WARN_ON(!trace->entries)) > + return; > + > + for (i =3D 0; i < trace->nr_entries; i++) { > + unsigned long ip =3D trace->entries[i]; > + > + seq_printf(m, "%*c[<%p>] %pS\n", 1 + spaces, ' ', > + (void *) ip, (void *) ip); > + } > +} > +EXPORT_SYMBOL_GPL(seq_print_stack_trace); > + > /* > * Architectures that do not implement save_stack_trace_tsk or > * save_stack_trace_regs get this weak alias and a once-per-bootup warni= ng > --=20 > 2.1.0 > --=20 Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=3D./ `o ..o | Computer Science, Micha=C5=82 =E2=80=9Cmina86=E2=80=9D Nazarewicz = (o o) ooo +------ooO--(_)--Ooo-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org