Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp2252182ybh; Fri, 24 Jul 2020 08:09:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxMyDKSs11GjXLQiWpYgocpLTdE1WqpVG06JvVhDs0P1/oZrVDBQBanjW4E8YGhMo3KR/F6 X-Received: by 2002:aa7:da8a:: with SMTP id q10mr9379873eds.139.1595603389064; Fri, 24 Jul 2020 08:09:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595603389; cv=none; d=google.com; s=arc-20160816; b=zk/1JPA+udVpoeEI6rdURdN4NMqUs0csZ4OtMiega2z3P9dEKL5gbhPX2ahCwH0rok VJSxVx5Izl5zYrLBLfaJOfam2CTdWJfnU4iI/SlRDaeku+7qAGAkbffutFT0wPhaZ/Ix mbad+snCDgc2VX+khnL60Jkl+0C7siNHxJDMzp+HeMi3kUFbZWn07kFBXS97m7N3iU0N rsWNKqGUy8YflZIjAkIaKIgY+ycImu3GcyUiG8t60/qEKqgg0uaCnh23L8Q2bm2Xt9Gb 65yy0g2rOC2Bao47ytKIGYghkuOL0hNI63spZS8j2CA5dBlnnuv8DwlZVQsVCa+aO9wg SbSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=cNUP853YkWwLJ+m++81WpFZuhAR4szqqYWHOb1sXqz0=; b=Q5m3JPmQSAxXI/sfwqXJkaSfdBOEE2spJwwOfKo2bueEeD0M2PHYfNZmhwz2bxgbm8 3Y8fXsZJQuj8n/o7lxyKBbbQFggO5IAg3P2yL3jamOzSzLmp6f+OenTIu0+vQtLROo4Z kRn9yq1mslYMJNBqs+qjyWvRdgiF9sJJwrdYAnQNu551TQI+BtazvTzU4dPihzyEAedP s8i/uuCaA8nsY6saKZHNJ9tD3qcEB9q7TSck/CJRxyWu4IQRdNyOKoLVaR4SsE49Lbxi N1EmI1z/u4SMLAlhOVPcLle7IhBf8lUzXnuspM1lSf/h01Cs1GYth+pyQVbi9gbysVEN Od/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=gemkuhTo; 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=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y19si795752eje.56.2020.07.24.08.09.23; Fri, 24 Jul 2020 08:09:49 -0700 (PDT) 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; dkim=pass header.i=@oracle.com header.s=corp-2020-01-29 header.b=gemkuhTo; 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=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726811AbgGXPGr (ORCPT + 99 others); Fri, 24 Jul 2020 11:06:47 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:40596 "EHLO userp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726424AbgGXPGr (ORCPT ); Fri, 24 Jul 2020 11:06:47 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 06OF2bQI155207; Fri, 24 Jul 2020 15:05:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=corp-2020-01-29; bh=cNUP853YkWwLJ+m++81WpFZuhAR4szqqYWHOb1sXqz0=; b=gemkuhToopoUsuLCsecObG4T6QgT4B/aXDAA8x0npNiRxeQHCfJPAFc7YRGKq07UfZ54 E6kefAZq3Q9X4K5Pyrs5oXDKtN5SH959WSKmrnnjxedGP+WkxV3BPYfOOZ/M53dGtcDd Le2y//mM/fSs6bygMvLdQImbhqYwWH0OgvRGevpZmOBUUb7R2mz5lQtDD6OBaHfTz6az j7R2KNzfoXK7VLk8AEklC7mmy2ilw5mUT5ywWDkcP0dJEiy4DO4zporL9QTH31mVUYvA qy0AGa1/vZiavNVZ7tLqAuiqXmhiT6cpTY/iAjCL22oNOYEcmxIO1Aj8if21I/hXnpgc JA== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2130.oracle.com with ESMTP id 32brgryn4g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 24 Jul 2020 15:05:53 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 06OEwRAX003007; Fri, 24 Jul 2020 15:03:52 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3020.oracle.com with ESMTP id 32fswsn2mk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 24 Jul 2020 15:03:52 +0000 Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 06OF3kZ7022441; Fri, 24 Jul 2020 15:03:46 GMT Received: from ca-dmjordan1.us.oracle.com (/10.211.9.48) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 24 Jul 2020 08:03:46 -0700 Date: Fri, 24 Jul 2020 11:04:08 -0400 From: Daniel Jordan To: Anshuman Khandual , Zi Yan Cc: Randy Dunlap , Andrew Morton , linux-mm@kvack.org, Jonathan Corbet , Steven Rostedt , Ingo Molnar , Daniel Jordan , Hugh Dickins , Matthew Wilcox , John Hubbard , Naoya Horiguchi , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V4] mm/vmstat: Add events for THP migration without split Message-ID: <20200724150408.am4llb3qqjm4sibf@ca-dmjordan1.us.oracle.com> References: <1594287583-16568-1-git-send-email-anshuman.khandual@arm.com> <27CD781D-48F0-4019-934F-78994BAEC656@nvidia.com> <97219d3b-96e1-4371-59ea-d038f37a672a@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9692 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2007240116 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9692 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 suspectscore=0 adultscore=0 clxscore=1011 mlxlogscore=999 priorityscore=1501 phishscore=0 lowpriorityscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2007240117 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I'm assuming the newly-enlarged positive error return of migrate_pages(2) won't have adverse effects in userspace. Didn't see issues with any user in debian codesearch, and can't imagine how it could be relied on. This look ok. Just some nits, take them or leave them as you prefer. Reviewed-by: Daniel Jordan > diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h > index 705b33d1e395..4d434398d64d 100644 > --- a/include/trace/events/migrate.h > +++ b/include/trace/events/migrate.h > @@ -46,13 +46,18 @@ MIGRATE_REASON > TRACE_EVENT(mm_migrate_pages, > > TP_PROTO(unsigned long succeeded, unsigned long failed, > - enum migrate_mode mode, int reason), > + unsigned long thp_succeeded, unsigned long thp_failed, > + unsigned long thp_split, enum migrate_mode mode, int reason), > > - TP_ARGS(succeeded, failed, mode, reason), > + TP_ARGS(succeeded, failed, thp_succeeded, thp_failed, > + thp_split, mode, reason), > > TP_STRUCT__entry( > __field( unsigned long, succeeded) > __field( unsigned long, failed) > + __field( unsigned long, thp_succeeded) > + __field( unsigned long, thp_failed) > + __field( unsigned long, thp_split) These three are ints in the code, not unsigned long. It can save space in the trace event struct, 8 bytes on my machine. > >>>> diff --git a/mm/migrate.c b/mm/migrate.c > >>>> @@ -1429,22 +1429,35 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, ... > >>>> + bool is_thp = false; Don't need to initialize, could declare with rc/nr_subpages. > >>>> + if (is_thp) { > >>>> + nr_thp_failed++; > >>>> + nr_failed += nr_subpages; > >>>> + goto out; > >>>> + } > >>>> nr_failed++; > >>>> goto out; This instead, in each of the three places with this pattern?: if (is_thp) nr_thp_failed++; nr_failed += nr_subpages; goto out; > diff --git a/Documentation/vm/page_migration.rst b/Documentation/vm/page_migration.rst ... > +5. THP_MIGRATION_SPLIT: A THP was migrated, but not as such: first, the THP had > + to be split. After splitting, a migration retry was used for it's sub-pages. The first part of this might be misinterpreted for the same reason Anshuman changed this earlier (migration didn't necessarily happen). We could just delete "A THP was migrated, but not as such: first, "