From: Ingo Molnar <mingo@kernel.org>
To: Stefan Strogin <s.strogin@partner.samsung.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Andrew Morton <akpm@linux-foundation.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
aneesh.kumar@linux.vnet.ibm.com,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Dmitry Safonov <d.safonov@partner.samsung.com>,
Pintu Kumar <pintu.k@samsung.com>,
Weijie Yang <weijie.yang@samsung.com>,
Laura Abbott <lauraa@codeaurora.org>,
SeongJae Park <sj38.park@gmail.com>, Hui Zhu <zhuhui@xiaomi.com>,
Minchan Kim <minchan@kernel.org>,
Dyasly Sergey <s.dyasly@samsung.com>,
Vyacheslav Tyrtov <v.tyrtov@samsung.com>,
Aleksei Mateosian <a.mateosian@samsung.com>,
gregory.0xf0@gmail.com, sasha.levin@oracle.com, gioh.kim@lge.com,
pavel@ucw.cz, stefan.strogin@gmail.com,
Steven Rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH v4 1/5] mm: cma: add trace events to debug physically-contiguous memory allocations
Date: Mon, 23 Mar 2015 15:04:17 +0100 [thread overview]
Message-ID: <20150323140417.GD25233@gmail.com> (raw)
In-Reply-To: <550B2FEF.7060204@partner.samsung.com>
* Stefan Strogin <s.strogin@partner.samsung.com> wrote:
>
> On 17/03/15 10:40, Ingo Molnar wrote:
> >
> > * Stefan Strogin <s.strogin@partner.samsung.com> wrote:
> >
> >>> +TRACE_EVENT(cma_alloc,
> >>> +
> >>> + TP_PROTO(struct cma *cma, struct page *page, int count),
> >>> +
> >>> + TP_ARGS(cma, page, count),
> >>> +
> >>> + TP_STRUCT__entry(
> >>> + __field(struct page *, page)
> >>> + __field(unsigned long, count)
> >>> + ),
> >>> +
> >>> + TP_fast_assign(
> >>> + __entry->page = page;
> >>> + __entry->count = count;
> >>> + ),
> >>> +
> >>> + TP_printk("page=%p pfn=%lu count=%lu",
> >>> + __entry->page,
> >>> + __entry->page ? page_to_pfn(__entry->page) : 0,
> >>> + __entry->count)
> >
> > So I'm wondering, the fast-assign side is not equivalent to the
> > TP_printk() side:
> >
> >>> + __entry->page = page;
> >>> + __entry->page ? page_to_pfn(__entry->page) : 0,
> >
> > to me it seems it would be useful if MM tracing standardized on pfn
> > printing. Just like you did for trace_cma_release().
> >
>
> Hello Ingo, thank you for the reply.
> I afraid there is no special sense in printing both struct page * and
> pfn. But cma_alloc() returns struct page *, cma_release receives struct
> page *, and pr_debugs in these functions print struct page *. Maybe it
> would be better to print the same here too?
So will the tracepoints primarily log 'struct page *'?
If yes, my question is: why not log pfn? pfn is much more informative
(it's a hardware property of the page, not a kernel-internal
descriptor like 'struct page *') , and it tells us (without knowing
the layout of the kernel) which NUMA node a given area lies on, etc.
Or do other mm tracepoints already (mistakenly) use 'struct page *'?
> > Again I'd double check the various boundary conditions.
> >
>
> Sorry, I don't quite understand. Boundary conditions are already
> [should be] checked in cma_alloc()/cma_release, we should only pass
> to a trace event the information we want to be known, isn't it so?
No, I mean tracing info boundary conditions: what is returned when no
such page is allocated, what is returned when pfn #0 is allocated,
etc.
Thanks,
Ingo
--
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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@kernel.org>
To: Stefan Strogin <s.strogin@partner.samsung.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Andrew Morton <akpm@linux-foundation.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Michal Nazarewicz <mina86@mina86.com>,
aneesh.kumar@linux.vnet.ibm.com,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Dmitry Safonov <d.safonov@partner.samsung.com>,
Pintu Kumar <pintu.k@samsung.com>,
Weijie Yang <weijie.yang@samsung.com>,
Laura Abbott <lauraa@codeaurora.org>,
SeongJae Park <sj38.park@gmail.com>, Hui Zhu <zhuhui@xiaomi.com>,
Minchan Kim <minchan@kernel.org>,
Dyasly Sergey <s.dyasly@samsung.com>,
Vyacheslav Tyrtov <v.tyrtov@samsung.com>,
Aleksei Mateosian <a.mateosian@samsung.com>,
gregory.0xf0@gmail.com, sasha.levin@oracle.com, gioh.kim@lge.com,
pavel@ucw.cz, stefan.strogin@gmail.com,
Steven Rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH v4 1/5] mm: cma: add trace events to debug physically-contiguous memory allocations
Date: Mon, 23 Mar 2015 15:04:17 +0100 [thread overview]
Message-ID: <20150323140417.GD25233@gmail.com> (raw)
In-Reply-To: <550B2FEF.7060204@partner.samsung.com>
* Stefan Strogin <s.strogin@partner.samsung.com> wrote:
>
> On 17/03/15 10:40, Ingo Molnar wrote:
> >
> > * Stefan Strogin <s.strogin@partner.samsung.com> wrote:
> >
> >>> +TRACE_EVENT(cma_alloc,
> >>> +
> >>> + TP_PROTO(struct cma *cma, struct page *page, int count),
> >>> +
> >>> + TP_ARGS(cma, page, count),
> >>> +
> >>> + TP_STRUCT__entry(
> >>> + __field(struct page *, page)
> >>> + __field(unsigned long, count)
> >>> + ),
> >>> +
> >>> + TP_fast_assign(
> >>> + __entry->page = page;
> >>> + __entry->count = count;
> >>> + ),
> >>> +
> >>> + TP_printk("page=%p pfn=%lu count=%lu",
> >>> + __entry->page,
> >>> + __entry->page ? page_to_pfn(__entry->page) : 0,
> >>> + __entry->count)
> >
> > So I'm wondering, the fast-assign side is not equivalent to the
> > TP_printk() side:
> >
> >>> + __entry->page = page;
> >>> + __entry->page ? page_to_pfn(__entry->page) : 0,
> >
> > to me it seems it would be useful if MM tracing standardized on pfn
> > printing. Just like you did for trace_cma_release().
> >
>
> Hello Ingo, thank you for the reply.
> I afraid there is no special sense in printing both struct page * and
> pfn. But cma_alloc() returns struct page *, cma_release receives struct
> page *, and pr_debugs in these functions print struct page *. Maybe it
> would be better to print the same here too?
So will the tracepoints primarily log 'struct page *'?
If yes, my question is: why not log pfn? pfn is much more informative
(it's a hardware property of the page, not a kernel-internal
descriptor like 'struct page *') , and it tells us (without knowing
the layout of the kernel) which NUMA node a given area lies on, etc.
Or do other mm tracepoints already (mistakenly) use 'struct page *'?
> > Again I'd double check the various boundary conditions.
> >
>
> Sorry, I don't quite understand. Boundary conditions are already
> [should be] checked in cma_alloc()/cma_release, we should only pass
> to a trace event the information we want to be known, isn't it so?
No, I mean tracing info boundary conditions: what is returned when no
such page is allocated, what is returned when pfn #0 is allocated,
etc.
Thanks,
Ingo
next prev parent reply other threads:[~2015-03-23 14:04 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-16 16:06 [PATCH v4 0/5] mm: cma: add some debug information for CMA Stefan Strogin
2015-03-16 16:06 ` Stefan Strogin
2015-03-16 16:06 ` [PATCH v4 1/5] mm: cma: add trace events to debug physically-contiguous memory allocations Stefan Strogin
2015-03-16 16:06 ` Stefan Strogin
2015-03-16 20:49 ` Stefan Strogin
2015-03-16 20:49 ` Stefan Strogin
2015-03-16 23:47 ` Steven Rostedt
2015-03-16 23:47 ` Steven Rostedt
2015-03-19 20:18 ` Stefan Strogin
2015-03-19 20:18 ` Stefan Strogin
2015-03-19 20:34 ` Steven Rostedt
2015-03-19 20:34 ` Steven Rostedt
2015-03-20 10:46 ` Stefan Strogin
2015-03-20 10:46 ` Stefan Strogin
2015-03-20 14:31 ` Steven Rostedt
2015-03-20 14:31 ` Steven Rostedt
2015-03-17 7:40 ` Ingo Molnar
2015-03-17 7:40 ` Ingo Molnar
2015-03-19 20:22 ` Stefan Strogin
2015-03-19 20:22 ` Stefan Strogin
2015-03-23 14:04 ` Ingo Molnar [this message]
2015-03-23 14:04 ` Ingo Molnar
2015-03-16 16:06 ` [PATCH v4 2/5] mm: cma: add number of pages to debug message in cma_release() Stefan Strogin
2015-03-16 16:06 ` Stefan Strogin
2015-03-16 16:06 ` [PATCH v4 3/5] stacktrace: add seq_print_stack_trace() Stefan Strogin
2015-03-16 16:06 ` Stefan Strogin
2015-03-16 17:33 ` Michal Nazarewicz
2015-03-16 17:33 ` Michal Nazarewicz
2015-03-16 16:06 ` [PATCH v4 4/5] mm: cma: add list of currently allocated CMA buffers to debugfs Stefan Strogin
2015-03-16 16:06 ` Stefan Strogin
2015-03-16 17:51 ` Michal Nazarewicz
2015-03-16 17:51 ` Michal Nazarewicz
2015-03-16 16:09 ` [PATCH v4 5/5] mm: cma: add functions to get region pages counters Stefan Strogin
2015-03-16 16:09 ` Stefan Strogin
2015-03-17 1:43 ` [PATCH v4 0/5] mm: cma: add some debug information for CMA Joonsoo Kim
2015-03-17 1:43 ` Joonsoo Kim
2015-03-17 1:54 ` Sasha Levin
2015-03-17 1:54 ` Sasha Levin
2015-03-17 2:04 ` Joonsoo Kim
2015-03-17 2:04 ` Joonsoo Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150323140417.GD25233@gmail.com \
--to=mingo@kernel.org \
--cc=a.mateosian@samsung.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=d.safonov@partner.samsung.com \
--cc=gioh.kim@lge.com \
--cc=gregory.0xf0@gmail.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=lauraa@codeaurora.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=m.szyprowski@samsung.com \
--cc=mina86@mina86.com \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@ucw.cz \
--cc=pintu.k@samsung.com \
--cc=rostedt@goodmis.org \
--cc=s.dyasly@samsung.com \
--cc=s.strogin@partner.samsung.com \
--cc=sasha.levin@oracle.com \
--cc=sj38.park@gmail.com \
--cc=stefan.strogin@gmail.com \
--cc=v.tyrtov@samsung.com \
--cc=weijie.yang@samsung.com \
--cc=zhuhui@xiaomi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.