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 E6984C61CE8 for ; Thu, 12 Jun 2025 18:20:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8716D6B009C; Thu, 12 Jun 2025 14:20:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8490C6B009D; Thu, 12 Jun 2025 14:20:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75F086B009E; Thu, 12 Jun 2025 14:20:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 559DB6B009C for ; Thu, 12 Jun 2025 14:20:29 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id EAE9E141CF9 for ; Thu, 12 Jun 2025 18:20:28 +0000 (UTC) X-FDA: 83547563736.24.EFC9598 Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by imf27.hostedemail.com (Postfix) with ESMTP id 0076C40011 for ; Thu, 12 Jun 2025 18:20:26 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iJ9waTeH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749752427; 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=M7yz7I1wAuRxqw4oRRjVoSOCqi9Pxn5c71tnJhYggcw=; b=Esk6ZCuAlXW/04+5dE+DELwOn2768D5YP/Ur7cqZhbC+X63/zksxCImJvh2WkUCly0mVWa unv2AKCtUIBM8ZxX+xFgllFGWfZ3inZjGe/oZKc0AdSl51qvgv8vzmPt+vq9/oQrlupb8K /QIwVa3hje3rIqQ+8HAZHfuUlCAqqLM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749752427; a=rsa-sha256; cv=none; b=XkVcUTTtIarfUQ9ACW7lUqB3WqjdGcgfxxc7a1j0WssSuqDz5myHoHCKHUj5YWPbcD2yXW vkfUkZAASk+pV7ImN6cu3rFq5yvm40C9Plmn28EdR5lpcereIWBOF+5FX/IsO6NgNGlTaD BE42uPl2LM43ct2vPC+dpPXRBlzn0FI= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iJ9waTeH; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.176 as permitted sender) smtp.mailfrom=ryncsn@gmail.com Received: by mail-lj1-f176.google.com with SMTP id 38308e7fff4ca-32ac52f78c1so14327831fa.3 for ; Thu, 12 Jun 2025 11:20:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749752425; x=1750357225; 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=M7yz7I1wAuRxqw4oRRjVoSOCqi9Pxn5c71tnJhYggcw=; b=iJ9waTeH6RDxAR5P8LnngErMreKY/mn+O8ShViR6ZXWKwR3hQjx21/4GbPQeAEEkGc 3rr7tWuLL7xKIjXtdHLRA0rD9ZbMpLrT9R8GIzMRxPt3uIhuFIEyQLlTKRMteUucR2v3 SoCRKkhBPNz4B74d86QUhuTQMVaVqCfufS5EW5gJtGxOf0fOwBKUEWTtWc1hSdfwODg4 gkO+V2vx9ASTFh7ss4fjhOpjtXD4O+h90N495Od1CIvNKth6ncdNVorouHcbr0FIyjt7 IayjDd77QPM2ARZ7bLkWTRvIAcgdtruCyKRyRfINRQKtxy2GA9KlWVipOnLwfr501hGK 4zOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749752425; x=1750357225; 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=M7yz7I1wAuRxqw4oRRjVoSOCqi9Pxn5c71tnJhYggcw=; b=Cq/5PxrSt9k3xr5ki92VErQSW4ZGX1jmvcuoDMIApyPISBt/81avXbVfk76vTZL9w8 ux39hSoXFx2WA8ZLhWrjsC5WKvaDou/IF6LjkG84nINuRna2anPAA282H3L9omigrZIR z7LJ0b2OhnK+S/ozPwOTd47VtpSb61wJbxMonU7kJr/p1oPhoUurcUtcbAnas2JvMz3V 73QW329FNPLVSIxT9vum5Javfk2xaP8VczEQDpKcbUXWgZcoLCUC9y75RVAnJZWf6BSO 0/jfQU+Rv9pjEK3XIzRJd4dccB0DbYDxLS/q4HSkYqBQrHdkrO+G/CWQm8PFORpRa3Kg RjjA== X-Forwarded-Encrypted: i=1; AJvYcCVRC6813/JGnGN+mvisaoGrnXoHDbVSmK3p5zwumPlbQuWm0B+wm0VQxWVD3YV1fRmgowIkqokYfA==@kvack.org X-Gm-Message-State: AOJu0YzH+vLswavr6eCByb+WnItV+0UoOl7PMM5LSgkoAN6TeFOXzKpT r140T2UdWRS6YL5Vn6yw/9GRhVH7LOhFjnxuTRfO7K249b4wGGQrd8mmt7PlvLwk+7e8oWybVjs PZlS4pOZ7PlbCzXiTMhEjpgHPD44d7oM= X-Gm-Gg: ASbGncvyQ4jl1oxde1vhQSRYFUSVGWStsj1DTlOQnIwy0+qIFTtdv+hL+3RNFj1eGPr Uuwrn5+fk+tP+pUTbENmHJrk5hwKUe5CE4X1Ofs/GPs3nVUdp/j2J8x9d7tOttLDHKdBdrlX6hM 5zOCtY5BPPalZeqiSN357RufJnfNsaghQzwoqIu5yWv9M= X-Google-Smtp-Source: AGHT+IEb+Lpdx0f3VX9m0FhFY+QrMuqs6KMCM/kEXd7ilkczmtR2sPgb/2jEOeB2AklczYCK2s9Wo4pxPWUF40AJsDI= X-Received: by 2002:a05:651c:2001:b0:32a:6994:59f0 with SMTP id 38308e7fff4ca-32b3064f5cemr10252401fa.14.1749752424805; Thu, 12 Jun 2025 11:20:24 -0700 (PDT) MIME-Version: 1.0 References: <20250612103743.3385842-1-youngjun.park@lge.com> <20250612103743.3385842-3-youngjun.park@lge.com> In-Reply-To: From: Kairui Song Date: Fri, 13 Jun 2025 02:20:07 +0800 X-Gm-Features: AX0GCFuzE_a5aODtIcS9UuAT-NiQYIQMItNrAipneIN3jwWZCFv5rQ2PTK9ZqZY Message-ID: Subject: Re: [RFC PATCH 2/2] mm: swap: apply per cgroup swap priority mechansim on swap layer To: Nhat Pham Cc: youngjun.park@lge.com, linux-mm@kvack.org, akpm@linux-foundation.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, shikemeng@huaweicloud.com, bhe@redhat.com, baohua@kernel.org, chrisl@kernel.org, muchun.song@linux.dev, iamjoonsoo.kim@lge.com, taejoon.song@lge.com, gunho.lee@lge.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 0076C40011 X-Stat-Signature: nazwyqr7eidj4n1jem19w1hndabkimni X-Rspam-User: X-HE-Tag: 1749752426-251730 X-HE-Meta: U2FsdGVkX183UKo7ym2RQRsi4P/zB8kPD0jY/h6GA3Rjir4m9skbd5Bb3F0GEZQHcEd6cO6VF2aTxVrUrPz041S3a+0r1k9JqAuhfXslWd0YMNg9zxsVb1Wj1EbkvNYS5PF9DFsi5AGIj5c19rZ0kTGkCl1lQCNufZWlgFv2xBJj2r3xuvq4rhpW9uQsK4qSfgOXHOxywDXHLcYD1X9AXZBXHCsK0IeJ4li07eh9eixfSd4SwypAmLW0f+sIhDpeoM/rlO3uIcj6i7+qAYMGGFTLijZY1kEo7pJfNiZOgOXc68yOTPXNl2Lk00LDqbv7CTaUuZKTBAaz+7kyqLxciGc6HEHNB3eZIFCSVEqRIqG6gCUFGWjbuijTK/NzUNWJURBdZkYhbIzguBRbEN/SyeF39ILOHi9BDXeLfosNgf+aA6kHp5F2F9b9unoBL2xThkq+Eo/1lKwpbu6unx7HpudbIkNfMZybvLxOVFBOInIUOeoJKuE5SbT76U63lQGXg4NV8jvQ5309umNLyT4KUyZLfYOSVtvaz4/d39bE9dYsxgOmgJoNl15BWnKH+umVSgemGONTB8fa5aKTCUKfND3cHCgdJDc9bXRMh/qKldnFIuRHBjd4GYm6v79SEQB9r485ZUD6lHTUcwkTuBUDwz7qp/u3gjXt2YpxttgeylGYYn8VoJztyd8sxxvLgI3NUlmV0zNc+3AJ7Gz5q1I4V0JaEvBzXYPPnKUZ/gJlDvdOlEyesIXI7eWNuh0MCF4/xzDiDEZPqmVrEwJkC0K6TVdHewtQCiQkozf0vEhmh5MQoxgZNc43ucb7++32o4+aRmWqN3riVjrPldXMem7VX4vblIr+kW2OALyLZFw96fAQ8tAIGINsi/1q+f0MQur+7e0gXTx8ks+145zBW7pqHC6UTNuLukGCIKtnDMRP3ZBKUwcsvzT+eVYBEQdptKEs7CzCHgjn1XEtN57YXx0 hQfEW86l 8UtdtdvhXsqH9AAv+iee3+6gumUND7E0cBBqlcHtO2DpSUgY0wPO0M/dCf92n0QCLmPC9mLQKkByyTZ+wAGqyaaQqQNqc0tdvulHsEeh7rBZf/CdJIwtYUgAAVWbNXbxo0yNjPFPNqvuDISF8JxOynw0z7aaTR3IrMZ6NRWUSKMkInDrBMIBbYHA/j/gFDw3WuAuslWrCTkqOJ+nfJt51I9l2Lt17LWvfOSXY9C7uXPXhbaqwkSMzZ5StWH1FdyZsyrUhOxjuGqq5dBx6cQ7pknBeEYvcSClLEsuzK6wA4ul3w4i5rUkZW1m2tjwdmj+M/ni0r/FAg9F1knrA/MVzXwYGtagYC8O3QJtxSR64Zk0xJxogTAoOeuUliw== 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, Jun 13, 2025 at 1:28=E2=80=AFAM Nhat Pham wrote= : > > On Thu, Jun 12, 2025 at 4:14=E2=80=AFAM Kairui Song wr= ote: > > > > On Thu, Jun 12, 2025 at 6:43=E2=80=AFPM wrote: > > > > > > From: "youngjun.park" > > > > > > > Hi, Youngjun, > > > > Thanks for sharing this series. > > > > > This patch implements swap device selection and swap on/off propagati= on > > > when a cgroup-specific swap priority is set. > > > > > > There is one workaround to this implementation as follows. > > > Current per-cpu swap cluster enforces swap device selection based sol= ely > > > on CPU locality, overriding the swap cgroup's configured priorities. > > > > I've been thinking about this, we can switch to a per-cgroup-per-cpu > > next cluster selector, the problem with current code is that swap > > What about per-cpu-per-order-per-swap-device :-? Number of swap > devices is gonna be smaller than number of cgroups, right? Hi Nhat, The problem is per cgroup makes more sense (I was suggested to use cgroup level locality at the very beginning of the implementation of the allocator in the mail list, but it was hard to do so at that time), for container environments, a cgroup is a container that runs one type of workload, so it has its own locality. Things like systemd also organize different desktop workloads into cgroups. The whole point is about cgroup. There could be a lot of cgroups indeed, but not every one of them is going to enable a cgroup level swap configuration. Youngjun used a pointer in mem_cgroup, so disabled cgroups have no overhead. We had a per-device-per-cpu-per-order table previously (before 1b7e90020eb77). It works. Only minor problem is allocation has to iterate the plist first, then use the si->percpu, and usually there are only a few swap devices, much less flexible than cgroups. > > At swap slot allocation time, we check the folio's swap device > priority list, then pump that all the way to the swap allocator. > > swap allocator, given a priority list, for each priority level, try to > allocate from that level first. It will get a cluster (either locally > cached or a new one) from swap devices in that priority level, before > moving on to the next priority level.