Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp5275735pxb; Sun, 7 Nov 2021 08:48:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJxSIp6HYHWxuay/oXOQTm3OL4vChAizOju4rCXTNxq43R5QzVH41hLa5nWkvYdZV3bcrKBs X-Received: by 2002:a05:6e02:1445:: with SMTP id p5mr50828244ilo.105.1636303705611; Sun, 07 Nov 2021 08:48:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636303705; cv=none; d=google.com; s=arc-20160816; b=kavX0JCBWEqlHeBqYqzlS8osoEgNmtsbJLss70b1RhXazhGF6HfVhNyo2HMoWtZUhL W5uU3inHBZAq2KmggjWvZP3IzkY/Sa6BqqCwnIbUJP11bys1Ei1tDoO5nR/yZF3NqFG2 nZAlkebxQs9p7z3hsDX3sG4hy5BdSts/ZYi3MCI4LfHxXSSEoKJu7RXuFkOVjrwkN3Rg S1FMjQcxuGigB+qTW2kBRlcowPYMOEV3GXU8cmbHYPFMhp9058/FZSLfg6NoOhyyuh7w 0mWLodewR9Vs6OJSFgnqM1yD5BBTJO1ngSoJkJ0/LZCG2EEqBVk3LzS0x4p9AubeBClp d/Vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:references:in-reply-to :message-id:date:subject:cc:to:from; bh=9VQLz/DoUtQXbws9l9uy04Z3CdukWpNFHZYvK+gBdVg=; b=LKc+Vgf26hIXa9eX3HbyVuyoHuaLRHjLtYdOea0llPF8eYu2z+up4e1t/ocZMUuVnn Iv0q/ni+CyPMPeeuapsPWwCO07/LwrwUTfSe+6h5eTxnVeMb8vKW6c6vfOOxvzORAmcB /AMJPBHUj2HiHkdemtzE6YLWqFgpcPblwCvoTAcfOuFLh1GpdbTBhLLVwO9D2L2RsJCA tCKTAwIvVsLBXPDaZqPq4i87NjCqMxbIay0ZO6tj6RDCrgjBAsfvwsvnEmExtE0iTuA3 iXOrE+oe5frkiA0bOOw7mH/I3tMsLWDT2D3pdJU48bluGT2oqsjXq0tMEMLgoqxaXwCh 0IZw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g9si30192545iow.41.2021.11.07.08.48.10; Sun, 07 Nov 2021 08:48:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235293AbhKGJA1 (ORCPT + 99 others); Sun, 7 Nov 2021 04:00:27 -0500 Received: from out30-56.freemail.mail.aliyun.com ([115.124.30.56]:45559 "EHLO out30-56.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235274AbhKGJAX (ORCPT ); Sun, 7 Nov 2021 04:00:23 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04407;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=6;SR=0;TI=SMTPD_---0UvOEkA8_1636275458; Received: from localhost(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0UvOEkA8_1636275458) by smtp.aliyun-inc.com(127.0.0.1); Sun, 07 Nov 2021 16:57:39 +0800 From: Baolin Wang To: akpm@linux-foundation.org Cc: ziy@nvidia.com, shy828301@gmail.com, baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] mm: compaction: Fix the migration stats in trace_mm_compaction_migratepages() Date: Sun, 7 Nov 2021 16:57:27 +0800 Message-Id: X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now the migrate_pages() has changed to return the number of {normal page, THP, hugetlb} instead, thus we should not use the return value to calculate the number of pages migrated successfully. Instead we can just use the 'nr_succeeded' which indicates the number of normal pages migrated successfully to calculate the non-migrated pages in trace_mm_compaction_migratepages(). Reviewed-by: Steven Rostedt (VMware) Signed-off-by: Baolin Wang --- include/trace/events/compaction.h | 24 ++++-------------------- mm/compaction.c | 7 ++++--- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/include/trace/events/compaction.h b/include/trace/events/compaction.h index 54e5bf0..7d48e70 100644 --- a/include/trace/events/compaction.h +++ b/include/trace/events/compaction.h @@ -68,10 +68,9 @@ TRACE_EVENT(mm_compaction_migratepages, TP_PROTO(unsigned long nr_all, - int migrate_rc, - struct list_head *migratepages), + unsigned int nr_succeeded), - TP_ARGS(nr_all, migrate_rc, migratepages), + TP_ARGS(nr_all, nr_succeeded), TP_STRUCT__entry( __field(unsigned long, nr_migrated) @@ -79,23 +78,8 @@ ), TP_fast_assign( - unsigned long nr_failed = 0; - struct list_head *page_lru; - - /* - * migrate_pages() returns either a non-negative number - * with the number of pages that failed migration, or an - * error code, in which case we need to count the remaining - * pages manually - */ - if (migrate_rc >= 0) - nr_failed = migrate_rc; - else - list_for_each(page_lru, migratepages) - nr_failed++; - - __entry->nr_migrated = nr_all - nr_failed; - __entry->nr_failed = nr_failed; + __entry->nr_migrated = nr_succeeded; + __entry->nr_failed = nr_all - nr_succeeded; ), TP_printk("nr_migrated=%lu nr_failed=%lu", diff --git a/mm/compaction.c b/mm/compaction.c index 6e44609..b4e94cd 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -2280,6 +2280,7 @@ bool compaction_zonelist_suitable(struct alloc_context *ac, int order, unsigned long last_migrated_pfn; const bool sync = cc->mode != MIGRATE_ASYNC; bool update_cached; + unsigned int nr_succeeded = 0; /* * These counters track activities during zone compaction. Initialize @@ -2398,10 +2399,10 @@ bool compaction_zonelist_suitable(struct alloc_context *ac, int order, err = migrate_pages(&cc->migratepages, compaction_alloc, compaction_free, (unsigned long)cc, cc->mode, - MR_COMPACTION, NULL); + MR_COMPACTION, &nr_succeeded); - trace_mm_compaction_migratepages(cc->nr_migratepages, err, - &cc->migratepages); + trace_mm_compaction_migratepages(cc->nr_migratepages, + nr_succeeded); /* All pages were either migrated or will be released */ cc->nr_migratepages = 0; -- 1.8.3.1