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 3BB86C2BB3F for ; Mon, 20 Nov 2023 19:10:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A5A676B046C; Mon, 20 Nov 2023 14:10:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A0B4E6B046D; Mon, 20 Nov 2023 14:10:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D2E46B0478; Mon, 20 Nov 2023 14:10:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 792986B046C for ; Mon, 20 Nov 2023 14:10:40 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 36D1FA04B7 for ; Mon, 20 Nov 2023 19:10:40 +0000 (UTC) X-FDA: 81479274240.17.F070D77 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by imf02.hostedemail.com (Postfix) with ESMTP id 690F18001C for ; Mon, 20 Nov 2023 19:10:38 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gzfjlfil; spf=pass (imf02.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700507438; a=rsa-sha256; cv=none; b=WtKdziyQv2AJqiFhGME2aC+yW+yYmwkxxLWhoFLWWVRxGNWTO6qwuieN/TQ+yqy+S0sUkc wLavazO0txe4zicmHELX63XZHLJawB//0Q6qOT+QIrS4Sn+/D71y32UMt3gTImsw8+d8eL u70vcgmARdKm1nedsg2MODy2/+vlods= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=gzfjlfil; spf=pass (imf02.hostedemail.com: domain of yosryahmed@google.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700507438; 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=m2uesSr1RZAG/avk1Qh8AUkPhBEOaB3euOWyklILHFo=; b=ALBCeLirSy6x188QezbyIuLLO0vpY2OIo7IZk36qv1nxgXBupC9L8jr5AWaBXf2VHvwwbW KNEs0VXD4yTtLTUcucc8kQJv9CUM6aondp5d2JzgNk27beQNVU4KyGUrIx/Ve7E8r8pb7O oVG8ne/Ae0BnHbfoipQr++zFX4sfODE= Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-548ce28fd23so1480588a12.3 for ; Mon, 20 Nov 2023 11:10:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1700507437; x=1701112237; 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=m2uesSr1RZAG/avk1Qh8AUkPhBEOaB3euOWyklILHFo=; b=gzfjlfilevqzuhh5G+jBBTcyXsO8bisJZgFbU8gJKj1Ch/ENBnBi+UYX3bmuKNyp7i x15Hdi/hZuK6JcZGSTSMd4Hs0eyGvDxvUTrQN/O5N229cxet2eUsRPdD0X4TIRlSAjZv ZCHHJts2NIk3tl+t6oJT34hPCdsSBGBC3qeEPJm6ekg3tDAE/IlAGpeZAsK+5otihzWp RNMTLAAS0Mn2Yaobp3kbOM6wxkv24DGWmrz8QiyrXfkD8de6hTq4fPRkpPkymBMDWMXi tSV7AUe3p1vRgPFFxFNb+8bmmmfj52+0fsdWb5cGjHUPWNmoRRvcPjtO4OGcIMTXQGpR bvbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700507437; x=1701112237; 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=m2uesSr1RZAG/avk1Qh8AUkPhBEOaB3euOWyklILHFo=; b=aArZRxne5C+ZmTfqGzC7q5xNqXvG/1/k8CSrTSM5L2VUO1f31HyJICcKw3VJrVCFR5 XONVOjxk1unyiCuIUt1bwRpTmotEuZya6S1o6NEY5AM3kdacZ9na5HTMYcgGSWHv+xdk ut9etrK/f9h3BuxnCuagziXS3bKlzcE62VfrroQytC7SvJ87e/oB2Z0FRqEDUTdayXg8 aBOwEuC8K3aIWgKNvef0YIu4bcOD9dTTuwO/rtmRAItg20Km0wiRW7muxPG65k98nqjA EgPJtoSM/3HonokWQWXWGoBt6T62pvn4I8/UWVSYfj0fe3Kym3I7rakM1LLjCBxon/V6 ERLw== X-Gm-Message-State: AOJu0Yz1kFL0dSOz81cZ7PEKanKuCDWRIS3IHtSVWkq6jt0/fd+LGuT6 VEQg4L/6pjlLZW6THQwLmb5v+luJzamJ93aRQfNbXQ== X-Google-Smtp-Source: AGHT+IGN3CuWMRbRGYyiy4VguhASYZXTkUCRpw8AZsUGWsrdAUs4cau/J/ydxAbEfu7eBcEbxLbMo80RdseTX4rHVlY= X-Received: by 2002:a17:906:5619:b0:9c4:b8c9:1bf4 with SMTP id f25-20020a170906561900b009c4b8c91bf4mr6269527ejq.19.1700507436601; Mon, 20 Nov 2023 11:10:36 -0800 (PST) MIME-Version: 1.0 References: <20231119194740.94101-1-ryncsn@gmail.com> In-Reply-To: <20231119194740.94101-1-ryncsn@gmail.com> From: Yosry Ahmed Date: Mon, 20 Nov 2023 11:09:58 -0800 Message-ID: Subject: Re: [PATCH 00/24] Swapin path refactor for optimization and bugfix To: Kairui Song Cc: linux-mm@kvack.org, Andrew Morton , "Huang, Ying" , David Hildenbrand , Hugh Dickins , Johannes Weiner , Matthew Wilcox , Michal Hocko , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 690F18001C X-Stat-Signature: qsfzpdpwtinu769oa43n78ebh1sqcqgp X-Rspam-User: X-HE-Tag: 1700507438-854039 X-HE-Meta: U2FsdGVkX1+JnYx9KPmdlf76Oy1WYWLc/FCBIOgqOxd0jov2FJ/M/iSMjhr4GOAQZko+Db3UvkBd+TvwLki9yd+1HmApJJ1A5GxxWwf4M4JkeegKsy/BmqO56Bfze6tQkNPjGcAM5eonZQlKWgMkehfpX2zLkxlcwP5lIfGei1AQZyrOeIityBkXwfIrIbdsCEsRL4O1guMEbuGK0nzh98xdRUD096o+xdQHKIXZbXZ8alTVzDIZhyCkOOMRcdsMhuOQfkpXl+68gfiEkMSKIA4uh54pP0LLpoPJAc8SL31PwmOZSRlighOQYcZXpG+TFeuTBiqg9WQc2qLbvB+XgLBSopQ2RWh4zP23tFXkzD0Uz0+r6yr0kaoqmvYtAI2YB3lUWc3ARm0E+B29FoIYAslB2ZiOgIMumUg5pFL6Wnk/4jISGVmPv9PkzzTRt5Y7E6+ciBs10/y+mioYMf+5pwhxGgeXCkd6CgfVyYbx5KkN+UjPSVBhwoZB9uko8x+DOZAk/RoyzlqoHhURKKHFyS66hTQlxbljaFLzOyiceRaxymRYwKhBgT0adF4jI1jiFu0ECSO1OF49iCz2cHI9y9wmN6WPjag03Hep9GrwtAM36DBdrKMLs4OM4ssTcHR5xDKU7PZonTPFw5QqsKS+wSwdTbo6ciPpF4tJ94UAM8FyB2PZiX1qBjnGdXdCmwEX4aJseeUJmwOVEuWPqUiIWbBUIbbYTfLPVoh5p5I5glwZZ6l79H0VopAQYBArGkwvALlqz8LX6lCrt5zJ1PASaXlQWastjytT7J+GlTqRszmvcU9uvbZlzrbag4le0hxsOEycFHV8yoERsAlRdQ5Uu+jt3nQ02EDphwcpdT97b0gFF9lAQ6KlhIwTozyyOt9Va2wZ2zKnfptaOYnJLx1ywhs4rpFihxOCKx1aVKm0xFoS2TNGH86yc/KRhGFILLjfqzsUaMmK5TGlsZZwMQg p/YEJxH8 jHXRwMAkOJS+Q1u+QKUgyknI86h8WmU31plZPUQmhau91caISYCJqcoImtOu0Ric+4wvJx9U5BOkWEqIG5YdHIHY6gYU7P/7dMiGWKt2G4fsjsYYoMIRToD7zDG8oq0ZGyecMG/kW2WfI4bE5cueCuKzwlbSycBDN2UZDTYwPD3j/tyN4a+zxAxbakNG8qCUAZwCAneH+MQdXkz0C4HksaNAU+/Em1RxIt83QYsoejipoC6aQeczjYIrKFL0brnfOy/2hqiv4nCdq3EjX6156IqLNFmZQppNTtb4GM/DvmM9uDCvQJkSy2dO57w== 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 Sun, Nov 19, 2023 at 11:48=E2=80=AFAM Kairui Song wro= te: > > From: Kairui Song > > This series tries to unify and clean up the swapin path, fixing a few > issues with optimizations: > > 1. Memcg leak issue: when a process that previously swapped out some > migrated to another cgroup, and the origianl cgroup is dead. If we > do a swapoff, swapped in pages will be accounted into the process > doing swapoff instead of the new cgroup. This will allow the process > to use more memory than expect easily. > > This can be easily reproduced by: > - Setup a swap. > - Create memory cgroup A, B and C. > - Spawn process P1 in cgroup A and make it swap out some pages. > - Move process P1 to memory cgroup B. > - Destroy cgroup A. > - Do a swapoff in cgroup C > - Swapped in pages is accounted into cgroup C. > > This patch will fix it make the swapped in pages accounted in cgroup B= . > I guess this only works for anonymous memory and not shmem, right? I think tying memcg charges to a process is not something we usually do. Charging the pages to the memcg of the faulting process if the previous owner is dead makes sense, it's essentially recharging the memory to the new owner. Swapoff is indeed a special case, since the faulting process is not the new owner, but an admin process or so. I am guessing charging to the new memcg of the previous owner might make sense in this case, but it is a change of behavior.