Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932280AbbLBAj2 (ORCPT ); Tue, 1 Dec 2015 19:39:28 -0500 Received: from mail-pa0-f48.google.com ([209.85.220.48]:34722 "EHLO mail-pa0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751883AbbLBAj1 (ORCPT ); Tue, 1 Dec 2015 19:39:27 -0500 Message-ID: <565E3DBC.9070204@linaro.org> Date: Tue, 01 Dec 2015 16:39:24 -0800 From: "Shi, Yang" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Steven Rostedt CC: akpm@linux-foundation.org, mingo@redhat.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linaro-kernel@lists.linaro.org Subject: Re: [PATCH 1/7] trace/events: Add gup trace events References: <1449011177-30686-1-git-send-email-yang.shi@linaro.org> <1449011177-30686-2-git-send-email-yang.shi@linaro.org> <20151201185643.2ef6cd14@gandalf.local.home> <565E3650.4050209@linaro.org> <20151201191826.771bce5d@gandalf.local.home> In-Reply-To: <20151201191826.771bce5d@gandalf.local.home> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3186 Lines: 99 On 12/1/2015 4:18 PM, Steven Rostedt wrote: > On Tue, 01 Dec 2015 16:07:44 -0800 > "Shi, Yang" wrote: > >> On 12/1/2015 3:56 PM, Steven Rostedt wrote: >>> On Tue, 1 Dec 2015 15:06:11 -0800 >>> Yang Shi wrote: >>> >>>> page-faults events record the invoke to handle_mm_fault, but the invoke >>>> may come from do_page_fault or gup. In some use cases, the finer event count >>>> mey be needed, so add trace events support for: >>>> >>>> __get_user_pages >>>> __get_user_pages_fast >>>> fixup_user_fault >>>> >>>> Signed-off-by: Yang Shi >>>> --- >>>> include/trace/events/gup.h | 77 ++++++++++++++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 77 insertions(+) >>>> create mode 100644 include/trace/events/gup.h >>>> >>>> diff --git a/include/trace/events/gup.h b/include/trace/events/gup.h >>>> new file mode 100644 >>>> index 0000000..37d18f9 >>>> --- /dev/null >>>> +++ b/include/trace/events/gup.h >>>> @@ -0,0 +1,77 @@ >>>> +#undef TRACE_SYSTEM >>>> +#define TRACE_SYSTEM gup >>>> + >>>> +#if !defined(_TRACE_GUP_H) || defined(TRACE_HEADER_MULTI_READ) >>>> +#define _TRACE_GUP_H >>>> + >>>> +#include >>>> +#include >>>> + >>>> +TRACE_EVENT(gup_fixup_user_fault, >>>> + >>>> + TP_PROTO(struct task_struct *tsk, struct mm_struct *mm, >>>> + unsigned long address, unsigned int fault_flags), >>>> + >>>> + TP_ARGS(tsk, mm, address, fault_flags), >>>> + >>>> + TP_STRUCT__entry( >>>> + __array( char, comm, TASK_COMM_LEN ) >>> >>> Why save the comm? The tracing infrastructure should keep track of that. >> >> The code is referred to kmem.h which has comm copied. If it is >> unnecessary, it definitely could be removed. > > Sometimes comm isn't that reliable. But really, the only tracepoint > that should record it is sched_switch, and sched_wakeup. With those > two, the rest of the trace points should be fine. > >> >>> >>>> + __field( unsigned long, address ) >>>> + ), >>>> + >>>> + TP_fast_assign( >>>> + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); >>>> + __entry->address = address; >>>> + ), >>>> + >>>> + TP_printk("comm=%s address=%lx", __entry->comm, __entry->address) >>>> +); >>>> + >>>> +TRACE_EVENT(gup_get_user_pages, >>>> + >>>> + TP_PROTO(struct task_struct *tsk, struct mm_struct *mm, >>>> + unsigned long start, unsigned long nr_pages, >>>> + unsigned int gup_flags, struct page **pages, >>>> + struct vm_area_struct **vmas, int *nonblocking), >>>> + >>>> + TP_ARGS(tsk, mm, start, nr_pages, gup_flags, pages, vmas, nonblocking), >>> >>> Why so many arguments? Most are not used. >> >> My understanding to TP_ARGS may be not right. Doesn't it require all the >> args defined by the function? If not, it could definitely be shrunk. >> Just need keep the args used by TP_printk? > > It only needs what is used by TP_fast_assign(). Thanks, will fix them in V2. Yang > > -- Steve > -- 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/