From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E36EBC433EF for ; Wed, 29 Jun 2022 20:32:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=yRAlNnXh5g0jameeV6GymOdx5fQzc4dPnS3kwxyi4sc=; b=en/aGK+/AfpB/C 2YpqSla0tdZGp4mL0e7UMkK2FFArp0lZebS8u5o1JEQBwReX+jqdRZncYJK3sKMQ5CYgB8+bxM7BV 0ZkVzC2SupsqyASeELwrXtP5jGgO8rngmbBRQqca45snKuofNhofsyMay7OgvWH75AevQu5r6ozKR mdcVIzAJgj4/vaVao9T04VztSVBz2MpmuiyXdEkCXITCdbAqI77EIDxs9Jpzz9ky8yvOr9jPPGJVw YucN6oIAa5AzoxIvNvzHg8Jk/hGlJcUGFcWBL+V2kJ8T7rbw2/iRrNHMdu19r3pGT/8RlVS0bCerK gg8kCS+BP5yGcorEZqTQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6eL1-00DyR2-Ed; Wed, 29 Jun 2022 20:31:03 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6eKx-00DyQ1-NN for linux-arm-kernel@lists.infradead.org; Wed, 29 Jun 2022 20:31:01 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 74941B81F16; Wed, 29 Jun 2022 20:30:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10AC1C34114; Wed, 29 Jun 2022 20:30:53 +0000 (UTC) Date: Wed, 29 Jun 2022 16:30:52 -0400 From: Steven Rostedt To: Jim Cromie Cc: jbaron@akamai.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, gregkh@linuxfoundation.org, daniel.vetter@ffwll.ch, seanpaul@chromium.org, robdclark@gmail.com, mathieu.desnoyers@efficios.com, quic_saipraka@quicinc.com, will@kernel.org, catalin.marinas@arm.com, quic_psodagud@quicinc.com, maz@kernel.org, arnd@arndb.de, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, mingo@redhat.com Subject: Re: [PATCH v2 26/27] dyndbg: 4 new trace-events: pr_debug, dev_dbg, drm_{,dev}debug Message-ID: <20220629163052.6656c0cb@gandalf.local.home> In-Reply-To: <20220516225640.3102269-27-jim.cromie@gmail.com> References: <20220516225640.3102269-1-jim.cromie@gmail.com> <20220516225640.3102269-27-jim.cromie@gmail.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220629_133100_112043_B7AC7AFA X-CRM114-Status: GOOD ( 19.79 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Sorry for the late review. I finally got some time to look at this. On Mon, 16 May 2022 16:56:39 -0600 Jim Cromie wrote: > diff --git a/include/trace/events/drm.h b/include/trace/events/drm.h > new file mode 100644 > index 000000000000..6de80dd68620 > --- /dev/null > +++ b/include/trace/events/drm.h > @@ -0,0 +1,68 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#undef TRACE_SYSTEM > +#define TRACE_SYSTEM drm > + > +#if !defined(_TRACE_DRM_H) || defined(TRACE_HEADER_MULTI_READ) > +#define _TRACE_DRM_H > + > +#include > + > +/* drm_debug() was called, pass its args */ > +TRACE_EVENT(drm_debug, > + TP_PROTO(int drm_debug_category, struct va_format *vaf), > + > + TP_ARGS(drm_debug_category, vaf), > + > + TP_STRUCT__entry( > + __field(int, drm_debug_category) > + __dynamic_array(char, msg, 256) > + ), > + > + TP_fast_assign( > + int len; > + > + __entry->drm_debug_category = drm_debug_category; > + vsnprintf(__get_str(msg), 256, vaf->fmt, *vaf->va); > + > + len = strlen(__get_str(msg)); > + if (len > 0 && (__get_str(msg)[len - 1] == '\n')) > + len -= 1; > + __get_str(msg)[len] = 0; > + ), > + > + TP_printk("%s", __get_str(msg)) > +); > + > +/* drm_devdbg() was called, pass its args, preserving order */ > +TRACE_EVENT(drm_devdbg, > + TP_PROTO(const struct device *dev, int drm_debug_category, struct va_format *vaf), > + > + TP_ARGS(dev, drm_debug_category, vaf), > + > + TP_STRUCT__entry( > + __field(const struct device*, dev) > + __field(int, drm_debug_category) > + __dynamic_array(char, msg, 256) You do not want to hardcode the 256 here. That will cause 256 bytes to be reserved on the buffer, and you will not get that back. Might as well make it a static array, as you also add 4 bytes to for the offset and size. I think you want (haven't tested it) __dynamic_array(char, msg, get_msg_size(vaf)) Where you have: static unsigned int get_msg_size(struct va_format *vaf) { va_list aq; unsigned int ret; va_copy(aq, vaf->va); ret = vsnprintf(NULL, 0, vaf->fmt, aq); va_end(aq); return min(ret + 1, 256); } What is in the last parameter of __dynamic_array() is used to calculate the size needed to store the dynamic array. Hmm, looking at other users of __dynamic_array(), this appears to be a constant problem. I need to document this better. -- Steve > + ), > + > + TP_fast_assign( > + int len; > + > + __entry->drm_debug_category = drm_debug_category; > + __entry->dev = dev; > + vsnprintf(__get_str(msg), 256, vaf->fmt, *vaf->va); > + > + len = strlen(__get_str(msg)); > + if (len > 0 && (__get_str(msg)[len - 1] == '\n')) > + len -= 1; > + __get_str(msg)[len] = 0; > + ), > + > + TP_printk("cat:%d, %s %s", __entry->drm_debug_category, > + dev_name(__entry->dev), __get_str(msg)) > +); > + > +#endif /* _TRACE_DRM_H */ > + _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel