From mboxrd@z Thu Jan 1 00:00:00 1970 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 57F43E95A82 for ; Sun, 8 Oct 2023 07:52:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6F9186B0276; Sun, 8 Oct 2023 03:52:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6A88D6B0279; Sun, 8 Oct 2023 03:52:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 570666B027A; Sun, 8 Oct 2023 03:52:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 455A16B0276 for ; Sun, 8 Oct 2023 03:52:19 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 056CFA0134 for ; Sun, 8 Oct 2023 07:52:19 +0000 (UTC) X-FDA: 81321526398.06.F2456FA Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) by imf03.hostedemail.com (Postfix) with ESMTP id 49A9D20004 for ; Sun, 8 Oct 2023 07:52:17 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=bsyjrazp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of iecedge@gmail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=iecedge@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696751537; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bE4QtD+mlB3SdXP/klE175cWdpugSzcGOUx211/ZRD8=; b=qygEAiQcboztx8IWM7mAWPdLxYscjdDqAwjA1qwPNv03tt8vjKxQYezfnA1Ky2Tgtluc03 XdpBX78tre0bxtqLlg7EIVpk9HuDcYeRnVV3qBpqVAfOlhHiGW41hCvFQ2SPzKgleU0YCz P8LCxFYh1hvM1K1c6dHXMlOvHQX/OB4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=bsyjrazp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of iecedge@gmail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=iecedge@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696751537; a=rsa-sha256; cv=none; b=nQ0be3PAT9Xo0oKN6pTyjVlMfk2gL/Ov6zMJw/kvgn1X7hHpoO0EElXxstAaNLl3QF3vOq CVDd7PxPPd5nuRxq/4u9binImWcDaf1G9TeTKvgd2KKVmWHlHQ2RQsq3p7IdJDPSy3GPwB Ph4boubZN5F2lVKed+QJBMwTwCYt6n4= Received: by mail-ua1-f49.google.com with SMTP id a1e0cc1a2514c-7ab5150a7b5so3131974241.0 for ; Sun, 08 Oct 2023 00:52:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696751536; x=1697356336; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bE4QtD+mlB3SdXP/klE175cWdpugSzcGOUx211/ZRD8=; b=bsyjrazpA3j2U2uIeYxWcW2PRt3TgLJqm58J7+xbRuE+DUDdHJEjfXPGU6VxprjaEg OjHq9qEttyEO4NehpDSwUUV8p48CwvxKofgPdfilEMDYHUkEUIoZiBQ2F+V0K2evrEkT tZIOj/Um0MOJ6HkF4f/DGMVAjl70sUSuH5bkra/COaWE/YwaZk4ILBOix0Rc91/wqzse IPOJgtZSVRei0bF70u5it1752yDXwM+EuCV2owBMhqVn2srLCupJQr0rOL6ni2oGhYoJ GeSfRvcoUYQSG4BpE0hI7jCfQGqpmoPTNM7VwTRnt7wHapO6Qz/veCgobHYRoBwiYOmn ZJaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696751536; x=1697356336; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bE4QtD+mlB3SdXP/klE175cWdpugSzcGOUx211/ZRD8=; b=wOI9vyIM5Kj1qn/ws1xPvDxawPSkcZr7IFhtw6jm7xrpse7XIgwxGZ4K6qvZ/e+mhe JWE+0nhiNEc+82cjzJPHvORg2fL3OCt0t9oA4a8/ih69puIgNJb/ErS1F3GdeJiG418V BZVOS4yrTddr5urI/HQQnOZF0jg5RK7s27SbLNEeZEOzcmtuTGFL17mX6qpJX2ChM2QP 5N7eVfIZTHpgtIAfuK7UURRprMQ6dpnPOIKNjk2dOBMNUIVC6HDyIsOFLlKYO5JjgHmQ yDrwMrXsJJKMCSpxYYO6enqgQI6nrkpRulD0DIKUitgyE0peLYsXzKLkcgXOzsZtk1q8 Dq5A== X-Gm-Message-State: AOJu0YweMoZb5CfzOjGEyogSVmVcO/n8jOZ30J0M73y1uBnnSLBUcSmO nsPnVqiKQbnxRItlyAAjbtj0er5THk5lS4RMdmU= X-Google-Smtp-Source: AGHT+IHmRQJ1u4u/Mq5v591Go9q6xMqfPgvZi8xktvphqGbHQWFKv3gAKHkjIrRXAqTv8RPDt8hisXowVHKriVdLpkM= X-Received: by 2002:a67:f4d9:0:b0:452:7784:7648 with SMTP id s25-20020a67f4d9000000b0045277847648mr5523034vsn.14.1696751536357; Sun, 08 Oct 2023 00:52:16 -0700 (PDT) MIME-Version: 1.0 References: <20231007130905.78554-1-jianlv@ebay.com> <87mswtkj8x.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: <87mswtkj8x.fsf@yhuang6-desk2.ccr.corp.intel.com> From: Jianlin Lv Date: Sun, 8 Oct 2023 15:52:04 +0800 Message-ID: Subject: Re: [PATCH] memcg: add interface to force disable swap To: "Huang, Ying" Cc: tj@kernel.org, lizefan.x@bytedance.com, hannes@cmpxchg.org, corbet@lwn.net, mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, muchun.song@linux.dev, akpm@linux-foundation.org, yosryahmed@google.com, willy@infradead.org, linmiaohe@huawei.com, wangkefeng.wang@huawei.com, laoar.shao@gmail.com, yuzhao@google.com, wuyun.abel@bytedance.com, david@redhat.com, peterx@redhat.com, vishal.moola@gmail.com, hughd@google.com, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, jianlv@ebay.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 49A9D20004 X-Stat-Signature: 33xe938byjrorbkicc5p3r8sfj9zup51 X-HE-Tag: 1696751537-32550 X-HE-Meta: U2FsdGVkX18+4pcFFP5iku75JrS1v8kNaR3QPhaLL6SdfPE8A+fwk8i7RYGPjAbwNyoVxu11rlw01X7cFYOhOG5wWyetYPvfbvtuyrCkCoN+o7kwYE7ZSPrXcsbz8ULvpro8ebId/Bf53/nDl+HXNyf5XoJJTyMe3kTkgGzqlLxHProKszFhcS8b3GXa/2RLcTpqN4rZQDHqYpl+DjAKqXYwEBS95uzwaH40A3bldq3DdlzM6fygfk1MTX1ABZyG24C7HVC0EFEEMST2GvS1Ew5pymw8r7ccraYcH2ec08Bvsq/O/9w/pyndbtb+vXPW6KKdKMWQgg8h5f8bGrrBRpMIWB+fIUzEiR67kwhpYk9l4nNA8zxP6OilkqxJSqwDV628dmN+Au58r/ivZzRIYwDR5cNPt+ZIB3aHwDDN+z3Cgg4tLQXLrJ0cd8uvaJaiD/hajNy+k8U2xRV4iHLA4Ug9L97oJazTRjDnKm9/FNSIoodh3xisoC9aR9XBjqSRRZ5OYqYusrzq7Zh9j3OPVGmvnw/vHd+CNbLsBbXfw3Ppjn3wqmF8/IwwOp0SGFdj6KMZpK10KQndArikAAwamshycq+I3kcXX1J6iRjZVI0GMyMyd/y9fyFRTb/rdjjvtkd0Va08Miwo3+uhjJiciJWvW2SsybtAdJe3QiZl0WZcYpVbyzXUa3i8Ylk2ClSl+gV1RYl2Mw9SC2FRksDpan5pen6sKiZyuRwsAe2GwoHrP3JTgOiKG5QkhGP+BDtkv05Bi4W5tcS3AYsz9Tu1Q1vgNn7AierMkS0Ng21nbsM8KUEubFTp3/InTuKEulPePJKwsWRHinw++RfnGjJQtlmk6ooCIbV3zUr6bcL4vhmLLNRCYFb7cXbSIRFBEZBTwcJYsT8sQ5VnvGy3/kMCrUr1toOi+wefERR/dbFH70NmcWr8D4E7S3bM6bB6FMed/mPCha3KvinrEWbw0W3 xsfwFIEH doCHjNXIk8vvdkRI+Tqjctgzf1jewytJoQAFzBLKivRS17MKqWG87fvItBuYsqkPfLjtKxnRrzPSPcVNTOxMlO6ZMIykp6+Qf6Ws+cm4o46t0Bhv+WTSC/unq6VUg60Gpx2k+2ntaFmqlJhEtgdvufekNoUJVuYgZdiGZ8DjlN9hBkPC4YYNn8OFCdOqnnaM8T5cP2ZY/oZb/G3folY5YA3HmBi/3aV2srdPl0gQaqbYVw6KjDDs4A/cBtopDXuvBZFik3ZmnEqaUlO/2tm8GU+50RxQ3C4Es3/EolK1prrcn7ccoDFVeEWeg63HD1Kggs+VfyXvAIgPYPtLVaRMSJ95y6/w9lthqbuR1PtA1dDpw8JlA4v8JykEKiNXGByCquV1ao5fGyyIrhRjRKbXPbnEEBp7MffusNIGePYkvddqeR5iv+1o5A8+FgI9DTNZkM35D+6UloYbHgMCe2tK9a1eR2JsTuFDujrejjWVkaDquCFD7HiOdjCYSES2irQTfsF+ScBZauR/ZKyMM3pGrIPMjGg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sun, Oct 8, 2023 at 9:17=E2=80=AFAM Huang, Ying w= rote: > > Jianlin Lv writes: > > > From: Jianlin Lv > > > > Global reclaim will swap even if swappiness is set to 0. > > Why? Can you elaborate the situation? We reproduced the issue of pages being swapped out even when swappiness is set to 0 in the production environment through the following test program. Not sure whether this program can reproduce the issue in any environment. >From the implementation of the get_scan_count code, it can be seen that, based on the current runtime situation, memory reclamation will choose a scanning method (SCAN_ANON/SCAN_FILE/SCAN_FRACT) to determine how aggressively the anon and file LRU are scanned. However, this introduces uncertainty. For the JVM issue at hand, we expect deterministic SCAN_FILE scan to avoid swapping out anon pages. code:: #!/usr/bin/env python import mmap import os import sys def write_files(): count =3D 1 if not os.path.isdir(WRITE_DIR): os.mkdir(WRITE_DIR) while True: _, i =3D divmod(count, 6000) file =3D "{}/{}_{}.txt".format(WRITE_DIR, WRITE_FILE, i) with open(file, 'w') as f: # Write 100 MB to a file num_chars =3D 100 * 1024 * 1024 f.write('0' * num_chars) count =3D count + 1 def create_read_file(): with open(READ_FILE, 'wb') as f: num_chars =3D 10000 * 1024 * 1024 f.write(b'0' * num_chars) def read_file(): with open(READ_FILE, mode=3D"r", encoding=3D"utf8") as f: mm =3D mmap.mmap(f.fileno(), length=3D0, access=3Dmmap.ACCESS_READ) text =3D mm.read() write_files() WRITE_FILE =3D "file" WRITE_DIR =3D "/tmp/rm_rf_me" READ_FILE=3D"/tmp/10g_file_delete" if not os.path.isfile(READ_FILE): create_read_file() read_file() Jianlin > > > In particular > > case, users wish to be able to completely disable swap for specific > > processes. One scenario is that if JVM memory pages falls into swap, > > the performance will noticeably reduce and the GC pauses tend to increa= se > > to levels not tolerable by most applications. > > If it's possible to only disable swap out for specific processes, it ca= n > > address the JVM GC pauses issues, and at the same time, memory reclaim > > pressure is also manageable. > > > > This patch adds "memory.swap_force_disable" control file to support dis= able > > swap for non-root cgroup. When process is associated with a cgroup, > > 'echo 1 > memory.swap_force_disable' will forbid anon pages be swapped = out. > > This patch also adds read and write handler of the control file. > > -- > Best Regards, > Huang, Ying