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 2F62DC02180 for ; Thu, 16 Jan 2025 02:22:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B09C66B0085; Wed, 15 Jan 2025 21:22:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AB9F86B0088; Wed, 15 Jan 2025 21:22:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 981286B0089; Wed, 15 Jan 2025 21:22:45 -0500 (EST) 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 7B9136B0085 for ; Wed, 15 Jan 2025 21:22:45 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id EE190A05A2 for ; Thu, 16 Jan 2025 02:22:44 +0000 (UTC) X-FDA: 83011716648.29.14E41FA Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by imf12.hostedemail.com (Postfix) with ESMTP id 0B86940004 for ; Thu, 16 Jan 2025 02:22:42 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nA2zOMBV; spf=pass (imf12.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736994163; 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=9CCoBm1y8pOX5q7ZU8+TocUYP0UhOzxurJN+MoqKRGw=; b=wHMi7k3CxWB2Dci6PizM8VlgWWd5R3huvEfb76VhEB2PLNh7E8W7H9MOatuybCdfV9ASh/ PxINLfUH31gVwrW7Dq2QY6i3ldJscLdy16VK4kbnnvFV/Rdd4de51l6ddZYjLf4JAw8Sm5 ph8gTPiudj+zEMJRT4GeIMPh2y2L+os= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nA2zOMBV; spf=pass (imf12.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736994163; a=rsa-sha256; cv=none; b=cTj7pp/gtdUqIxz0x1K24jWlDOjfFLd2bKMrYaiRLoY22RTBOaYmaTaGYlYF52OztGv2P0 W85732hHV6Gzfw3myhE4EEma2U0RzqMdi4+Jc8y291tK6a8KrwOfKYyPAjj8SGgH6F7vkI 51diRwisLq/QUVYoUo88mE+KhgJYdg8= Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-385e1fcb0e1so209224f8f.2 for ; Wed, 15 Jan 2025 18:22:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736994161; x=1737598961; 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=9CCoBm1y8pOX5q7ZU8+TocUYP0UhOzxurJN+MoqKRGw=; b=nA2zOMBV3t4fN7TzVpM3N/YphFn6EGpPm2QMpFcnIv7xTFU11hcmI504WunLt/0DwA k3PgmhCyqN8QDdRE+HN4n0D9eBuykmVAZz+/NHt3FsEAbCk6D481HtJULCION8xYxDdQ nf0ZfxkKnirVnev0qZu76yt+tuvCw/fyDBrk+LgdtH+4tNZd/4HpdOKBQcxHD9MzC8d+ rKy7sJ+pYLTbSpGCvNviFC1qwJJ/Gr79YiT5Bu6PfJ0TXATmAdy4Id8Y63tqb+JuAjUb hro7tzeQLChvZJxnaF7kZzaR3/t5fQ1nGy95pukmWlUg4mKGQJCxL2orV/2DIygmuOoc Uqig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736994161; x=1737598961; 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=9CCoBm1y8pOX5q7ZU8+TocUYP0UhOzxurJN+MoqKRGw=; b=SA7L8FSG/5EsMeT5CgX6DdtRyTJJbGmfVe8Vhm4jl2qb7lZSaiE2xNQNPtJmSo7m5G fAjTiLch5IBPKejhR6tPIXYlJXf1znXQtICeUxLX+xsP9ucvJou9Jf1oO9fcbcqULl3o BRKVM+edhdheB725jR7L9D1WJUMg7DPTgBP1S2kWhQb2/7/i4Otmxs9uve5OZH4LChZr x96CEwbVMnRNjLudoB8BBZZ1KYhGuBLu94ucRuPvGv8jLmKjvtkkfFcCxSCMxZGL8Xok Ba8/KOnlr1BqV8E+35XYCmfodnsbx/fQzj2twadbyWpDseEt0XKTo2HZZh17C7m/iji7 X+Cw== X-Forwarded-Encrypted: i=1; AJvYcCX8KFk1eGXfJMI+b8oHDCRmA0lGLybQaV939G2bFYskkSfHTrdTaR4Xy0m7vMvBabWDt0wGW84VEQ==@kvack.org X-Gm-Message-State: AOJu0Yx1jEnbbbbS0jNQ8roNjddhAjGI2LLO31Lto57TiVC3PbR5yqVV 1SGf/QXmLHPjtXIBcqVBrSksLcQUI+a+lRyuRVTo+09TY8dTdoC16Iv3N16xFmatWOlJ7/dex/w 7hZj7BXc/+DU0bfpnycsRoMnTl00= X-Gm-Gg: ASbGnctHVtId2Gpodd1i9jnsv2BcfTzGJqQluIHrY+Eh3RKGUfVdI3C//8nILB46ubw CgaCyfJ87zs1HQKHy3DljYfOaE5nTAtt90Nss64R48/ajc/w+mpvBFw== X-Google-Smtp-Source: AGHT+IEKtVuajWZgwoOaUg+OTfmnKZcUaMvweNO4Ybs9RNl3uzalHNeEM+EZaVIZssyRHPill9de9h23TNze52Bju+0= X-Received: by 2002:a05:6000:178e:b0:385:fd24:3303 with SMTP id ffacd0b85a97d-38be9ceac10mr3199495f8f.0.1736994161574; Wed, 15 Jan 2025 18:22:41 -0800 (PST) MIME-Version: 1.0 References: <20250115021746.34691-1-alexei.starovoitov@gmail.com> <20250115021746.34691-5-alexei.starovoitov@gmail.com> In-Reply-To: From: Alexei Starovoitov Date: Wed, 15 Jan 2025 18:22:28 -0800 X-Gm-Features: AbW1kvbmtlUFtOVTN9tBFoUufcUMkk4E5svlUJ9HTwowBMUBZJ_jZip0odkQM_0 Message-ID: Subject: Re: [PATCH bpf-next v5 4/7] memcg: Use trylock to access memcg stock_lock. To: Shakeel Butt , joshua.hahnjy@gmail.com, Muchun Song , Andrew Morton , SeongJae Park , "open list:CONTROL GROUP (CGROUP)" , linux-mm Cc: bpf , Andrii Nakryiko , Kumar Kartikeya Dwivedi , Peter Zijlstra , Vlastimil Babka , Sebastian Sewior , Steven Rostedt , Hou Tao , Johannes Weiner , Michal Hocko , Matthew Wilcox , Thomas Gleixner , Jann Horn , Tejun Heo , Kernel Team Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 0B86940004 X-Stat-Signature: qh79h54md6hiehn15pwkkyoeoaap8oua X-Rspam-User: X-HE-Tag: 1736994162-866026 X-HE-Meta: U2FsdGVkX1/MjGAjLcbushZnkTkZxtuEa2czkOMKfTONMDmMmkU0f7n9FXV078IEQcmJnZmluRc3VNodrV9LXjvG97BJ7qH8LsN53//PmJEuf271FkpuDozPNvXdzb5385G8Bleq5iCFrELfcLEapTZ5wyI7OW5qcBNiSUmTjxnd2dINjO789H/W+fbsbzqmJmFcYV+GL4cVOAtrJumTV3oBJGInX3HnMxMX4Y+h+x2SI4Y5DfX33tmaQqqQ/W1dAon45accHmesatC7p1hkGhd8ThyaPaOe6Rgvyq1HIcddh4fsup+fSP1gcfIPvaRboYJluLUcVmWALPcpM1KObHVrr+944VOv8H3z4NdY1sLTX0VRuwY7rZ9WMhewKHmuIRD9VT8aEWfLc84Ht0yzd88efnSFlhfHKotQ78Wf+lyHoV9owR8TQbAX54uW1yl2AUFqxZ8/CVQYjK1M0VA0BgTQ6W5C/qQ98kQdKSVXqmUFCamtnRKQ4CFq2qa8MpIOQJ3mWK9nJazBlhetoqc/BUF1D2nnss+pxS1jcCwz6WH5XxPhM4xU9J51fnzqnmIXH2Nl6J5JDNl6iaWZqLHBnV3UqHhh21gI2PqLo0xVXa5m4DYJCov1GkZPxHnsS4brrKkcCOZTuenwh89jxPAkbtV/BLGZ6ngnah/568ZYOvb2E9wHOwO8OI+WrW9o4vH57QF/HmZJvdYAyfxd/0/5AaAuNcmlZXbbVMJq0NEuYgPyVKSUXRvGfkxZ2bRG13+Byzd6JoBV47JDVUuxeuYTUin5UlLc9FZ5Yoz7FQDkDiUVdawp4ke/Oe0clQ1B/2wqb7+yZwLdnXx7YiUi5sgoEv03zBJCHxfiHvmhj+HKCgRtPToROPeoObxW76NR66v3WBxMx2xHre8mI+evy/lhQnV5CCBBqJwnSMXb3LWfyGP9JxuA86S7niwYc4BWuZdlOUf9Z9LfPRfeBgaK9BO N0zRhsSm UG/nMIXSyJ6Zd7niN02LmmHWTQzsPzELp+Bxck1Pqep9YmhfKUG43WuNe0y/DJUgyLCypoXfV82dk4u5daU5vfY5eHzbIvIfQ11P8RG1WuCcMQU9KEXm30xAXce+n7tvtJaHpkXumo4zaov8OfdgBZkzL3icsm/bbEwWUEPBfQN29z7Ofvg/RreCXZXi/MnPc4OmW53NZUepC8Pzw+TwbSgdbqMAbhslEPEcwrQvKya8iCU+s6pb+yPi0hBKN88M9zk537bz2Le9X1DbwDdVoNhhdGGGo6JSamt37Nv2n+zhXQXBlc+vxsRL0sOWfaFoyAdEOJVHP2IACXocgaUWZxAuwRF7JWhlX0e1c7yYPX7F+Bn9udHLaQiq4hV2Y8JmiV7ZXaVZbDlYPk+dGoY5rg0ADUFEJVDHy+S6H8ojqvN3lMTMBQK/k4g48cgmVbI6JJJA9lKe4VOJgXy11xPyNnM4ybrswMOIzy2lu3vumyebSDZ5o6ZI6T62tezaZyGHsH+2tdaNr8vnYnVHWAkU+PcWxW4Tip9kzZxs7ZUSz8cAIU/3ORTe9heal+j4FqApjEgzR 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 Wed, Jan 15, 2025 at 4:12=E2=80=AFPM Shakeel Butt wrote: > > On Tue, Jan 14, 2025 at 06:17:43PM -0800, Alexei Starovoitov wrote: > > From: Alexei Starovoitov > > > > Teach memcg to operate under trylock conditions when spinning locks > > cannot be used. > > > > local_trylock might fail and this would lead to charge cache bypass if > > the calling context doesn't allow spinning (gfpflags_allow_spinning). > > In those cases charge the memcg counter directly and fail early if > > that is not possible. This might cause a pre-mature charge failing > > but it will allow an opportunistic charging that is safe from > > try_alloc_pages path. > > > > Acked-by: Michal Hocko > > Signed-off-by: Alexei Starovoitov > > Acked-by: Shakeel Butt > > > @@ -1851,7 +1856,14 @@ static void refill_stock(struct mem_cgroup *memc= g, unsigned int nr_pages) > > { > > unsigned long flags; > > > > - local_lock_irqsave(&memcg_stock.stock_lock, flags); > > + if (!local_trylock_irqsave(&memcg_stock.stock_lock, flags)) { > > + /* > > + * In case of unlikely failure to lock percpu stock_lock > > + * uncharge memcg directly. > > + */ > > + mem_cgroup_cancel_charge(memcg, nr_pages); > > mem_cgroup_cancel_charge() has been removed by a patch in mm-tree. Maybe > we can either revive mem_cgroup_cancel_charge() or simply inline it > here. Ouch. this one? https://lore.kernel.org/all/20241211203951.764733-4-joshua.hahnjy@gmail.com= / Joshua, could you hold on to that clean up? Or leave mem_cgroup_cancel_charge() in place ?