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 E5382C369A2 for ; Fri, 11 Apr 2025 17:54:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21F8268001C; Fri, 11 Apr 2025 13:54:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1A594280190; Fri, 11 Apr 2025 13:54:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 01E7B68001C; Fri, 11 Apr 2025 13:54:50 -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 CF48F280190 for ; Fri, 11 Apr 2025 13:54:50 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id C61D058EEF for ; Fri, 11 Apr 2025 17:54:51 +0000 (UTC) X-FDA: 83322513582.11.2658C8C Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com [209.85.222.47]) by imf27.hostedemail.com (Postfix) with ESMTP id EA1FF4000E for ; Fri, 11 Apr 2025 17:54:49 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dBQ4txFV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of shakeel.butt@gmail.com designates 209.85.222.47 as permitted sender) smtp.mailfrom=shakeel.butt@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744394089; a=rsa-sha256; cv=none; b=U/5AKJNzcdZuBHDrgG167YS6la6rr7qd06+VxAsCfsCQP44YksZuJWWOfHv6Axvx/SgH3q 7W4oIuyz85vq58E47OUQowIEDPVjd2FQcrOVryHSxSrAt2Zi2UYiTIMymYRWkHYBmp5DEY kchW/VziUk79zLbjcrFPs7jPsiMaO3w= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dBQ4txFV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of shakeel.butt@gmail.com designates 209.85.222.47 as permitted sender) smtp.mailfrom=shakeel.butt@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744394089; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ywkQx3u/4aownxE7hPIvWIFCLtDqYUgJXHHsxcNJYug=; b=5Nxoh8CJTyfDUoV4IHVB7pmFcGAZmBSXT2+ZoSpf0lPWSQmf352n4lHQVVKTno+2Bj5ZA6 qdjs6Y+QhWQL85mAzPHgVFR1OtdlxIQ8WUFZcr2SmQWAAC2ej3JsfXDcfBb9ZHCikJrNlK SorQPddqq9srdBx1KzZ2OLOgSBG3dyE= Received: by mail-ua1-f47.google.com with SMTP id a1e0cc1a2514c-86f9c719d63so940667241.1 for ; Fri, 11 Apr 2025 10:54:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744394089; x=1744998889; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ywkQx3u/4aownxE7hPIvWIFCLtDqYUgJXHHsxcNJYug=; b=dBQ4txFV0PwXtlV7g7Mm9cE/FdaMPtFQik6ARmQUL8atSFEpwnq4CVOWpP6Ca1Oc6P UXweKK8i51rdwspp4KEfD/hrcZ8jvABdBDs5heyHJ14mKeMJV0+8Ezp/QArcF4OLMkKr wBYM+CjJAgy9z9vrooYiyYKb9dOx2TStt2Eb13WTXdmoUmllAt9/cOF0jDeRJuRzFrTO gp4wIu8tWUrmvDtvEy7UEcR99ROyiouyuFbJ6xK1d6Y5h7WTvAflSbPVQnWo/FjeEzFT /uuIWIuGYp57ukg/PUIzNxUyJGkpibLUbwhynThtQH6/WM3eW8Nt9tCm1ocpVSj1tZ5/ Vshw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744394089; x=1744998889; h=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=ywkQx3u/4aownxE7hPIvWIFCLtDqYUgJXHHsxcNJYug=; b=qNeB/uVxekMkNgIyiDdsqx9pkyXytqpv3SiG+Cucsb/kBmgzUwFf0mF6YEPG9uEkot 2LbyfSt95HmHSIt74nSTzMy8zcl+LJZnveZcc9fUHFdUxWqH3SSCIZH9dz+AfVOEC8v7 BzhND6BeFQVbpyuU9nDK2BS9uvWw8Jxlm+XSVca4+JfGaiHs8Q/mUrfKItNXOjWVyaek ttsNKgG+SaupA8Ed8wTi7Gal/RUc04xcWQ9UH0/EvCOhp6pvx/acbtuvU80XZHYbwzuY Xq47DzoYPnBrFk0NrkaEYk3qVfVeWIy1XJ540mJwjNM8i++pzZuNVrAlxR+0tfytwtVl 8dBA== X-Forwarded-Encrypted: i=1; AJvYcCWfD+jJyBGhYo4qI3icX5Eg+1M2GQh/JVF74y1eMo4/rUx/t0BWWtdf/qIHlekK2djHe1V6ccm1VA==@kvack.org X-Gm-Message-State: AOJu0YzYkIUG8guVkRzIN9PjrbkrHDKj3UutvoY7FY+h5/PsPFHwcANI SQnHKVE/R3RTh2TQYIpTwpR919BVh7SxpeAyglEG+hkHQ0s8IfmReXYRJlvNmheps1px1f/O7VR ruvA9KawdyloXufpUYDlSXD5B6FM= X-Gm-Gg: ASbGncv9FcQ1PodqaZd8Zj5Rx/YqT3UxYdg5Z1jCpvZ5q8jMpuDjPBFAE2qXHUVlyLm m+u8AQvhutldl3BFoX611370221I6QLXFDPPLrRunFyLWMwX6W1mvN+R8To9P+/ozCGOTNMsmHj 1fBHjESAD9IQNJ1UaNpNjkR631XHU5NiEdabzQ5vZzlkviszrYFZi4zASL X-Google-Smtp-Source: AGHT+IG9Gf4TMoSlwS41SzXYgEa8isUDPLUdrvCwJybGx3dUBlNtvJmto2C3Kb/Qh4F23GKeMRelpkSWv9NiJBxzXQU= X-Received: by 2002:a05:6102:4b85:b0:4c1:9159:859c with SMTP id ada2fe7eead31-4c9e4f2079emr3137947137.15.1744394088951; Fri, 11 Apr 2025 10:54:48 -0700 (PDT) MIME-Version: 1.0 References: <20250410210623.1016767-1-shakeel.butt@linux.dev> <0e9e2d5d-ec64-4ad4-a184-0c53832ff565@suse.cz> In-Reply-To: <0e9e2d5d-ec64-4ad4-a184-0c53832ff565@suse.cz> From: Shakeel Butt Date: Fri, 11 Apr 2025 13:54:37 -0400 X-Gm-Features: ATxdqUEvGAuIZsSkxMfr_5OHtKy9t_zYrWp3bAl0ILZaS2YVXuD2eUp_XUPwSNI Message-ID: Subject: Re: [PATCH] memcg: decouple memcg_hotplug_cpu_dead from stock_lock To: Vlastimil Babka , Sebastian Andrzej Siewior Cc: Shakeel Butt , Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Yosry Ahmed , Waiman Long , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: EA1FF4000E X-Stat-Signature: udx67ne3snipib6kjp55pc9gwsm81fdt X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1744394089-421787 X-HE-Meta: U2FsdGVkX1+XZS6utGn8UloJKAH0P6itI9eqR2EC2SQsGqOsY/xuLtPv+cbLBrVi6jSVvibIjgakgRzVt6+KBHi/bJx38ia71y5b3wBqWAZpN3v5H37KloCGqJVQkKoBjJCC8nSjX5BBB0OsWOBxT1cN5YAmWQylzFkmMglpTlLRSS5dRZexuoJ8cIzU3nlI4XJz3qe1/DQZJp6ua9ytU4LvJtIr2U2Y8+5wJfRt1BPX6ydr7YRxf0wVxOLqQmgRWF9iJ4NzjzznPCPSAcOIH6ZlNpMrkwGtLEWfEeZ9amb4tqftFqDlKmJ1rHG/DpT8EzJ3yGJgKjP2V2SJwoy26MTPEP/eYcHzUQ8qAocsl40DLgj0+YX4/s1JYVFeMqcrIfOaHevQWgMm1iKU11O5tlJR5vgjoRk2/uLks86tLrkPIOzrRKj25JY7IqBvxYZjL1oU7MEvEin6yBlgFLWhNgANOGGg6++DnREKnhDn5GCPgOimu++KzAaeDFceUDGV9kczOKxUDMd07xrueQZaqzTBOkK44lospq4j/gC/JV7hgjtMBSKRtMKp+m81cf9N0JzTaXRczjQEvat0oUaZfrtb3UY/gfmWUSnTLwE2cAvC/aouJ7vASjZP4X7LEuGFkR6RM3BhaOSNLmi7pg0BhH0qK7ZiwUWcwoKWBj6Go9fgVpduhduM6WE27+CUvZfAg2x/yUJfBKv6/ZqhxLvqjFgPcBw434p8JE2PkP+7cuU3u3j9PbR6UTF1+SAvcGqqK5n9KiZZdrHTP6WXNY0vDZXYcubflIPvjmt3IZpUnPu0LlUBW5sdK0Ct91f0WQX451544K+eeXn6yindJxllp/AQhe8T3ohAmuupUpZoG5jOzOeYULrNG9jgotYTphDDwfOI2m6JVyFZjrxGvGcbbFXyU10QHpIEY6mhPThhIfq41y3aMP1e7O3otxvudOhy5sRCxC50eyIeUwz2kAw o28sWHiB EGAxPGGphQNordbMiqEeGusPiqeby36eWrTBLPBql4PKGGWD5Er0efjwYyzFvLy5AMuYq7yOpRpGI6aAafdBMoEbnPQuiiL5Ecjoun47jvOzhv2fLp4jUU5awzZ+TDZ96fmbprH3NFsqVbaP1hdAfISm03JCRCrf+9/d1FdNJhM/yhX6Qz7qyJo2Ze0luJGjqio3EsdFr2iuF0PhLcBeLp73tNejmniNtDGKJbmcL3q1U1ZZbHt38PMHE9klxYl5xiMQJx0C5uTAsw8pox/DI4aJo581VRJrZNzGpQF6oCoay9CQFt99DCqhw7pJiLCwb1uz+jb2Bx8vfiyW6xzOcROaV3fCGD9NesrjevVlR2kfEgVjrjacU6dtff6dVdEaNFMpaLn0ebYxVi34KdNwqlV33Cw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000042, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: (my migadu/linux.dev stopped working and I have to send through gmail, sorry for any formatting issue) On Fri, Apr 11, 2025 at 04:06:46PM +0200, Sebastian Andrzej Siewior wrote: > > On 2025-04-11 10:55:31 [+0200], Vlastimil Babka wrote: > > > @@ -1964,10 +1964,10 @@ static int memcg_hotplug_cpu_dead(unsigned int cpu) > > > > > > stock = &per_cpu(memcg_stock, cpu); > > > > > > - /* drain_obj_stock requires stock_lock */ > > > - local_lock_irqsave(&memcg_stock.stock_lock, flags); > > > - drain_obj_stock(stock); > > > - local_unlock_irqrestore(&memcg_stock.stock_lock, flags); > > > + local_irq_save(flag); > > I think for RT this is not great? > This is not a performance critical function, so I would not worry about that. > > At least in theory, probably it's not > > actually used together with cpu hotplug? As it relies on memcg_stats_lock() > > I think no irq save/enable is necessary there. local_lock_irqsave wasn't > > actually a irq disable on RT. I don't know if there's a handy wrapper for this. > > No seeing the whole context but memcg_hotplug_cpu_dead() should be > > invoked the control CPU while "cpu" is already gone. So the local_lock > > should be acquired and the target CPU needs no locks since it is > > offline. local_irq_save() will break things. > I don't see how local_irq_save() will break anything. We are working on a stock of a dead remote cpu. We actually don't even need to disable irq or need local cpu's local_lock. It is actually the calls to __mod_memcg_lruvec_state() and __mod_memcg_state() in __drain_obj_stock() which need irq-disabled on non-RT kernels and for RT-kernels they already have preempt_disable_nested(). Disabling irq even on RT seems excessive but this is not a performance critical code, so I don't see an issue unless there is local_lock_irqsave() alternative which does not disables irqs on RT kernels.