From patchwork Wed Aug 4 08:20:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?5byg6a2BKEt5bGVyKQ==?= X-Patchwork-Id: 12418057 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA2F0C432BE for ; Wed, 4 Aug 2021 08:20:40 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3784360F02 for ; Wed, 4 Aug 2021 08:20:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3784360F02 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=oppo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id B94448D0040; Wed, 4 Aug 2021 04:20:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B43088D002D; Wed, 4 Aug 2021 04:20:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A0BE68D0040; Wed, 4 Aug 2021 04:20:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0120.hostedemail.com [216.40.44.120]) by kanga.kvack.org (Postfix) with ESMTP id 857FC8D002D for ; Wed, 4 Aug 2021 04:20:39 -0400 (EDT) Received: from smtpin05.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 388B78249980 for ; Wed, 4 Aug 2021 08:20:39 +0000 (UTC) X-FDA: 78436701798.05.CFE9AD5 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-eopbgr1310080.outbound.protection.outlook.com [40.107.131.80]) by imf14.hostedemail.com (Postfix) with ESMTP id 2AFF36015E84 for ; Wed, 4 Aug 2021 08:20:38 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gOYi6juEiR0KLXoTt4I5XdjovvabcMA3gPhXK3qo4OsH1DtKkqxKbhEOl9Z03CEBawPZiwdq1xUrrP9oJIMaR/xkrs59lwJWBNIvufZUtfQwYYBc/aJiQDKIPLP7eUT8SwDiizxRhS4SbaNxUVvw4C4gJYX+2lc/ZzQG8/r7xfjnJxSTl2o7H63o/4VebOebHg/vQezu30Upbo1YYdpd2+nQ/61XdgRw0l1XRURoJGriZN1OHHostRmO7muOic+4plxVHguCs97D/SinxpqYQvjCuh//8nI7BL+mI9/YRwmXklAVE7oVaGuhr7FptyslOekw/0UIaUE9LBMuaSZepA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PBeWr+L5Rrwtz2/0uDiix7MZXZyzzmmY3dUilSf/PX4=; b=LOvKviSqyFNwhZm1WsLOo1tWQJxp+TGBUGMUy3alNCuxOzb2+EgFMQI502WkLx96iuSYOC3JOo+yM6okt3a975sOGWwo/iB3C1rZosVm1qgCcwuyeOOCR23CYuuvQYRgFd1QGv6SZ4LycgC6yD6vnYRPVA3H6eg2YIGwDrf3jxwiBNHZbM9FEaV5/7dtBx9nttugK0Rm6Dioy7tInf/XWWPajLcWJeCESSvuZEZaZI7XaAsd6QuN9lfrzYP5s+waROibCFLMBOmpsBh1YCUSWhTvnkthqZ5ogfsGAiHnjuzjE++zLqMhjrvAxLso5srQZpNP2Qz0pt/Cm3NrnnV+DA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oppo.com; dmarc=pass action=none header.from=oppo.com; dkim=pass header.d=oppo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PBeWr+L5Rrwtz2/0uDiix7MZXZyzzmmY3dUilSf/PX4=; b=JsHXNKevZmFtWTgpydneqMZzRSTUTI+wMuK8VHJ3qy0KTzVs6V5SeYfvovAu6kfrshZ1s/CuFxiz/VFoINbpewA1TPUqk8beNriHU7LsjUb//mWtGMo+I5dQUOkqMOQiptu7H4ZI/AHL78Zgm4/UorvlUZgQsnFGXxriJgZA/C4= Received: from HKAPR02MB4356.apcprd02.prod.outlook.com (2603:1096:203:d6::16) by HK0PR02MB2660.apcprd02.prod.outlook.com (2603:1096:203:63::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.26; Wed, 4 Aug 2021 08:20:33 +0000 Received: from HKAPR02MB4356.apcprd02.prod.outlook.com ([fe80::d4ab:76fc:6326:a0eb]) by HKAPR02MB4356.apcprd02.prod.outlook.com ([fe80::d4ab:76fc:6326:a0eb%5]) with mapi id 15.20.4394.015; Wed, 4 Aug 2021 08:20:33 +0000 From: zhangkui To: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: zhangkui Subject: [PATCH] mm/madvise: add MADV_WILLNEED to process_madvise() Date: Wed, 4 Aug 2021 16:20:10 +0800 Message-Id: <20210804082010.12482-1-zhangkui@oppo.com> X-Mailer: git-send-email 2.25.1 X-ClientProxiedBy: HK2PR04CA0073.apcprd04.prod.outlook.com (2603:1096:202:15::17) To HKAPR02MB4356.apcprd02.prod.outlook.com (2603:1096:203:d6::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (58.252.5.71) by HK2PR04CA0073.apcprd04.prod.outlook.com (2603:1096:202:15::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.16 via Frontend Transport; Wed, 4 Aug 2021 08:20:33 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ebb74758-0909-4fd6-5c34-08d95720baa1 X-MS-TrafficTypeDiagnostic: HK0PR02MB2660: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EAaxfwFCg2SAGeQPbasoEc9c9v33cKW+E2cO8E41eo4lXoKPXKLvhroZOQzZYu3fYjHioMFREm+odhy6Pz86rIGR/KZ0OvOuf+EtCWkMu1JXq7FDBOnZ3LnjNphBGShW1cxbpW+JclvtgVVZzvlPr/MVQP22KlGK9dUb2K2TFHwCuaoPOhuWrMeBoNeCjqVhyI2qvI+EKQ+3ByZTMV8My3GIvgnrC96cM5K7yXuVslRt30HT+hDZ/lmjeh0F/Zf5C9whr6h+3y8U1nRisaLnrH0pShCNRsAtUAIiuQewtVfJ648xcyjdTYH/83SnU2OIphbONiBOT0r/IwQOQ9QYRttNHKAek6yNMQsVddwTRVQehAevEKtGRb+LRL/9iEh/IdQ3zYIeHAIQaHTV7Y8uZ5wfp7YjrWr6SP8yEh9zO3wgk7ZCvNWFu6Edum+0uOi1XEumopH0Fok9SrdOXVPdlVmx/QgnF+JbBFSOoG0Mvu5yEIGxvPf4MjrFy4lSJ3ZcGz9nCxEgaUuBFoHdBSwB90GF3qgpk2dscWx035YmYR1oDLkusZj/u27v/lP7DkACqxyXkv0YLwKckv/Y6UAqJnOaSG8GbIinNyVtpm6LIRvJ+T3pqPGQHFDr1XmZJ6QN8m77MDvjuFcxY5qxykGh34iDBe+vQaGWvRL2W/Diq5IT7JhQwF0FNtHdVxq0sz0TdxMfRvBzpEI8G4h5iAucLidSnzE/dkHBm7f5P1ZBdYE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HKAPR02MB4356.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(366004)(39860400002)(396003)(136003)(376002)(86362001)(8936002)(8676002)(1076003)(36756003)(2906002)(38100700002)(316002)(956004)(38350700002)(107886003)(2616005)(6512007)(186003)(66946007)(5660300002)(66476007)(26005)(52116002)(478600001)(4326008)(6666004)(6486002)(66556008)(83380400001)(6506007)(11606007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hPrFS5nUjZCH0qDxjwC1adFNchpW/C+2ZDrR0zxfBC9+gnqdMuYLdLuPuutIsx0CJD1tn5WyEidqrN15O1WiwZHAAxdCaJcTakcIe89U+gtq2CESqcx33FlBBcoG4l23ebGML94igGcC2dC5PZ2iT7QB0acGSV5T2R+iuU3pQY+rNqnzAtrU19HWVJRBnpvsG5RBUdPE3UyNXrOYGg/bA9DtuCi//jUc9M9Wz2WVfaHC9EoOTcH+ossQbUqJ9btJiORRpN9hC96e8IhNHpj44TO+V0FPlFr/pVEm+OkEKW2Dh50LiYUdVOXCQUl0wylL4SP73x18nZhU7EifI9AD02Jzc44Xtu6Dk34zZswmzTUyLWKhHzzGmo4G3htuxjScjgEJW5Sb7135kWBF3IbkjsvsA4HnD68znC2lqE5/o+fsADzyuPNVMmB0JmvLWBvR9UrqZhHHxioFelAWlaV1sHljgCBD1hQfOox8UmyFWcRXS4VRWoUwUd1Q+/QrmGbwRD53APMoL/Hcurlt2sjjCDk+AxuN2NL5hesnXh2s9zpJF7SogFsXe69I5HdMWDPJXJNCJn9KyMgnjBNGVIvDnsCNAlCAsNetw05n9fEISE7PkztPWf2eTxTXGI3cQnp949ZKY3JLk+Pu6/yPfzXQVekJtadXLE5ydLApi0rjdJdKG53cT1CCYYaKNh9mzkTbVI/cVF89v+drrOtFPjlcJnOAUO7FcR9gnYShxmhstdszyFIIAo8079/o/KlhkK2o9DDYjiDhWrUqKgEeOlKmY3qJCne4WAJVp1njw357iL+0k6goDbMyjzckpwcEMq1EYVQovCuKYT3pOVKl2wj3kn9JfPsT9oI4fwUiAijzsPhiQLXPPFaqgL6g6Nlm7qCoN53cQm3W/vVFWEHwK6V5CGFOJBnq4Mlbmc0QxgOxNhmLw1yiIBBkGLQRsVAUyDR1ZPCXr+jaV98frcM1IsjtI+vKYB77Hat0vksYQ5FUFKw6qkMEBOeiE0UZfQ0kuTdlcz6PCJNodh1PPZeO5EaJ+EOlWr5sFFa27YLDTig6g3YP8TtF9WOaatQU9Vh574e+nYznAb4dQr3V++lU1UoDo9dL0BLzWWLOH8w2nYrJMEp3lwDMDZaWscmKxOR2Gmc9r6OqvKyp5xPwmTr3/+/OXTfn8ebOY0Tv16E9FPSHsUg1U0zkox4D4uTjG6nvMylI3TVcjCHSediJVzoQnUAYVUIxhIsWhxNjhUjZYyZOlcEFQHa9OJ6UIf9AWXkC8MZY7ZOHpyWNZqTjf5EHdjj7LeAKLWRdeTHhqyzCgCeunUmIGw1wk2EGYk8ouWjxITFg X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-Network-Message-Id: ebb74758-0909-4fd6-5c34-08d95720baa1 X-MS-Exchange-CrossTenant-AuthSource: HKAPR02MB4356.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2021 08:20:33.2736 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: os6idkcYdusfrDJRDSEmsn2uj8bIpl6bMQgHFHh7QRWX9SAMK7Zde25Rt/lp89QgPuDUjF2xxBBdCeSIUj8tVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK0PR02MB2660 Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=JsHXNKev; spf=pass (imf14.hostedemail.com: domain of zhangkui@oppo.com designates 40.107.131.80 as permitted sender) smtp.mailfrom=zhangkui@oppo.com; dmarc=pass (policy=quarantine) header.from=oppo.com X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 2AFF36015E84 X-Stat-Signature: keut9h7eudciamqd4nsu8u8iaoo3irn8 X-HE-Tag: 1628065238-207135 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: There is a usecase in Android that an app process's memory is swapped out by process_madvise() with MADV_PAGEOUT, such as the memory is swapped to zram or a backing device. When the process is scheduled to running, like switch to foreground, multiple page faults may cause the app dropped frames. To reduce the problem, SMS can read-ahead memory of the process immediately when the app switches to forground. Calling process_madvise() with MADV_WILLNEED can meet this need. Signed-off-by: zhangkui --- mm/madvise.c | 1 + 1 file changed, 1 insertion(+) -- 2.25.1 diff --git a/mm/madvise.c b/mm/madvise.c index 6d3d348b17f4..b9681fb3fbb5 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1046,6 +1046,7 @@ process_madvise_behavior_valid(int behavior) switch (behavior) { case MADV_COLD: case MADV_PAGEOUT: + case MADV_WILLNEED: return true; default: return false;