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 92E09C3DA59 for ; Mon, 22 Jul 2024 15:19:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E4C66B0083; Mon, 22 Jul 2024 11:19:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 295D26B0085; Mon, 22 Jul 2024 11:19:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 15CB46B008A; Mon, 22 Jul 2024 11:19:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id EEA436B0083 for ; Mon, 22 Jul 2024 11:19:01 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A201CC17F5 for ; Mon, 22 Jul 2024 15:19:01 +0000 (UTC) X-FDA: 82367746482.26.3E96C07 Received: from mail-oo1-f44.google.com (mail-oo1-f44.google.com [209.85.161.44]) by imf02.hostedemail.com (Postfix) with ESMTP id BE6E780023 for ; Mon, 22 Jul 2024 15:18:59 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=vimeo.com header.s=google header.b="QqJs0/nb"; spf=pass (imf02.hostedemail.com: domain of davidf@vimeo.com designates 209.85.161.44 as permitted sender) smtp.mailfrom=davidf@vimeo.com; dmarc=pass (policy=reject) header.from=vimeo.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721661517; 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=tKK9/3I13MvhyzlrlIeNEK5w1H/w6SfkKGofIH4mavE=; b=NkBtXKPCggpeF6vT0bK+Ew1GUR+4vfR8n4mS9RqMw+ctR5UBCT7PxZPCWS/dNf0Lib2zWC jxSfV8k8iwcu9XiXxgMR8qbRotwJ9NTjwtHlddfvk5wSpx3U6lGXrNicyXFgk7g+994fZo vzXIkzfo0iCPhlde099hsq2XlY9oPgo= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=vimeo.com header.s=google header.b="QqJs0/nb"; spf=pass (imf02.hostedemail.com: domain of davidf@vimeo.com designates 209.85.161.44 as permitted sender) smtp.mailfrom=davidf@vimeo.com; dmarc=pass (policy=reject) header.from=vimeo.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721661517; a=rsa-sha256; cv=none; b=azqbNOuIRAmfx0hqm8B1mV40sQGMues4eGhzPQl4jEDsS+1gB9GGQJ1DUcHnP6lXMM0DRX 9Uvo2/tyRGTscIblKlUMgdnhUCuuUpdwymwgF3xJaJccg+XHOUJijuu8MKk9yHlCWLnb0y jTJ8QgBL0CTaaeal7Kz2TGqN//xFXS8= Received: by mail-oo1-f44.google.com with SMTP id 006d021491bc7-5c6924f2383so2062923eaf.2 for ; Mon, 22 Jul 2024 08:18:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; t=1721661539; x=1722266339; 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=tKK9/3I13MvhyzlrlIeNEK5w1H/w6SfkKGofIH4mavE=; b=QqJs0/nbZbggy/f12SJnUj2H18zeuG2X3oNwDteQw0rqC0RTqArcjBpUrX1J/1IUVP 1HxUOE1rYjTigQ5wp2UL/9GiyjGE0ldDL4aUWSroJe0ECwzylUS5xAVKbABHqxJkrtcI CvAyBnlEEsGyYieuPxiwmGUrfsSXVeojT1G0c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721661539; x=1722266339; 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=tKK9/3I13MvhyzlrlIeNEK5w1H/w6SfkKGofIH4mavE=; b=Q2saeCezay3dF3SFa38gAqsf0SSATG0mwAn9ypkjROOfAHx34oJiwrL7XDDuBqaRxW FdNosOkukIh2jI1MhjX3l6Z5rPmuhISBvIXfrVMi9ylk7UHWxVF7yjD5ubHGZc3JO/wS WbmdyofK28X9v3rPyY6apeyRwYlkRGutdhJ3bIXbLconRlJPsobCcED7ZAfAYrz2c++y S6bRB7KPC255R9Og0O0k8np8NcKZDobl2HROyzbxYKRPOzivoHKSHNxTwjpeRTZv49o4 53d8wYsQHoYnLegU8vsneWYAmoSXCcUNf/ex5wHA/N6dDQR9rw2HCQHNbt5ec75nScxk bUTQ== X-Forwarded-Encrypted: i=1; AJvYcCWiQX4O/pahUcs7y+Xv8Ba4GVT56qxs8fHpeN+fHb7io33+nzCD4l31UQzMcL4vvP04MEgRq816t7Dz/fZF4XmwrjY= X-Gm-Message-State: AOJu0Ywh0kKgOE5mvKd4HUVFjHrWhjejkTqlGM0buUXvj2fizexjxlgT /AOvc2b80KG9AcKjAj4R5yOGo09k9oBNrYBLPJKmKXF+Ro/T5X37FiK5v/SAvsJ/fzU+ANBHIxE 13YlOPDujanN9G8P18apzFJPgGFu550aLKH+VrQ== X-Google-Smtp-Source: AGHT+IH5LDxowoDamLUYoLl291IngnNdCcTq6/3wHFVuWdTaH42FkypxLhePVVQznXZrboSlC/zmNdEhr4+x0rPlRJ0= X-Received: by 2002:a05:6870:1715:b0:25e:1ced:744 with SMTP id 586e51a60fabf-263c7612bb6mr6127529fac.47.1721661538646; Mon, 22 Jul 2024 08:18:58 -0700 (PDT) MIME-Version: 1.0 References: <20240715203625.1462309-1-davidf@vimeo.com> <20240715203625.1462309-2-davidf@vimeo.com> <20240717170408.GC1321673@cmpxchg.org> In-Reply-To: From: David Finkel Date: Mon, 22 Jul 2024 11:18:47 -0400 Message-ID: Subject: Re: [PATCH] mm, memcg: cg2 memory{.swap,}.peak write handlers To: Waiman Long Cc: Johannes Weiner , Tejun Heo , Michal Hocko , Muchun Song , Andrew Morton , core-services@vimeo.com, Jonathan Corbet , Roman Gushchin , Shuah Khan , Zefan Li , cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, Shakeel Butt Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: BE6E780023 X-Stat-Signature: 7izmjadctnju8bx1cjisoj94c34nfrnj X-HE-Tag: 1721661539-472883 X-HE-Meta: U2FsdGVkX19BxIevTABwkSm3Er5ObnrLhbHHFrdVtdk0hr0m6SC/B/qYyWqYnxPmhykrdOfx+l9TRoJgjpLimesZ8iZRBxXjoSqVsjEd51iBD6PGaREk0iyJYwxMtVsCMG2DuymXqiZY2xkoViLAVlvBHt7pD/ftGhZVBDBtiWhagQ/h2HBBVR+uSyNUEdZ/qhkerKuxm/vPBhuhQAduoo3jFLqygp8u7cjLnikBgtBJ4+By50Zq9zHdT+sRcPp91Lp616BHVWDQfNzxQIJS25sIYf7hSJWFfwz+/Lz5Uk2PmClZY4aha/n2OP5Xx8dwXt+9TDMMXA0iDP+d8kn8yOzKOS5W9rPKORXmcjKEq2j0VwqwzoQ444Ibe4DMobt6CVI3eG6KANCPA9BbFYVziknxLKaaGN9mI8qUl6NpUWr7B0FGlgjiG8V3si+OxM42mzpEVaehViS0QXcDVgMJ28nO3tuugbdP2JqaF3LPyBqQTz2zNrU1eQn/32O+h8Zzgw+xXqU9oIzelD9UWa1y+8fG+XfBevNcJXnpicb9jzX6e72uZeuvJTKIBkz9OifVGmIh/C/Sp1D9U0M9LT7UKIqaqo74qGEpEfCfCNo0UC6w3Wh9kU1G/ZwLjo1hVa2iERNB7H7LCu04Md+/XNDMp3dhw8owvepHGqp9sgXMMtPPNxVfknQg5NkE8AJyf0x4ea18FHL6UfET3F+85ZRx1acq9ix5E04/ubf8QvRsXKDW0//UULzAQoxcn+ikhzyP4jVYGQEuS94SP4sYR0FIgOOhU/K4nRmAgsJZoSxLdMPzIKSn0RUeHLgnrbKoTL3yryIVG5h11inOtFCNQIVBhK51R1/sboPVt16mKeZLwOmw/liF7vyiYk4J4nmGm+nUEJWj7H+5AxMX+MK1nkr/IeXNeUEUiQcNNT7r2b4KxEDYqjbgwO7OOmC50XLZ9wHoPCeLUm8224HlK5HRvMp cAuOXaR9 4xR7uNHW0TlIO7SWAzuY+V1ZvPUjbK/CzWhGgOLzSO2/6eN4OiNi1ycKybEHOMDqEiaSda8jRPGru8BPFvUkF3YnfwuNZqzgG7smLk7i8VqPyfjD4DxeR4CpFALXE4khYcTxdEMUu6e+460naDkb1unUKBY3gXZE0yFzq3ighypoyB+uHgpOJ/F/EtORCguFaNvTuZ+tmqZ+wxuHzLXRr5cPTQw== 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 Thu, Jul 18, 2024 at 11:23=E2=80=AFPM Waiman Long w= rote: > > > On 7/18/24 17:49, David Finkel wrote: > > I spent some time today attempting to implement this. > > Here's a branch on github that compiles, and I think is close to what y= ou > > described, but is definitely still a WIP: > > > > https://github.com/torvalds/linux/compare/master...dfinkel:linux:memcg2= _memory_peak_fd_session > > > > Since there seems to be significant agreement that this approach is bet= ter > > long-term as a kernel interface, if that continues, I can factor out so= me of > > the changes so it supports both memory.peak and memory.swap.peak, > > fix the tests, and clean up any style issues tomorrow. > > > > Also, If there are opinions on whether the cgroup_lock is a reasonable = way > > of handling this synchronization, or if I should add a more appropriate= spinlock > > or mutex onto either the pagecounter or the memcg, I'm all ears. > > cgroup_lock() should only be used by the cgroup core code, though there > are exceptions. > > You may or may not need lock protection depending on what data you want > to protect and if there is any chance that concurrent race may screw > thing up. If lock protection is really needed, add your own lock to > protect the data. Since your critical sections seem to be pretty short, > a regular spinlock will be enough. Thanks, using cgroup_lock() created a deadlock, and using a spinlock resolved that. > > Cheers, > Longman > --=20 David Finkel Senior Principal Software Engineer, Core Services