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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D8A6C433EF for ; Wed, 2 Feb 2022 22:53:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347952AbiBBWxK (ORCPT ); Wed, 2 Feb 2022 17:53:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236831AbiBBWxK (ORCPT ); Wed, 2 Feb 2022 17:53:10 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD144C061714 for ; Wed, 2 Feb 2022 14:53:09 -0800 (PST) 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 A6794B83220 for ; Wed, 2 Feb 2022 22:53:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F147DC004E1; Wed, 2 Feb 2022 22:53:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1643842387; bh=e6ff8WIrJDl9y7oJIX57cnBl/LLl6LdjMJjagp5Ujww=; h=Date:To:From:Subject:From; b=jdCraRxx4qHveS2dW1d4TmH4KO28GRHBFIaPGqXnBXCMBidpffsdzU5HoMGFyDONH YOYyUWCNYd1MZsvftkm96QtmLhlOQfiv0KsPHoFTIr1PPwcN2rrHEimUUlz9ksrTl5 om4gVgM+qZvIg+pKUV2C8uqYfEgmZKX6PUsYMQ9M= Received: by hp1 (sSMTP sendmail emulation); Wed, 02 Feb 2022 14:53:05 -0800 Date: Wed, 02 Feb 2022 14:53:05 -0800 To: mm-commits@vger.kernel.org, vdavydov.dev@gmail.com, senozhatsky@chromium.org, rppt@kernel.org, rostedt@goodmis.org, rientjes@google.com, pmladek@suse.com, mhocko@kernel.org, linux@rasmusvillemoes.dk, ira.weiny@intel.com, hannes@cmpxchg.org, guro@fb.com, aquini@redhat.com, andriy.shevchenko@linux.intel.com, longman@redhat.com, akpm@linux-foundation.org From: Andrew Morton Subject: + mm-page_owner-record-task-command-name.patch added to -mm tree Message-Id: <20220202225305.F147DC004E1@smtp.kernel.org> Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org The patch titled Subject: mm/page_owner: record task command name has been added to the -mm tree. Its filename is mm-page_owner-record-task-command-name.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-page_owner-record-task-command-name.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-page_owner-record-task-command-name.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Waiman Long Subject: mm/page_owner: record task command name The page_owner information currently includes the pid of the calling task. That is useful as long as the task is still running. Otherwise, the number is meaningless. To have more information about the allocating tasks that had exited by the time the page_owner information is retrieved, we need to store the command name of the task. Add a new comm field into page_owner structure to store the command name and display it when the page_owner information is retrieved. Link: https://lkml.kernel.org/r/20220202203036.744010-5-longman@redhat.com Signed-off-by: Waiman Long Cc: Andy Shevchenko Cc: David Rientjes Cc: Ira Weiny Cc: Johannes Weiner Cc: Michal Hocko Cc: Mike Rapoport Cc: Petr Mladek Cc: Rafael Aquini Cc: Rasmus Villemoes Cc: Roman Gushchin Cc: Sergey Senozhatsky Cc: Steven Rostedt (Google) Cc: Vladimir Davydov Signed-off-by: Andrew Morton --- mm/page_owner.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) --- a/mm/page_owner.c~mm-page_owner-record-task-command-name +++ a/mm/page_owner.c @@ -29,6 +29,7 @@ struct page_owner { depot_stack_handle_t free_handle; u64 ts_nsec; u64 free_ts_nsec; + char comm[TASK_COMM_LEN]; pid_t pid; }; @@ -165,6 +166,8 @@ static inline void __set_page_owner_hand page_owner->last_migrate_reason = -1; page_owner->pid = current->pid; page_owner->ts_nsec = local_clock(); + strlcpy(page_owner->comm, current->comm, + sizeof(page_owner->comm)); __set_bit(PAGE_EXT_OWNER, &page_ext->flags); __set_bit(PAGE_EXT_OWNER_ALLOCATED, &page_ext->flags); @@ -232,6 +235,7 @@ void __folio_copy_owner(struct folio *ne new_page_owner->pid = old_page_owner->pid; new_page_owner->ts_nsec = old_page_owner->ts_nsec; new_page_owner->free_ts_nsec = old_page_owner->ts_nsec; + strcpy(new_page_owner->comm, old_page_owner->comm); /* * We don't clear the bit on the old folio as it's going to be freed @@ -379,10 +383,11 @@ print_page_owner(char __user *buf, size_ return -ENOMEM; ret = scnprintf(kbuf, count, - "Page allocated via order %u, mask %#x(%pGg), pid %d, ts %llu ns, free_ts %llu ns\n", + "Page allocated via order %u, mask %#x(%pGg), pid %d (%s), ts %llu ns, free_ts %llu ns\n", page_owner->order, page_owner->gfp_mask, &page_owner->gfp_mask, page_owner->pid, - page_owner->ts_nsec, page_owner->free_ts_nsec); + page_owner->comm, page_owner->ts_nsec, + page_owner->free_ts_nsec); /* Print information relevant to grouping pages by mobility */ pageblock_mt = get_pageblock_migratetype(page); @@ -449,9 +454,10 @@ void __dump_page_owner(const struct page else pr_alert("page_owner tracks the page as freed\n"); - pr_alert("page last allocated via order %u, migratetype %s, gfp_mask %#x(%pGg), pid %d, ts %llu, free_ts %llu\n", + pr_alert("page last allocated via order %u, migratetype %s, gfp_mask %#x(%pGg), pid %d (%s), ts %llu, free_ts %llu\n", page_owner->order, migratetype_names[mt], gfp_mask, &gfp_mask, - page_owner->pid, page_owner->ts_nsec, page_owner->free_ts_nsec); + page_owner->pid, page_owner->comm, page_owner->ts_nsec, + page_owner->free_ts_nsec); handle = READ_ONCE(page_owner->handle); if (!handle) _ Patches currently in -mm which might be from longman@redhat.com are lib-vsprintf-avoid-redundant-work-with-0-size.patch mm-page_owner-use-scnprintf-to-avoid-excessive-buffer-overrun-check.patch mm-page_owner-print-memcg-information.patch mm-page_owner-record-task-command-name.patch mm-sparsemem-fix-mem_section-will-never-be-null-gcc-12-warning.patch ipc-mqueue-use-get_tree_nodev-in-mqueue_get_tree.patch