Received: by 10.223.176.5 with SMTP id f5csp3756373wra; Mon, 29 Jan 2018 19:08:33 -0800 (PST) X-Google-Smtp-Source: AH8x226c0zE3Bk50BvSzzg9oGkZKpn5m8cCPyQGVXdgXC68RU5bjQcJqZ01S9dBttKI7RNozo8eE X-Received: by 2002:a17:902:758b:: with SMTP id j11-v6mr3029329pll.224.1517281713702; Mon, 29 Jan 2018 19:08:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517281713; cv=none; d=google.com; s=arc-20160816; b=vY5EeVhF6JLtjavEpa9TsXhhyXQM7R68T0+Jj2dWG/1Hxq6uKtPFS2VPV1nXoJb5mg GsctA02y/IZKTelQ9idLOPynrzlg24cNpnvpQGuYZz4eUlLBSO6tvhVEntXBtHhaJlfx fyj8gdO7u4IlodIHzGw7qiSPgMoXutfrfX2DklOIGiRtMcyujN7BdL4TZigP89SYhPcA /DN8g3vleo3CCJujGbCqgeeC4OpRy4A33p6XEr48CEzICQyMbT01eTO5gSl2S+M1vWWF Rl9YMRMnGRxcWgg+zyZpVEx+0S3BoLPBdbECKoDDi5Lp5dahLeLbNS3y0KarpFowky7a ZfCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=IvwUQHzwvGB3nNQ1yLaLlvyxuQRLJFwUNN8kGdo0Tqk=; b=Eh1gXLgxnYTSP8NoS3kPWtwhczzeJb/yzEB7ggJxOWYVLm000q0Q4hErm3Fz5xv2fm SnowaVfJS6s1QObaeGZyRLFvaaCpzhMwthB04UxdIqpO8UPHP4QhoeN36MzWhC10ZtSx GdnvALS/quX21XPTth2H2SgDI8+QIWaSWG4iSclMjRm9YVBCDuFmwzfNDsuB0+JYA7oY eJ/DK1RTxrMkI/uidgSBWmjHXta2uH8EIZJ6AJDwOQXkd0ibLejrNj/w927gKuEdoDFS 8fOR8VyjwNeTLMHnBCNJHqpVcounkQN50x9V9YED7/Fl5PMwxjdlIfdU8ePXD4aAv04z dKpg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z86si13170446pfl.146.2018.01.29.19.08.18; Mon, 29 Jan 2018 19:08:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752562AbeA3DHX (ORCPT + 99 others); Mon, 29 Jan 2018 22:07:23 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:41010 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752076AbeA3DHW (ORCPT ); Mon, 29 Jan 2018 22:07:22 -0500 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w0U34AZm092165 for ; Mon, 29 Jan 2018 22:07:21 -0500 Received: from e06smtp13.uk.ibm.com (e06smtp13.uk.ibm.com [195.75.94.109]) by mx0b-001b2d01.pphosted.com with ESMTP id 2ftdggdr1k-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 29 Jan 2018 22:07:21 -0500 Received: from localhost by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 30 Jan 2018 03:07:19 -0000 Received: from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197) by e06smtp13.uk.ibm.com (192.168.101.143) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 30 Jan 2018 03:07:17 -0000 Received: from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com [9.149.105.232]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w0U37G3045088890; Tue, 30 Jan 2018 03:07:16 GMT Received: from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A76CF520D1; Tue, 30 Jan 2018 01:59:33 +0000 (GMT) Received: from dhcp-9-109-220-56.in.ibm.com (unknown [9.109.220.56]) by d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTP id 95975520D2; Tue, 30 Jan 2018 01:59:32 +0000 (GMT) From: Anshuman Khandual To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: akpm@linux-foundation.org, mhocko@suse.com Subject: [RFC] mm/migrate: Add new migration reason MR_HUGETLB Date: Tue, 30 Jan 2018 08:37:14 +0530 X-Mailer: git-send-email 2.9.3 X-TM-AS-GCONF: 00 x-cbid: 18013003-0012-0000-0000-000005A932F4 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18013003-0013-0000-0000-00001924CED2 Message-Id: <20180130030714.6790-1-khandual@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-01-30_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=3 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1801300038 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org alloc_contig_range() initiates compaction and eventual migration for the purpose of either CMA or HugeTLB allocation. At present, reason code remains the same MR_CMA for either of those cases. Lets add a new reason code which will differentiate the purpose of migration as HugeTLB allocation instead. Signed-off-by: Anshuman Khandual --- include/linux/migrate.h | 1 + include/trace/events/migrate.h | 3 ++- mm/page_alloc.c | 14 ++++++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/include/linux/migrate.h b/include/linux/migrate.h index a732598fcf83..44381c33a2bd 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h @@ -26,6 +26,7 @@ enum migrate_reason { MR_MEMPOLICY_MBIND, MR_NUMA_MISPLACED, MR_CMA, + MR_HUGETLB, MR_TYPES }; diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h index bcf4daccd6be..61474c93f8f3 100644 --- a/include/trace/events/migrate.h +++ b/include/trace/events/migrate.h @@ -20,7 +20,8 @@ EM( MR_SYSCALL, "syscall_or_cpuset") \ EM( MR_MEMPOLICY_MBIND, "mempolicy_mbind") \ EM( MR_NUMA_MISPLACED, "numa_misplaced") \ - EMe(MR_CMA, "cma") + EM( MR_CMA, "cma") \ + EMe(MR_HUGETLB, "hugetlb") /* * First define the enums in the above macros to be exported to userspace diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 242565855d05..ce8a2f2d4994 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7588,13 +7588,14 @@ static unsigned long pfn_max_align_up(unsigned long pfn) /* [start, end) must belong to a single zone. */ static int __alloc_contig_migrate_range(struct compact_control *cc, - unsigned long start, unsigned long end) + unsigned long start, unsigned long end, + unsigned migratetype) { /* This function is based on compact_zone() from compaction.c. */ unsigned long nr_reclaimed; unsigned long pfn = start; unsigned int tries = 0; - int ret = 0; + int ret = 0, migrate_reason = 0; migrate_prep(); @@ -7621,8 +7622,13 @@ static int __alloc_contig_migrate_range(struct compact_control *cc, &cc->migratepages); cc->nr_migratepages -= nr_reclaimed; + if (migratetype == MIGRATE_CMA) + migrate_reason = MR_CMA; + else + migrate_reason = MR_HUGETLB; + ret = migrate_pages(&cc->migratepages, new_page_alloc_contig, - NULL, 0, cc->mode, MR_CMA); + NULL, 0, cc->mode, migrate_reason); } if (ret < 0) { putback_movable_pages(&cc->migratepages); @@ -7710,7 +7716,7 @@ int alloc_contig_range(unsigned long start, unsigned long end, * allocated. So, if we fall through be sure to clear ret so that * -EBUSY is not accidentally used or returned to caller. */ - ret = __alloc_contig_migrate_range(&cc, start, end); + ret = __alloc_contig_migrate_range(&cc, start, end, migratetype); if (ret && ret != -EBUSY) goto done; ret =0; -- 2.11.0