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 16FB0C02183 for ; Tue, 14 Jan 2025 10:17:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A8A676B0089; Tue, 14 Jan 2025 05:16:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A13116B008A; Tue, 14 Jan 2025 05:16:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B40F6B008C; Tue, 14 Jan 2025 05:16:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6C1566B0089 for ; Tue, 14 Jan 2025 05:16:59 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 202D08082A for ; Tue, 14 Jan 2025 10:16:59 +0000 (UTC) X-FDA: 83005654158.04.4A5FA06 Received: from mail-vs1-f41.google.com (mail-vs1-f41.google.com [209.85.217.41]) by imf29.hostedemail.com (Postfix) with ESMTP id 07C4212000E for ; Tue, 14 Jan 2025 10:16:56 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf29.hostedemail.com: domain of geert.uytterhoeven@gmail.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=geert.uytterhoeven@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736849817; 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; bh=QraKM6d9Y9J5up/W2kzOhUKdMGrM/JRFuxxdQhypIOc=; b=Evx9tqlDotuapBlmxi04XfErJNQsQdMQ6pDgi9kl9ECOJjteTuOcOlz0glc8siuCrRxsbu jQ5t8GXTrOTf70P81QoqU+KkitSTuMVfsnienQBr9F1aY4JDB6KPUi6eSNKO+pazWMKoJz VriE7+INgk2fY/XOW3zOHMbfH7sC030= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf29.hostedemail.com: domain of geert.uytterhoeven@gmail.com designates 209.85.217.41 as permitted sender) smtp.mailfrom=geert.uytterhoeven@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736849817; a=rsa-sha256; cv=none; b=n/Qc1ug6MJPl8DxEiqWYXFukidLTS9cjjpBZqKZxTS8ejDnsVtbz41rX0po2btvd3aWXyl Zgn/JsbM5LGsjy5C663/eb/2P2Kiet7PaFPHpREhA3WxgAVpR+Jc7tN5EQZD2anh05D3K/ rCmx8+OvbJDLOyw65wV1Mecpyn9gvlw= Received: by mail-vs1-f41.google.com with SMTP id ada2fe7eead31-4afed7b7d1bso1772440137.2 for ; Tue, 14 Jan 2025 02:16:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736849815; x=1737454615; 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=QraKM6d9Y9J5up/W2kzOhUKdMGrM/JRFuxxdQhypIOc=; b=Nl4yO3BQ7E2ggDFax3qBaF9bOsqjKwInPZD953iEU1VDbcPnuqz8vHh1xGmH/T084O 9Nq1TMo36SMBdxiMct5jEnZ70Oto42p3TQKUJ24yAw/kgaAVOqkW3LI9Tcjw90/MwHH/ 47qHworlENiQ3SJhWgmfnA+NVQHun+w1eOH4omXV0QBbsmo9widV9Xr6G/ltLSWlwsm6 cDTH/3K6xUkfJxu4jLw5GjAXYDq1qMZMYIlGNhOVyc1r1GrZ8GOEn+OiDPCQ/fXI+Aww MRZq13seQzgFILIooOwx0GAu6C0Nl191dCTUdAycNS5Db40Yhyr+kfdC8wb+t1gk+c32 AIYA== X-Forwarded-Encrypted: i=1; AJvYcCU1KyQ7eURlhcWtLk+iYouZfwD0BruxNY4qEN3q9L/a46Jdy7XOzQ18k71ncYmysWeblp3swpd2Zg==@kvack.org X-Gm-Message-State: AOJu0YzDAhg16JUUQ0lvCYq5wAaSgZZJNy1WGP4WxxsJGJs1kFJJqZ32 AVYJX1fN2TByeVo4EXPAlo+pwwZ86OG1gDdr+B3y+BskUoeY+7zwSCnJcdSO X-Gm-Gg: ASbGncv87foOlZ7ZYWB/eIyBv8fmPAcoX/zxFFDJCRH/4k6LTGAZf+x73fRVJj4bn2J N11Fk1qTa+2MKrAKdBMHv8sTp3+hbef8UM/DgnqbwCkQqQkIbffGPg5MMXBElcrm+vsT4T1/OGw yohm7sRAQZdQ3aJwVz1ZJxp82GT+o3D3cJev+VlbzXcNbJrvGDrks6i0yTaTV46yqFkp1dLp7an vNQ+uzRH3sp69xohGLJoClg811Pi6aeBtS/kJEbhbpakbnY6Z84cJvbGLv9CXYhplIsHkdmQLuj QKqjwYUFJ66L/tbH8Qc= X-Google-Smtp-Source: AGHT+IHA1jxzPLC4iz+RFJ9FfvDKU2N8JcmGpmpYuc/m1vCk6p5usWWycQprcdyAjkjZZt1i1SXiTg== X-Received: by 2002:a05:6102:1624:b0:4b2:5c4b:55e7 with SMTP id ada2fe7eead31-4b3d106a3a0mr20605136137.25.1736849815484; Tue, 14 Jan 2025 02:16:55 -0800 (PST) Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com. [209.85.222.47]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4b6091dab0asm4560031137.27.2025.01.14.02.16.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Jan 2025 02:16:55 -0800 (PST) Received: by mail-ua1-f47.google.com with SMTP id a1e0cc1a2514c-85c4d855fafso1032131241.2 for ; Tue, 14 Jan 2025 02:16:55 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUUjPlaSDVL+6ttOijwZLYLp90JgE05T3+lNiL0OhTEOcwsft/zWrhnBt4jDL81yQMA+eKvKRYgRQ==@kvack.org X-Received: by 2002:a67:bc13:0:b0:4b2:48cc:5c5a with SMTP id ada2fe7eead31-4b3d0fc71c8mr16262110137.15.1736849815073; Tue, 14 Jan 2025 02:16:55 -0800 (PST) MIME-Version: 1.0 References: <20241204134410.1161769-2-dev@lankhorst.se> <20241204143112.1250983-1-dev@lankhorst.se> In-Reply-To: <20241204143112.1250983-1-dev@lankhorst.se> From: Geert Uytterhoeven Date: Tue, 14 Jan 2025 11:16:43 +0100 X-Gmail-Original-Message-ID: X-Gm-Features: AbW1kvYN2hMkKdNHoOg7qKlEDQuu9LKu80dYH1lZ12dEe-3ZNi_7PkuNI0fGm04 Message-ID: Subject: Re: [PATCH v2.1 1/1] kernel/cgroup: Add "dmem" memory accounting cgroup To: Maarten Lankhorst Cc: linux-kernel@vger.kernel.org, intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Tejun Heo , Zefan Li , Johannes Weiner , Andrew Morton , Friedrich Vock , Maxime Ripard , cgroups@vger.kernel.org, linux-mm@kvack.org, Maarten Lankhorst Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 07C4212000E X-Rspamd-Server: rspam12 X-Stat-Signature: m1axafncxwmht9d577uqqkux7hpdch6h X-Rspam-User: X-HE-Tag: 1736849816-265423 X-HE-Meta: U2FsdGVkX1/8aStS6nb0MYtargceNHz6tZAAGGYuQ47DNyywCPy+vg025zkw7/Cj5bAdSoF5GPyt+E9t3Hosw5lGNvLZDaU3PG8lhqybS4QHuAIDCy9MsfOsyxUFErK2Y573nJjx6f2k3RwVjlE9OZsOsIFVVcMpJxLdDkQfuKFFyJgVdGnA8aZl4L2pp4FMmQHy6suF3U9V5XvGin1yVBaSXOXS4fIXIUWOAxRK8rNHTPAPn2YQeA/3igd5tMlhhx2IPzwJXd5jESTr8d6uhhEloLZ6LNXcudvezHOUTkIZ4QnwOBlkCIMosOSdCLo7xMC+Ku7HMz/vr4ESSBZuKVJshS0aey45RImmGpHet89OU+gjCXBoH4gU3f5ybV+KMBLDbsBdqpYs6nCnECacNDAoMnTeUtYfyQfIWLwJ0SPNd3BzDqn31xYu+DQqwwNJ6txnXfQQqRPmb+PtvZ347Ctix7PTxLNB+YTP2z15HSqKdivc7s/vfkjIp33ATNqftgml/nV1bgX7LQPQrzHJm0GvSTf7HP3km3SCF6CtulGtTGtOQ2yl4QAcFojUawQa7uKdUwMX2VM5h+USyYQry2o5TM/MAoAVirpQh7u7GBQIoOfy2H6mJsAN1O8DpW1FZWK1lUBajKFrMxBiv21f3J8FcEnmTbnQIrhes/aqf8mM3RK8BxqgoN7aX6EsVfiuyC9cvqeTNGs7Yqz2hX/azEzwNbImWdXKpljQ9Peuo3NLFqLTdQBU4bN1yHHBDQtjCUCDuDp9XEcSMAkO5OcZo+o/OaSDX+ESzzcrTEJqS+p61qzXiYNONHKFEmlb3wTeUH6FH8ThNv59keAUEodDfx3mXpAG8f7bhl6UBFXzLwC0atOuo9gEjIHw4+6YKvQ5B8RfzDrTVlg2I89vE5PrGaYiVX3rKhIMH0BfHzqrRGdu0PMOLu/43w1xyjvi23JmFvxnDTO1beDrg1cL1TS ZV7l5yce QG0FUhqxwEf43zMsiP4EFPZ57dJDmPR+SVoE/VMcR7n+eLqBrf9oVkLu+JRg0tMDVl13QtSZtFoIYgUqBGJ7GLdGPEwJu+g3yoykPr/RgRoCjLd7j1KzUb3bX79esy5uIwxMoG1s71gSH9RNtyIO20K4KiOIZjNOaT9OULJlwAN5GGweh75A8SzAtJO2VkJdRYtiWc9i74PjdY8Gxjo3r2tI9rQXS5ZTVpTPLAJ+w70f67CEp0/dBH2YwqKZf9JKHljGcgS804X/PbpsonRSpkZzEVMJO3lijpfFWnkoYECvNpCOt+fN4fCRkkwiI7rAspP9+YjgZ1cUXSaXIzwhvxOLoV0yiY81tlFf92s9JQfy1MIUton47ZicH9RY2WVwO6vnFiowOcKbkdkLEq5Zpdbj/QqOgaLXSz5DKDJRNximG64I= 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: Hi Maarten, On Wed, Dec 4, 2024 at 3:32=E2=80=AFPM Maarten Lankhorst = wrote: > This code is based on the RDMA and misc cgroup initially, but now > uses page_counter. It uses the same min/low/max semantics as the memory > cgroup as a result. > > There's a small mismatch as TTM uses u64, and page_counter long pages. > In practice it's not a problem. 32-bits systems don't really come with > >=3D4GB cards and as long as we're consistently wrong with units, it's > fine. The device page size may not be in the same units as kernel page > size, and each region might also have a different page size (VRAM vs GART > for example). > > The interface is simple: > - Call dmem_cgroup_register_region() > - Use dmem_cgroup_try_charge to check if you can allocate a chunk of memo= ry, > use dmem_cgroup__uncharge when freeing it. This may return an error cod= e, > or -EAGAIN when the cgroup limit is reached. In that case a reference > to the limiting pool is returned. > - The limiting cs can be used as compare function for > dmem_cgroup_state_evict_valuable. > - After having evicted enough, drop reference to limiting cs with > dmem_cgroup_pool_state_put. > > This API allows you to limit device resources with cgroups. > You can see the supported cards in /sys/fs/cgroup/dmem.capacity > You need to echo +dmem to cgroup.subtree_control, and then you can > partition device memory. > > Co-developed-by: Friedrich Vock > Signed-off-by: Friedrich Vock > Co-developed-by: Maxime Ripard > Signed-off-by: Maxime Ripard > Signed-off-by: Maarten Lankhorst Thanks for your patch, which is now commit b168ed458ddecc17 ("kernel/cgroup: Add "dmem" memory accounting cgroup") in drm/drm-next. > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1128,6 +1128,7 @@ config CGROUP_PIDS > > config CGROUP_RDMA > bool "RDMA controller" > + select PAGE_COUNTER This change looks unrelated? Oh, reading your response to the build error, this should have been below? > help > Provides enforcement of RDMA resources defined by IB stack. > It is fairly easy for consumers to exhaust RDMA resources, whic= h > @@ -1136,6 +1137,15 @@ config CGROUP_RDMA > Attaching processes with active RDMA resources to the cgroup > hierarchy is allowed even if can cross the hierarchy's limit. > > +config CGROUP_DMEM > + bool "Device memory controller (DMEM)" > + help > + The DMEM controller allows compatible devices to restrict devic= e > + memory usage based on the cgroup hierarchy. > + > + As an example, it allows you to restrict VRAM usage for applica= tions > + in the DRM subsystem. > + Do you envision other users than DRM? Perhaps this should depend on DRM for now? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k= .org In personal conversations with technical people, I call myself a hacker. Bu= t when I'm talking to journalists I just say "programmer" or something like t= hat. -- Linus Torvalds