From patchwork Fri Jul 1 08:43:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: CGEL X-Patchwork-Id: 12902974 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2CE7C43334 for ; Fri, 1 Jul 2022 08:43:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 138576B0071; Fri, 1 Jul 2022 04:43:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0C3086B0073; Fri, 1 Jul 2022 04:43:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ECAED6B0074; Fri, 1 Jul 2022 04:43:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id DB07D6B0071 for ; Fri, 1 Jul 2022 04:43:30 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B250860E6F for ; Fri, 1 Jul 2022 08:43:30 +0000 (UTC) X-FDA: 79637892180.02.AF982AC Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf31.hostedemail.com (Postfix) with ESMTP id 5EBAE20031 for ; Fri, 1 Jul 2022 08:43:30 +0000 (UTC) Received: by mail-pl1-f176.google.com with SMTP id l6so1732515plg.11 for ; Fri, 01 Jul 2022 01:43:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=KmYj1R8fqef6hjY0ZIaJ4EVhhQeQQM7IVJe6YNZh+2A=; b=dyhcLzqYNaEyrVk9WoBaNJlmfFqbm2dxaEqOjNhdpZ2drRmo8wYb+YMHBImK35/6j7 Ki0kApLNgdgsHERLs7B6WvV9ku/UgIco4c5+aEFGRONnjKUUGG7/ZnKqyvyGxUhqZzbD 2iIQQjuAFgsbKMwTVo8EIW4s6JqiNi7RhdGM9zqHQmFWVd4gaa9cXuEtLmtmEeEP6BeZ z4pteM/oGUpp/WVfTj51GncvyBQwjcVBFJkfMf7fk5Mpbpxz0XCHl01L6+jLPm9/fUr3 YKsCOw5hrr1b34Qo+FKNkenxLZW0e7eBAakdobbkwaSHRwcsbHb6jQRUtnB+kcNVLnz0 56JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=KmYj1R8fqef6hjY0ZIaJ4EVhhQeQQM7IVJe6YNZh+2A=; b=wrT3fmfg+O9QYr6bfivU0A+tV5+qWiqEpNksr7fqjCIiTYbV1tUegAYutaofWwzIT8 KoG4Iqe+osaWjqFJ3Lz9OLtPIcMfu+mnbWnCjUgqX91xnSu826gjGz5czTL+n5qq+tKD 4NfHVJB7NWbUF7EX1BkQ4I7MXszDClmp/jNTQH5YGe0qhIkU18VMJ+dPROJJBdrt2wyt UDVpYZum53/R4W+sycLfS0ls8Ss556KcItHS5wBH1LQNa/QO7W5akonDbxMl9jQV04bL ZqwKD7yYoliXzGEyFxCg7xmpEMBiFyj4MyM2n3XqO1OXsd8FAs7vZJPMgKLjYo1mUbzg xH7Q== X-Gm-Message-State: AJIora9fpBCZuAZb2Jc/QxepUC+WJs08/fSGRJsLweOejqF9E1Un/JkT daXei0ttmr8tV9FVsXzhaUE= X-Google-Smtp-Source: AGRyM1tFDhFw9jJ0Wulabf8bI84CTnlYH7+zHREuqIN1zsCQV9cqBwxoYJHWM4kxOo0qQWOr+RqoJQ== X-Received: by 2002:a17:902:ea47:b0:16b:a612:208d with SMTP id r7-20020a170902ea4700b0016ba612208dmr10944437plg.96.1656665009253; Fri, 01 Jul 2022 01:43:29 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id t10-20020a170902dcca00b0015e8da1f9e8sm14710158pll.77.2022.07.01.01.43.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Jul 2022 01:43:28 -0700 (PDT) From: cgel.zte@gmail.com X-Google-Original-From: xu.xin16@zte.com.cn To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, mhocko@suse.com, vbabka@suse.cz, minchan@kernel.org, oleksandr@redhat.com, xu xin Subject: [PATCH linux-next] mm/madvise: allow KSM hints for process_madvise Date: Fri, 1 Jul 2022 08:43:23 +0000 Message-Id: <20220701084323.1261361-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656665010; a=rsa-sha256; cv=none; b=ib7rFm1BuCEGz352DQmwrAdTdLJdhjNWN/6pjqjyqxZzUggGcEJsUcRE9f2bE3TGX8Nb4o SbfOsly8xy/q29uT/f7xFKyXW4zKplaisnmcQL6l9xnsJYO6jwjeW9cM5ge8pyvN+vRKX1 lL4mJfBFg29v3LX5LbkJQ7N8q847xDc= ARC-Authentication-Results: i=1; imf31.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=dyhcLzqY; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf31.hostedemail.com: domain of cgel.zte@gmail.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=cgel.zte@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656665010; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=KmYj1R8fqef6hjY0ZIaJ4EVhhQeQQM7IVJe6YNZh+2A=; b=zX/CMhuGtwjRGDkcGPC0cIY4lYQ4Q2D2mFWyom0XSMRa0shw9nnMR8g+mxWz3QpRczzaUu Ccy8kU0mr8fgUfvSwOTeX0N04OjikFpvDVgBTbYKCKyDqHExcmOArjcs8FllFXCJ/tkfo1 VIiYEuhaIKnrqW3bR8/OpVoJSPg0g24= X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 5EBAE20031 Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=dyhcLzqY; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf31.hostedemail.com: domain of cgel.zte@gmail.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=cgel.zte@gmail.com X-Rspam-User: X-Stat-Signature: cxx73bdf6onsmxb4hm1zc33zk5ke8n4t X-HE-Tag: 1656665010-183613 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: From: xu xin The benefits of doing this are obvious because using madvise in user code is the only current way to enable KSM, which is inconvenient for those compiled app without marking MERGEABLE wanting to enable KSM. Since we already have the syscall of process_madvise(), then reusing the interface to allow external KSM hints is more acceptable [1]. Although this patch was released by Oleksandr Natalenko, but it was unfortunately terminated without any conclusions because there was debate on whether it should use signal_pending() to check the target task besides the task of current() when calling unmerge_ksm_pages of other task [2]. I think it's unneeded to check the target task. For example, when we set the klob /sys/kernel/mm/ksm/run from 1 to 2, unmerge_and_remove_all_rmap_items() doesn't use signal_pending() to check all other target tasks either. I hope this patch can get attention again. [1] https://lore.kernel.org/lkml/YoOrdh85+AqJH8w1@dhcp22.suse.cz/ [2] https://lore.kernel.org/lkml/2a66abd8-4103-f11b-06d1-07762667eee6@suse.cz/ Signed-off-by: Oleksandr Natalenko Signed-off-by: xu xin --- mm/madvise.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/madvise.c b/mm/madvise.c index 851fa4e134bc..df915531ad9f 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1173,6 +1173,10 @@ process_madvise_behavior_valid(int behavior) case MADV_COLD: case MADV_PAGEOUT: case MADV_WILLNEED: +#ifdef CONFIG_KSM + case MADV_MERGEABLE: + case MADV_UNMERGEABLE: +#endif return true; default: return false;