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 D55C5C433FE for ; Wed, 26 Oct 2022 05:22:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 569408E0002; Wed, 26 Oct 2022 01:22:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4CB1C8E0001; Wed, 26 Oct 2022 01:22:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 344AC8E0002; Wed, 26 Oct 2022 01:22:28 -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 216C48E0001 for ; Wed, 26 Oct 2022 01:22:28 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id CFE9CC0B5F for ; Wed, 26 Oct 2022 05:22:27 +0000 (UTC) X-FDA: 80061955134.20.834DB8D Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by imf17.hostedemail.com (Postfix) with ESMTP id 6F23540003 for ; Wed, 26 Oct 2022 05:22:27 +0000 (UTC) Received: by mail-pj1-f51.google.com with SMTP id m6-20020a17090a5a4600b00212f8dffec9so1196793pji.0 for ; Tue, 25 Oct 2022 22:22:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=6nf8tg6bfdy8ZRRZrGWc8N60AgATSDdfOrh6ffniPwQ=; b=TyV9GL0jd2Mv6ivukXVpz1xSMyfoSpjC6FJM/Ef8WbFqhhzx8QwBPV+9BWtVMmAYGQ Jrp/boQLjGn8EWt9xhCSvYIY77aUhb9Pfj9E5Cl65U7a4f3QQy2SfhBrGpcIe8jfZeAz PVIMu4Ie3QZHLGztJRa94BBtw+R/mNtN2NzkG4a/OuZZ1BbjYW04UL2fvDlZWCAZGY7w A94aD/CRyrhy/OBhJf8yRuZdNq+1TjRn4EH2itjVfgKayKg3wKAZCmeqoWwou5CSKU2J Dum56GZzsCQUjlkI6rjTUFbxF8uE8YtVfAj236f6RBybvmOD647sD1254G1l2nadpxIi Qa6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6nf8tg6bfdy8ZRRZrGWc8N60AgATSDdfOrh6ffniPwQ=; b=lSQfyKzARanCq8sOGxeywszW+kmEY8sg3F64q1WJktdAtdIgizeqIm6j06o1vUr/fY 4s61PM6xfjbGj2eq2wUil2Bc2KKKxEWiMnTRZoUaDJtfAl/Hdr9003zOdAKFr3Crx1gx AkaNB/61vQ/DVRQxVq+heXPd4WNrwoVCBjcshvQJJxRGygiwlftwcSwYGFl02aX7Lm72 0EQKHxxaautkdEfEDJCICajsR4Cj/oy6xVVgdpC/X+3OrIJYP+kaGt4a6WYqGkjx7OL4 Vo+VkIl2vA8PdauQQeynYacMAwVcMJUrQfIxL32i6ABlDmiqKpsgBoxXSBqOOOAmkwyk a+4Q== X-Gm-Message-State: ACrzQf0QK+6D7vUMLzac1Mv5ai1AAnFgeBFdNQ3N8DwG3n4JDB5fURc7 bGLTVzjWQQtyR/6dz+eA7mo= X-Google-Smtp-Source: AMsMyM5velXK9ExPRI0uRTPhyVhMw70ESTcz9auVVTqB2thmc0XR5091ci6jAeJf3aF1ukevYhWUjA== X-Received: by 2002:a17:902:c948:b0:186:7baa:10ef with SMTP id i8-20020a170902c94800b001867baa10efmr25082844pla.73.1666761746218; Tue, 25 Oct 2022 22:22:26 -0700 (PDT) Received: from biggie.. ([103.230.148.186]) by smtp.gmail.com with ESMTPSA id c11-20020a170902d48b00b001869f2120a6sm2066817plg.108.2022.10.25.22.22.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 22:22:25 -0700 (PDT) From: Gautam Menghani To: akpm@linux-foundation.org, rostedt@goodmis.org, mhiramat@kernel.org, shy828301@gmail.com, zokeefe@google.com, david@redhat.com Cc: Gautam Menghani , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v3] mm/khugepaged: add tracepoint to collapse_file() Date: Wed, 26 Oct 2022 10:52:18 +0530 Message-Id: <20221026052218.148234-1-gautammenghani201@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1666761747; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=6nf8tg6bfdy8ZRRZrGWc8N60AgATSDdfOrh6ffniPwQ=; b=DlRW1RvH06oQxrw8j0mKXtPMF5qbhd+7rgmegLioE5ygi0vkWXayfT1i9vNLdxGaDxlmof 4X2tP+W67LR5gk8BrxaRfMz1h8HFokuLvvLoUbUhftG21iuF/tHlxWEndm+RD3mklss9rH 6exxFDBmpa015wH0J8O0lh6ivT41ybE= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=TyV9GL0j; spf=pass (imf17.hostedemail.com: domain of gautammenghani201@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=gautammenghani201@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1666761747; a=rsa-sha256; cv=none; b=H+gxQnq4gRkCrSLaL1VCpxob/fJ/4sLx8robXiQJwVb1+vsXeyyQfO5W20YEj9A3xiAPiR M2IE7++5SfyL9iVQn1VtKZxbtbcOQhNfyUlxNSM5fzVmNyNzLCJwIpD6MZK4ZsaETH3bi1 otQ6NfZtWQQWnc0kclHzj5Izk3DDweM= X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 6F23540003 X-Rspam-User: Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=TyV9GL0j; spf=pass (imf17.hostedemail.com: domain of gautammenghani201@gmail.com designates 209.85.216.51 as permitted sender) smtp.mailfrom=gautammenghani201@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Stat-Signature: 5cbxom3em9agfm3f4zyzc1zz3oghkndo X-HE-Tag: 1666761747-59057 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: Currently, is_shmem is not being captured. Capturing is_shmem is useful as it can indicate if tmpfs is being used as a backing store instead of persistent storage. Add the tracepoint in collapse_file() named "mm_khugepaged_collapse_file" for capturing is_shmem. Signed-off-by: Gautam Menghani --- changes in v2: 1. Move filename dereference out of calling path (Steven Rostedt). 2. Capture is_shmem and index (Zach O'Keefe) changes in v3: 1. Initialize the variables to resolve clang warning. 2. Add more info in changelog. include/trace/events/huge_memory.h | 38 ++++++++++++++++++++++++++++++ mm/khugepaged.c | 7 +++--- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/include/trace/events/huge_memory.h b/include/trace/events/huge_memory.h index 935af4947917..472238d0e3a3 100644 --- a/include/trace/events/huge_memory.h +++ b/include/trace/events/huge_memory.h @@ -203,5 +203,43 @@ TRACE_EVENT(mm_khugepaged_scan_file, __print_symbolic(__entry->result, SCAN_STATUS)) ); +TRACE_EVENT(mm_khugepaged_collapse_file, + TP_PROTO(struct mm_struct *mm, struct page *hpage, pgoff_t index, + bool is_shmem, unsigned long addr, struct file *file, + int nr, int result), + TP_ARGS(mm, hpage, index, is_shmem, addr, file, nr, result), + TP_STRUCT__entry( + __field(struct mm_struct *, mm) + __field(unsigned long, hpfn) + __field(pgoff_t, index) + __field(bool, is_shmem) + __field(unsigned long, addr) + __string(filename, file->f_path.dentry->d_iname) + __field(int, nr) + __field(int, result) + ), + + TP_fast_assign( + __entry->mm = mm; + __entry->hpfn = hpage ? page_to_pfn(hpage) : -1; + __entry->index = index; + __entry->is_shmem = is_shmem; + __entry->addr = addr; + __assign_str(filename, file->f_path.dentry->d_iname); + __entry->nr = nr; + __entry->result = result; + ), + + TP_printk("mm=%p, hpage_pfn=0x%lx, index=%ld, is_shmem=%d, addr=%ld, filename=%s, nr=%d, result=%s", + __entry->mm, + __entry->hpfn, + __entry->index, + __entry->is_shmem, + __entry->addr, + __get_str(filename), + __entry->nr, + __print_symbolic(__entry->result, SCAN_STATUS)) +); + #endif /* __HUGE_MEMORY_H */ #include diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 4734315f7940..921407e2006d 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1702,12 +1702,12 @@ static int collapse_file(struct mm_struct *mm, unsigned long addr, { struct address_space *mapping = file->f_mapping; struct page *hpage; - pgoff_t index, end = start + HPAGE_PMD_NR; + pgoff_t index = 0, end = start + HPAGE_PMD_NR; LIST_HEAD(pagelist); XA_STATE_ORDER(xas, &mapping->i_pages, start, HPAGE_PMD_ORDER); int nr_none = 0, result = SCAN_SUCCEED; bool is_shmem = shmem_file(file); - int nr; + int nr = 0; VM_BUG_ON(!IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && !is_shmem); VM_BUG_ON(start & (HPAGE_PMD_NR - 1)); @@ -2059,7 +2059,8 @@ static int collapse_file(struct mm_struct *mm, unsigned long addr, mem_cgroup_uncharge(page_folio(hpage)); put_page(hpage); } - /* TODO: tracepoints */ + + trace_mm_khugepaged_collapse_file(mm, hpage, index, is_shmem, addr, file, nr, result); return result; } -- 2.34.1