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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5289BC77B7C for ; Tue, 24 Jun 2025 07:10:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAA3B8D0002; Tue, 24 Jun 2025 03:10:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C80B88D0001; Tue, 24 Jun 2025 03:10:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BBDA18D0002; Tue, 24 Jun 2025 03:10:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AD31C8D0001 for ; Tue, 24 Jun 2025 03:10:10 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 47378161B4E for ; Tue, 24 Jun 2025 07:10:10 +0000 (UTC) X-FDA: 83589420180.28.C812A0C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf18.hostedemail.com (Postfix) with ESMTP id 6C22A1C0003 for ; Tue, 24 Jun 2025 07:10:08 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=K7w34Fi6; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of mhiramat@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=mhiramat@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750749008; a=rsa-sha256; cv=none; b=DXcFLO1sGi8J8rImJircDTdGjMiLdsHUaZ/mmF3Pr+XJAEWZucc7b8wskD4XupYnTjIRor CD3lrAmhfIFEZ56gfW8aq2MicZQjBh5pbWouirB9QnL7o9YGvnVNYRwFNdKTmMZ4+Lx41i ECyDg332g6I3c4bwVi5i3LdrDIvMu2U= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=K7w34Fi6; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of mhiramat@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=mhiramat@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750749008; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=wRAHd56OJNW421HU0xtRjOJ0sIMPM6tPE49Mypn6hwQ=; b=qob8V63lZaJvdnBxnfBNE0Y9J1fG9eyKGJr5ukNmgRRKxbXByWKNtIRNMyzBK6R+siHSrV XJ84CSrvFAbqenu/zrNA328O/fJ8GdLAOPrbf1sWbT4WlGiPQg4GuvSFiptmb4wbDQgyLD G4qFl6/VmkwLRLecT6LNSL0Ldwp/rSw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 2AA525C620E; Tue, 24 Jun 2025 07:07:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28780C4CEE3; Tue, 24 Jun 2025 07:10:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750749005; bh=iGGBrNRm6+Hn7q+qv/V7ELw7CaAhXZB9cDkZsJM7Z+c=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=K7w34Fi6xEmoWTI7PLYRovUp6o1cpHCA88HPPuFv4queEFrLM0ujUCUfsx5UsW4Iq +YqwdQ2dSaLurT+emNExhWXMN43Em20AJFU3wK9bxAOeOGVvvWLZ/6arWJ0t8cCvzk hlYdRLD73tVd8OqbW/h+0YM3d/a41Ag+bPvQ97c6zXPAnkLNVPaTXCs0GqkLfnX6nO kHCr9UplG9gkyEz76chMTQzz9yyN0R4HbxHk8DKzdAxXXWkFo4YpkPh3xLC5ILGbDR uxxcM84cbRf5gx5YJAHk9NmSv+V3zJMJsfiBk6NYsltJj7jelzJDDo3MAH0ALy+xv/ ZR+e6O6eKrPPQ== Date: Tue, 24 Jun 2025 16:09:58 +0900 From: Masami Hiramatsu (Google) To: Raghavendra K T Cc: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [RFC PATCH V2 12/13] trace/kscand: Add tracing of scanning and migration Message-Id: <20250624160958.e36196456a4c8befc99717ba@kernel.org> In-Reply-To: <20250624055617.1291159-13-raghavendra.kt@amd.com> References: <20250624055617.1291159-1-raghavendra.kt@amd.com> <20250624055617.1291159-13-raghavendra.kt@amd.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 6C22A1C0003 X-Stat-Signature: qg7y6kwrpi9d53ax9ng4zxs1rwbcn8jx X-Rspam-User: X-HE-Tag: 1750749008-121285 X-HE-Meta: U2FsdGVkX18wy1yfcvmqRfuOeD0tTyWPbaPDKpdCTIiv9Cns2gxcl/u8dhrb0hhLc2UhJJt6buFYb21xxXenTq5E1NumEJxwMbfx7Vy5dn/xQqYAmjoZrk2O7JcAKEQY/4ipDozZOgPlOUoxoSUU4cvOGWCA6JSYieXPHHPbwOTcSI3hdZRLcHSg/pBYJaXgOziW0xI5rGMBPbHE/Z7AmiRj65DqQfZLxaNTmYBkzHc4IWhtZFISBKVHoJig9WhE8P7sug+IvfE+xaGEcMDcxbf71uYsvYmU2iL0gWrRSBXY+cRp7u4kKIQfj9mUgOL1sRHe2+PzlQBc80/SYlfnSV7lcwqjY7/OkmLYxJM2OVXytgS0i81TcPCQ93YOJclm9Jr0rkjgGcQCJyUzkNmtVIFOE9TBwE/1Ex0yPxDd7qxSsNMZjJABZKOdOhFCWaeRCEk0NSQAZpD6KjyFmWa42P2sN5dcnhv/di7SmldaQKbiRvNBNYzDK0RFfXb4P+DidT+5mGKnkss0CJEgb7KxRyza6qJl/GJuy0yfhWqpwBHSaoE8b/ojqNeZU7RxaGVIlvj+RhwZAmFqw4vs/UP5MWsJc7Mi0mGUIIWuo9vDXrQmwtJa6BuC5s5pACI9YZCF3I1j/FwmFDeRoXJ53jwLim0FnT0a695I6go7ELTCrbV1CstF+e+PFUE1OEkMWHtNjvo9QVzhkTLu/LnetVWUXUiinQH81ab1BX0hSUtgRPbmwD0pGVCuPJl6agMMr81ln+rAMLWWyui02icUhYuDDevpArgC+q46S8wOUHFzWN8YUCTFs6+BTTv2HoXTck1k0r/Kn2HArCK0z2DkxHChHKFJdeEoKpMP9zhxWEsOA4Ea+L5PIQoBswPEWq5JYijO7HSB46rEllOSnM5EJt8BflrNwgqT4+Z88CoC9nV4jNPlZuUxBLPPdk4EhLF959I5b0VFq1PlOQsY2qtnU71 bAY+vGGd J1gtjvPKdOrTUw17QBZWHFBA+2vVwrRCk6ucZfgFgHaNTVsWvmBiOMTmfCnm+lIfgsBhelt/CcEmOjV0PJaUoMA6HotcPN2f0ihlwUkvuSEr1WupNqBqTpu22Rl952VB0B9z/jXDc+k2WLHupkYs8cZGQ9UDtrmCUHmUxU7rzLsFqD6KDgAVXUFIVdpCPiUOPpMLnmNqXgCkZx1XZ9TcmCqh45TfAUV/WS9u2WGQc1CKUnP75isC3t+3L70/3W77vouRE+voIeV/H2Fr0BJjHUx7CRaeVjEx890Cwiniyysqsyr8a9HKHk/vO7bDw1wCAr8U2k1b4gIEI0yP56Rd2veeZwSdUG1hfoW7LRqVhRhe5AfR/tEE8nf5M/fGSWIQIRRjl9cwgdagrWU1zssPQS5My5em81DFawynUPn/mofR/mEY= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, 24 Jun 2025 05:56:16 +0000 Raghavendra K T wrote: > Add tracing support to track > - start and end of scanning. > - migration. > > CC: Steven Rostedt > CC: Masami Hiramatsu > CC: linux-trace-kernel@vger.kernel.org > > Signed-off-by: Raghavendra K T > --- > include/trace/events/kmem.h | 90 +++++++++++++++++++++++++++++++++++++ > mm/kscand.c | 8 ++++ > 2 files changed, 98 insertions(+) > > diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h > index f74925a6cf69..682c4015414f 100644 > --- a/include/trace/events/kmem.h > +++ b/include/trace/events/kmem.h > @@ -9,6 +9,96 @@ > #include > #include > Please make sure the event is not exposed when it is not used. #ifdef CONFIG_KSCAND Thank you, > +DECLARE_EVENT_CLASS(kmem_mm_class, > + > + TP_PROTO(struct mm_struct *mm), > + > + TP_ARGS(mm), > + > + TP_STRUCT__entry( > + __field( struct mm_struct *, mm ) > + ), > + > + TP_fast_assign( > + __entry->mm = mm; > + ), > + > + TP_printk("mm = %p", __entry->mm) > +); > + > +DEFINE_EVENT(kmem_mm_class, kmem_mm_enter, > + TP_PROTO(struct mm_struct *mm), > + TP_ARGS(mm) > +); > + > +DEFINE_EVENT(kmem_mm_class, kmem_mm_exit, > + TP_PROTO(struct mm_struct *mm), > + TP_ARGS(mm) > +); > + > +DEFINE_EVENT(kmem_mm_class, kmem_scan_mm_start, > + TP_PROTO(struct mm_struct *mm), > + TP_ARGS(mm) > +); > + > +TRACE_EVENT(kmem_scan_mm_end, > + > + TP_PROTO( struct mm_struct *mm, > + unsigned long start, > + unsigned long total, > + unsigned long scan_period, > + unsigned long scan_size, > + int target_node), > + > + TP_ARGS(mm, start, total, scan_period, scan_size, target_node), > + > + TP_STRUCT__entry( > + __field( struct mm_struct *, mm ) > + __field( unsigned long, start ) > + __field( unsigned long, total ) > + __field( unsigned long, scan_period ) > + __field( unsigned long, scan_size ) > + __field( int, target_node ) > + ), > + > + TP_fast_assign( > + __entry->mm = mm; > + __entry->start = start; > + __entry->total = total; > + __entry->scan_period = scan_period; > + __entry->scan_size = scan_size; > + __entry->target_node = target_node; > + ), > + > + TP_printk("mm=%p, start = %ld, total = %ld, scan_period = %ld, scan_size = %ld node = %d", > + __entry->mm, __entry->start, __entry->total, __entry->scan_period, > + __entry->scan_size, __entry->target_node) > +); > + > +TRACE_EVENT(kmem_scan_mm_migrate, > + > + TP_PROTO(struct mm_struct *mm, > + int rc, > + int target_node), > + > + TP_ARGS(mm, rc, target_node), > + > + TP_STRUCT__entry( > + __field( struct mm_struct *, mm ) > + __field( int, rc ) > + __field( int, target_node ) > + ), > + > + TP_fast_assign( > + __entry->mm = mm; > + __entry->rc = rc; > + __entry->target_node = target_node; > + ), > + > + TP_printk("mm = %p rc = %d node = %d", > + __entry->mm, __entry->rc, __entry->target_node) > +); > + > TRACE_EVENT(kmem_cache_alloc, > > TP_PROTO(unsigned long call_site, > diff --git a/mm/kscand.c b/mm/kscand.c > index db7b2f940f36..029d6d2bedc3 100644 > --- a/mm/kscand.c > +++ b/mm/kscand.c > @@ -1035,6 +1035,7 @@ static void kmigrated_migrate_mm(struct kmigrated_mm_slot *mm_slot) > } > > ret = kmigrated_promote_folio(info, mm, dest); > + trace_kmem_scan_mm_migrate(mm, ret, dest); > > /* TBD: encode migrated count here, currently assume folio_nr_pages */ > if (!ret) > @@ -1230,6 +1231,9 @@ static unsigned long kscand_scan_mm_slot(void) > mm_target_node = READ_ONCE(mm->target_node); > if (mm_target_node != mm_slot_target_node) > WRITE_ONCE(mm->target_node, mm_slot_target_node); > + > + trace_kmem_scan_mm_start(mm); > + > now = jiffies; > > if (mm_slot_next_scan && time_before(now, mm_slot_next_scan)) > @@ -1300,6 +1304,8 @@ static unsigned long kscand_scan_mm_slot(void) > kscand_update_mmslot_info(mm_slot, total, target_node); > } > > + trace_kmem_scan_mm_end(mm, address, total, mm_slot_scan_period, > + mm_slot_scan_size, target_node); > > outerloop: > /* exit_mmap will destroy ptes after this */ > @@ -1453,6 +1459,7 @@ void __kscand_enter(struct mm_struct *mm) > spin_unlock(&kscand_mm_lock); > > mmgrab(mm); > + trace_kmem_mm_enter(mm); > if (wakeup) > wake_up_interruptible(&kscand_wait); > } > @@ -1463,6 +1470,7 @@ void __kscand_exit(struct mm_struct *mm) > struct mm_slot *slot; > int free = 0, serialize = 1; > > + trace_kmem_mm_exit(mm); > spin_lock(&kscand_mm_lock); > slot = mm_slot_lookup(kscand_slots_hash, mm); > mm_slot = mm_slot_entry(slot, struct kscand_mm_slot, slot); > -- > 2.34.1 > > -- Masami Hiramatsu (Google)