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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 47587E6FE51 for ; Wed, 24 Dec 2025 01:11:41 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A53AC10E2F2; Wed, 24 Dec 2025 01:11:40 +0000 (UTC) Received: from outboundhk.mxmail.xiaomi.com (outboundhk.mxmail.xiaomi.com [118.143.206.90]) by gabe.freedesktop.org (Postfix) with ESMTP id 3A16F10E2F2 for ; Wed, 24 Dec 2025 01:11:38 +0000 (UTC) X-CSE-ConnectionGUID: H1pX4pXDTgKSu6gQX2U8bA== X-CSE-MsgGUID: qU21qwFcSiGZONs5d8diDQ== X-IronPort-AV: E=Sophos;i="6.21,172,1763395200"; d="scan'208,217";a="136357648" From: =?gb2312?B?uN/P6A==?= To: Steven Rostedt , Xiang Gao CC: "sumit.semwal@linaro.org" , "christian.koenig@amd.com" , "mhiramat@kernel.org" , "linux-media@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "mathieu.desnoyers@efficios.com" , "dhowells@redhat.com" , "kuba@kernel.org" , "brauner@kernel.org" , "akpm@linux-foundation.org" , "linux-trace-kernel@vger.kernel.org" Subject: =?gb2312?B?tPC4tDogW0V4dGVybmFsIE1haWxdUmU6IFtQQVRDSCB2OV0gZG1hLWJ1Zjog?= =?gb2312?Q?add_some_tracepoints_to_debug.?= Thread-Topic: [External Mail]Re: [PATCH v9] dma-buf: add some tracepoints to debug. Thread-Index: AQHcdCsrcuiWuxu+nkKdQV9ZBkZWRLUv/CFf Date: Wed, 24 Dec 2025 01:11:35 +0000 Message-ID: <49db0d7370224e14ad7788b280bd1602@xiaomi.com> References: <20251223032749.1371913-1-gxxa03070307@gmail.com>, <20251223114424.1c539f7a@gandalf.local.home> In-Reply-To: <20251223114424.1c539f7a@gandalf.local.home> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.149.36.96] Content-Type: multipart/alternative; boundary="_000_49db0d7370224e14ad7788b280bd1602xiaomicom_" MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" --_000_49db0d7370224e14ad7788b280bd1602xiaomicom_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 b2ssIHRoYW5rcy4NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCreivP7Iyzog U3RldmVuIFJvc3RlZHQgPHJvc3RlZHRAZ29vZG1pcy5vcmc+DQq3osvNyrG85DogMjAyNcTqMTLU wjI0yNUgMDo0NDoyNA0KytW8/sjLOiBYaWFuZyBHYW8NCrOty806IHN1bWl0LnNlbXdhbEBsaW5h cm8ub3JnOyBjaHJpc3RpYW4ua29lbmlnQGFtZC5jb207IG1oaXJhbWF0QGtlcm5lbC5vcmc7IGxp bnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbWF0aGlldS5kZXNub3llcnNAZWZmaWNp b3MuY29tOyBkaG93ZWxsc0ByZWRoYXQuY29tOyBrdWJhQGtlcm5lbC5vcmc7IGJyYXVuZXJAa2Vy bmVsLm9yZzsgYWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZzsgbGludXgtdHJhY2Uta2VybmVsQHZn ZXIua2VybmVsLm9yZzsguN/P6A0K1vfM4jogW0V4dGVybmFsIE1haWxdUmU6IFtQQVRDSCB2OV0g ZG1hLWJ1ZjogYWRkIHNvbWUgdHJhY2Vwb2ludHMgdG8gZGVidWcuDQoNClvN4rK/08q8/l0gtMvT yrz+wLTUtNPa0KHD17mry77N4rK/o6zH6733yfe0psDtoaPI9LbU08q8/rCyyKvQ1LTm0smjrMfr vavTyrz+16q3orj4bWlzZWNAeGlhb21pLmNvbb340NC3tMChDQoNCk9uIFR1ZSwgMjMgRGVjIDIw MjUgMTE6Mjc6NDkgKzA4MDANClhpYW5nIEdhbyA8Z3h4YTAzMDcwMzA3QGdtYWlsLmNvbT4gd3Jv dGU6DQoNCj4NCj4gKyNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUw0KPiArI2luY2x1ZGUgPHRy YWNlL2V2ZW50cy9kbWFfYnVmLmg+DQo+ICsNCj4gKy8qDQo+ICsgKiBkbWFidWYtPm5hbWUgbXVz dCBiZSBhY2Nlc3NlZCB3aXRoIGhvbGRpbmcgZG1hYnVmLT5uYW1lX2xvY2suDQo+ICsgKiB3ZSBu ZWVkIHRvIHRha2UgdGhlIGxvY2sgYXJvdW5kIHRoZSB0cmFjZXBvaW50IGNhbGwgaXRzZWxmIHdo ZXJlDQo+ICsgKiBpdCBpcyBjYWxsZWQgaW4gdGhlIGNvZGUuDQo+ICsgKg0KPiArICogTm90ZTog RlVOQyMjX2VuYWJsZWQoKSBpcyBhIHN0YXRpYyBicmFuY2ggdGhhdCB3aWxsIG9ubHkNCj4gKyAq ICAgICAgIGJlIHNldCB3aGVuIHRoZSB0cmFjZSBldmVudCBpcyBlbmFibGVkLg0KPiArICovDQo+ ICsjZGVmaW5lIERNQV9CVUZfVFJBQ0UoRlVOQywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ICsgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ICsgICAgICAgICAgICAgaWYgKEZVTkMjI19lbmFibGVkKCkpIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgIGd1YXJk KHNwaW5sb2NrKSgmZG1hYnVmLT5uYW1lX2xvY2spOyAgICBcDQo+ICsgICAgICAgICAgICAgICAg ICAgICBGVU5DKF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KPiArICAgICAgICAgICAgIH0gZWxzZSBpZiAoSVNfRU5BQkxFRChDT05G SUdfTE9DS0RFUCkpIHsgICAgICAgIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIEV4cG9z ZSB0aGlzIGxvY2sgd2hlbiBsb2NrZGVwIGlzIGVuYWJsZWQgKi8gIFwNCj4gKyAgICAgICAgICAg ICAgICAgICAgIGd1YXJkKHNwaW5sb2NrKSgmZG1hYnVmLT5uYW1lX2xvY2spOyAgICBcDQo+ICsg ICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgfSB3 aGlsZSAoMCkNCj4gKw0KDQpJIGhhdGUgdG8gbWFrZSBhbm90aGVyIGNvbW1lbnQgaGVyZSwgYnV0 IEkgd2FzIGp1c3QgdGhpbmtpbmcgdGhhdCB0aGlzIGNhbg0KYmUgbWFkZSB0byBsb29rIGEgbGl0 dGxlIG5pY2VyLiBCYXNpY2FsbHksIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbg0KTE9D S0RFUCBpcyBhY3RpdmUsIHdlIGFsd2F5cyB0YWtlIHRoZSBsb2NrLiBCdXQgd2UgYWxzbyBuZWVk IHRvIHRha2UgdGhlDQpsb2NrIHdoZW4gdHJhY2luZyBpcyBlbmFibGVkLiBUaGUgdHJhY2Vwb2lu dCBpdHNlbGYgaXMgYSBzdGF0aWMgYnJhbmNoLA0Kd2hpY2ggbWVhbnMgaXQgaXMgYSBub3Agd2hl biBub3QgYWN0aXZlLCBzbyB0aGVyZSdzIG5vIHJlYWwgcHJvYmxlbSB3aXRoDQpjYWxsaW5nIGl0 LiBUaHVzLCB0aGlzIGNvdWxkIGxvb2sgYmV0dGVyIGFzOg0KDQojZGVmaW5lIERNQV9CVUZfVFJB Q0UoRlVOQywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQog ICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQogICAgICAgICAgICAgICAgLyogQWx3YXlzIGV4cG9zZSBsb2NrIGlm IGxvY2tkZXAgaXMgZW5hYmxlZCAqLyAgICAgICAgICBcDQogICAgICAgICAgICAgICAgaWYgKElT X0VOQUJMRUQoQ09ORklHX0xPQ0tERVApIHx8IEZVTkMjI19lbmFibGVkKCkpIHsgICBcDQogICAg ICAgICAgICAgICAgICAgICAgICBndWFyZChzcGlubG9jaykoJmRtYWJ1Zi0+bmFtZV9sb2NrKTsg ICAgICAgICAgICBcDQogICAgICAgICAgICAgICAgICAgICAgICBGVU5DKF9fVkFfQVJHU19fKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgICAgICAgICAgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgICAg IH0gd2hpbGUgKDApDQoNCg0KLS0gU3RldmUNCg== --_000_49db0d7370224e14ad7788b280bd1602xiaomicom_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

ok, thanks.


=B7=A2=BC=FE=C8=CB: Steve= n Rostedt <rostedt@goodmis.org>
=B7=A2=CB=CD=CA=B1=BC=E4: 2025=C4=EA12=D4=C224=C8=D5 0:44:24
=CA=D5=BC=FE=C8=CB: Xiang Gao
=B3=AD=CB=CD: sumit.semwal@linaro.org; christian.koenig@amd.com; mhi= ramat@kernel.org; linux-media@vger.kernel.org; dri-devel@lists.freedesktop.= org; linux-kernel@vger.kernel.org; mathieu.desnoyers@efficios.com; dhowells= @redhat.com; kuba@kernel.org; brauner@kernel.org; akpm@linux-foundation.org; linux-trace-kernel@vger.kernel.org; =B8=DF=CF= =E8
=D6=F7=CC=E2: [External Mail]Re: [PATCH v9] dma-buf: add some tracep= oints to debug.
 
[=CD=E2=B2=BF=D3=CA=BC=FE] =B4=CB=D3=CA=BC=FE=C0= =B4=D4=B4=D3=DA=D0=A1=C3=D7=B9=AB=CB=BE=CD=E2=B2=BF=A3=AC=C7=EB=BD=F7=C9=F7= =B4=A6=C0=ED=A1=A3=C8=F4=B6=D4=D3=CA=BC=FE=B0=B2=C8=AB=D0=D4=B4=E6=D2=C9=A3= =AC=C7=EB=BD=AB=D3=CA=BC=FE=D7=AA=B7=A2=B8=F8misec@xiaomi.com=BD=F8=D0=D0= =B7=B4=C0=A1

On Tue, 23 Dec 2025 11:27:49 +0800
Xiang Gao <gxxa03070307@gmail.com> wrote:

>
> +#define CREATE_TRACE_POINTS
> +#include <trace/events/dma_buf.h>
> +
> +/*
> + * dmabuf->name must be accessed with holding dmabuf->name_= lock.
> + * we need to take the lock around the tracepoint call itself whe= re
> + * it is called in the code.
> + *
> + * Note: FUNC##_enabled() is a static branch that will only
> + *       be set when the trace even= t is enabled.
> + */
> +#define DMA_BUF_TRACE(FUNC, ...)     &nb= sp;            =             &nb= sp;      \
> +     do {      =             &nb= sp;            =             &nb= sp;            =             &nb= sp;            =    \
> +           = ;  if (FUNC##_enabled()) {       &n= bsp;            = ;            &n= bsp;        \
> +           = ;          guard(spinlock)(&am= p;dmabuf->name_lock);    \
> +           = ;          FUNC(__VA_ARGS__);&= nbsp;           &nbs= p;            &= nbsp;           &nbs= p;        \
> +           = ;  } else if (IS_ENABLED(CONFIG_LOCKDEP)) {    &nb= sp;   \
> +           = ;          /* Expose this lock= when lockdep is enabled */  \
> +           = ;          guard(spinlock)(&am= p;dmabuf->name_lock);    \
> +           = ;  }           =             &nb= sp;            =             &nb= sp;            =             &nb= sp;            = \
> +     } while (0)
> +

I hate to make another comment here, but I was just thinking that this can<= br> be made to look a little nicer. Basically, we want to make sure that when LOCKDEP is active, we always take the lock. But we also need to take the lock when tracing is enabled. The tracepoint itself is a static branch,
which means it is a nop when not active, so there's no real problem with calling it. Thus, this could look better as:

#define DMA_BUF_TRACE(FUNC, ...)       &= nbsp;           &nbs= p;            &= nbsp;       \
        do {    &nbs= p;            &= nbsp;           &nbs= p;            &= nbsp;           &nbs= p;     \
            &nb= sp;   /* Always expose lock if lockdep is enabled */  &= nbsp;       \
            &nb= sp;   if (IS_ENABLED(CONFIG_LOCKDEP) || FUNC##_enabled()) { =   \
            &nb= sp;           guard(spinl= ock)(&dmabuf->name_lock);       &= nbsp;    \
            &nb= sp;           FUNC(__VA_A= RGS__);           &n= bsp;            = ;      \
            &nb= sp;   }         &nbs= p;            &= nbsp;           &nbs= p;            &= nbsp;       \
        } while (0)


-- Steve
--_000_49db0d7370224e14ad7788b280bd1602xiaomicom_--