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 727F6C3ABBE for ; Wed, 7 May 2025 03:28:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77FA06B000A; Tue, 6 May 2025 23:28:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 72DA96B0083; Tue, 6 May 2025 23:28:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5F5B76B0085; Tue, 6 May 2025 23:28:38 -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 3C6876B000A for ; Tue, 6 May 2025 23:28:38 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0B77C120E11 for ; Wed, 7 May 2025 03:28:39 +0000 (UTC) X-FDA: 83414679558.05.9099A87 Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf16.hostedemail.com (Postfix) with ESMTP id 7E8A4180007 for ; Wed, 7 May 2025 03:28:36 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=K7vlsqpE; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf16.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746588517; a=rsa-sha256; cv=none; b=NyPhp9mHlLTk5HfwRaeJmUe0F5fWbDilerCefmHoh35EZqZMQiGNDzykNEwvxScsp5PybN AZ8DmZXMwC86GEQ67zJptSdiU/fC97Q7JJMgeI7XvU95y8g8WO8qkrldnMXXkbbdOk9dod mavDgLcwjTSa5uI38wmq8Kyd5RSNw54= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=K7vlsqpE; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf16.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746588517; 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=iv4fa6bEf/aYGtRZMNVXuLVHA7gtDCzPA8PZ/66V1hw=; b=LdJqZA+NeSN2rTBCll7zdRhijvYnxp76m/4NNrS57mXgrdPpJc2gZ+DxN5jZatH/5YFxqF rKkLl0BrJhmQ7OeLd1znjeXtoZuw/C0BJaeq7wprX2hnNnni3Pwi5K2LFWSkg6uhINo/1T KCxbAXiPad16w9P+BwUw7Vnyd49Wsh0= Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5499659e669so7634379e87.3 for ; Tue, 06 May 2025 20:28:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1746588514; x=1747193314; 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=iv4fa6bEf/aYGtRZMNVXuLVHA7gtDCzPA8PZ/66V1hw=; b=K7vlsqpEN5Z4G+7Wv+HXw1zeX22NVVe8m7tTdTlLRQCbQy995Ilj7VhHEJU3iQvxK/ 4+/dKt6nHs38RO3qXz4FkaCEpJjO2/ojHHkD/+tESlsxs/Cs7ZJcAaJBMZWKNLJgDggl x3XYvkbjWipuMLGX1VCkV7ym7nG+U3ggCk7nnkD/H6lPiBI33OMIoTn84Gj7w/pkm2YH aYxPIuH1B6RX6TJYy8EJJbH+kDcZClT/F6f747ru3AQ7eFa7jljouv193ENoSDZ1Nj8j Pwu6Z9IV6ZPfIt1TeungEwhbtYOcBv2qSpBsNUI2pUNWKoF8BONXPRVnkGqy3VOorxaa JV9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746588514; x=1747193314; 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=iv4fa6bEf/aYGtRZMNVXuLVHA7gtDCzPA8PZ/66V1hw=; b=H78V99xy+OzkVoC3uIoX+tRmv3WHGzIk7vkCXqC2C04lw8zQwB/RtlSTI8iN3qwb7D Tflpz5X983fnEXS9iuPBgVMXDj3LLfB2TFMd24NgkDz4A0q/HDkMDuNS1BM9sbz4Kq6y H759MDbvW9NwLXO1aAqk0bBrAWxs7s+Cm1E6hXb07+RtTEazUeH74OdI3ATJbx3Y7hdR CC8xvu8dh/s3p/S+Rfufpgj8Qu+LLuXJ4V6vxzRtGDe7p3q+oLbt6BVzaF/jStwTlahZ vVgCTnqGZFXYycciylEc3nPDWPulHInbfYyi+jUOPSeo4x7OgpCqhRyxVufbaI/uLlXu 4FIg== X-Forwarded-Encrypted: i=1; AJvYcCV5z8BZC6RhrjjN6eFdKQA++CsHigYLJwD+iUBl5XAKwSIS05DLvxwBH3BV1+Uo1yAKvhSV27Fx9w==@kvack.org X-Gm-Message-State: AOJu0Ywe3Bo27C3Cz7K+LdV0dYBHa0fi4G5id0lgzNfShyxwOs0Rt+mH eX+nZBH2Xy01JbeMQVjGZPt2ngDGcG6oufbE9bHWhXBujoVATTnbWQxHvsc2KQ0tUmJlP3CJ8Do Cptez+zFHPgjaBFWwt9/m2g9dwCs3qshe/xQbRw== X-Gm-Gg: ASbGnctn7o6/WOpCQT9bOOT7j4q7WPFwewqgloPKXmoBlO5MIgUlDacOmYw9oaSAKSq 2K/e3+T5M73RC/GvNI5CV+oF+3M5DJzlik0je2QYByR00tqQVzGAoSLCySdowLX/CeJE94tljub +jxb1w0PdaaXCtDxR4JdYjDCyDxv/uA4U93L4= X-Google-Smtp-Source: AGHT+IHRVpqqQcL95885VdrdpyBvN89mmkxIZU6+3qzFWNLh+wBb2l1zbH2piMCbuTmgwMmhCOFlh/Z9OxL+pEKfjTw= X-Received: by 2002:a05:6512:3f1d:b0:545:441:52d2 with SMTP id 2adb3069b0e04-54fb95fc541mr452808e87.23.1746588514476; Tue, 06 May 2025 20:28:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Zhongkun He Date: Wed, 7 May 2025 11:27:57 +0800 X-Gm-Features: ATxdqUEpVU2jD7ikyZC6T62CndZocg-lExlEj4Pp9luYeKfvaUnUCLsCl63KMuk Message-ID: Subject: Re: [External] Re: [PATCH V3 2/3] mm: add max swappiness arg to lru_gen for anonymous memory only To: Dan Carpenter Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, mhocko@suse.com, yosry.ahmed@linux.dev, muchun.song@linux.dev, yuzhao@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 7E8A4180007 X-Stat-Signature: zy7b5z1cbc97x9wqg3a464yhgqiydayn X-Rspam-User: X-HE-Tag: 1746588516-506267 X-HE-Meta: U2FsdGVkX18+axIq+7EP+Fgq+5nhbDs6Jxtq2JwEXuviSEphMC+INKPfaC8UXFRCRnIIB8KbglInQvL8lVSQ9O1tSfRMAeJP2Sa4QzOUGiy3GZFfF8Al20qOhPSrPKFx2kedBQ93gxw3m4LXj6UWIyTcFBVOhb6ZIG6w6TPF99owOOmjIBHhA0Oh8UgFNUdsamhFKCnHAB2OorIVhS3/eEJRsDDcRn1a2g+0Q6EhuzvbqGg+bKuhhHcaAnGsK5a2ZQ7QiZCvUTTDOncHfdg2CiTnea9H9Q2uxlSN4pRhHqz1e0VTMAwuQWfvuRbnunWiS7OyjRvr1jSG/DygaQKEXwNRawg1atAwtyTWdznAzvq+tqrE3i+9SFoVXy+IgPX37pb4foEAOkaFdLkMg6JSrI0EA/2NcigQakSj/GcBvoTJYNA/v+VgTfHuxrJdBeP6vjrivhiWAb57p60Vine5s/mvXvWqvwoMVOHnMg94hysEX9lYtDDRWS2d4hMYlOWPo6cf8CEjp6wNv0Fjd190h9SLQWUk5z8iM/ZRcwEDeJRc/fRnj2+soV0K7MnaTxVG8mjN26sMRBZaQ4bqYfqLOXXc/9M4seNv7Ng6DuKNRVaYoPM+1pZBEhMZ5+pPUGfnldZeQvHiW8W72dOsz08jVvA1S0bfqOaUiUWFHEYhLGUh5nlfdbEvpP80a7TExnHCYCPArZf87209xAhLfrbniMLsv2oR0xWa3vbi/l89eBKjs1Cv1MBW06+AmOeo8IzLjV47SPfElhjAZVtO37z/VMY2EqP2QoouZF70yK6lJooQI9rUEzZj1wKPHQwRLZnPcoO8xe4klQ6YENH/TI73OMvxnn9LY6IQfLbDa1ixo7sJ19lrpIBzJlqZoQC7M/EukM+WXXmbguvByezKgvtD5oW/QY+vLF/9/D72TA1R93Kz607dz9Dkn3jkx7isuJ+6bow5zk0W1paDmkmnJmi KitM/S8t ADxGs9N2y/pSL3jcIEFXeSw+A5YI+MHowG1TfagpoMFB+KI2qoMPm12MXl3ATeO3lTFWgHIiE2JPTOhJICXVNiHjNVcIPdMAlicLMvAuzX3EmEk5VM9Oy5zHs5YMCsLI9VeuRcwQgsRrpwsFkP0y/0o67AihM4PbUbJbolTngG+hv72mqfcxTYkyODmDyf7XWNubEw4ya+3+wD4MI5GWK+3Pew58zlWWRe6eHFkYoNZkXOAOGNkglJ0XPqcuDMleIsC8dqCtCEMVF7kdnKubU365n13/uoBWtUHSY7+G24QsS84mHT1hmP7qfHMvS2aQOHrx6rA7CCRqJrPXSySOwuX3Tqw== 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: List-Subscribe: List-Unsubscribe: On Fri, May 2, 2025 at 2:59=E2=80=AFPM Dan Carpenter wrote: > > On Thu, May 01, 2025 at 09:56:57AM +0800, Zhongkun He wrote: > > Hi Dan > > > > On Wed, Apr 30, 2025 at 3:59=E2=80=AFPM Dan Carpenter wrote: > > > > > > On Wed, Apr 09, 2025 at 03:06:19PM +0800, Zhongkun He wrote: > > > > + /* set by userspace for anonymous memory only */ > > > > + if (!strncmp("max", swap_string, sizeof("max"))) { > > > > > > This pattern of strncmp("foo", str, sizeof("foo")) is exactly the sam= e > > > as strcmp(). It doesn't provide any additional security. The strncm= p() > > > function is meant for matching string prefixes and it's a relatively > > > common bug to do this: > > > > > > intended: if (strcmp(string, "prefix", sizeof("prefix") - 1) =3D=3D 0= ) { > > > actual: if (strcmp(string, "prefix", sizeof("prefix")) =3D=3D 0) { > > > > > > > Yes, I understand the difference. > > > > > I have a static checker warning for these: > > > https://lore.kernel.org/all/30210ed77b40b4b6629de659cb56b9ec7832c447.= 1744452787.git.dan.carpenter@linaro.org/ > > > > > > If people deliberately misuse the function then it makes it trickier > > > to tell accidental mistakes from deliberate mistakes. > > > > > > > if (!strncmp("max", swap_string, sizeof("max"))) { > > > > The length of swap_string is 5 because it's read using sscanf, which > > will add the null terminator \0 > > at the end of the string. If we input max into the interface, > > swap_string will contain max\0, which is > > equivalent to the string "max". Since we only need to compare the > > first few characters(There are other > > possible inputs as well.) =E2=80=94 effectively treating it as a prefix= match > > =E2=80=94 I used strncmp. > > I'm a not sure I understand. You say you are treating it as a "prefix > match", but sizeof("max") is 4 so this is not treated as a prefix. Did > you mean to write strlen("max") which does not include the NUL > terminator? > Hi Dan, sorry for the late reply. I agree with you that we should use strncmp for prefix matches and I will update it later. Thanks. > regards, > dan carpenter > >