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 6370DE77180 for ; Thu, 12 Dec 2024 12:26:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C8E226B008C; Thu, 12 Dec 2024 07:26:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C17CB6B0093; Thu, 12 Dec 2024 07:26:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ABA166B0095; Thu, 12 Dec 2024 07:26:40 -0500 (EST) 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 8EF106B008C for ; Thu, 12 Dec 2024 07:26:40 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 355AFC1C08 for ; Thu, 12 Dec 2024 12:26:40 +0000 (UTC) X-FDA: 82886229804.10.16EFA26 Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by imf30.hostedemail.com (Postfix) with ESMTP id B71EE80004 for ; Thu, 12 Dec 2024 12:25:51 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=e5H6id3c; spf=pass (imf30.hostedemail.com: domain of mhocko@suse.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734006382; 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=BMW58xtFVKDI069GjXZg2dD8GBgbY07ZYprS8XRa5kc=; b=Y8cRhRSUT/TVb3PWuH5GWWn6RtjBqS/kWfO5YxSciRdxrBTjHNo7MSSBhtZ7YjTwqFdVCR aHKVKjMP2tL3aTFB8gbK6nUh8ASPX2NJb5DBpmCeETXllflP25m4NC7IPM+hLdDVfqo4rR dgcP7DYJUVZ8PER54E5hpJjLL7u+oxM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734006382; a=rsa-sha256; cv=none; b=GQDfdHi5h3q2445YGJIgsCpNXTlDOpOHSbhxicSMV9oZDVeMUCOBMok3z7bqpqwF1WCtUM 6b0+rmDQXj0zPVat8a3y96PAEzIaW3jBkz+AqZJWiswhxcw4kg47jPDAfmfvWo0E6zegjg X/6yRhhmpvVp0axGmeMdidzU68UG2XI= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=e5H6id3c; spf=pass (imf30.hostedemail.com: domain of mhocko@suse.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com Received: by mail-wr1-f52.google.com with SMTP id ffacd0b85a97d-3862b40a6e0so278513f8f.0 for ; Thu, 12 Dec 2024 04:26:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1734006396; x=1734611196; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=BMW58xtFVKDI069GjXZg2dD8GBgbY07ZYprS8XRa5kc=; b=e5H6id3ce5rlzz5/Oa9TNz5/e4SQ3uN/6niBNMnXjHTmqfrIGOI1pwFtQoDq/fnrsK lb0cUUwxJ8zW0QBBeUmp69lXXvvWNrM1VSCfjViGH76bJF3TNgMEyHyzCblgiR6yTr9a L5yGOimRF3xVxJYfyVVRjKq+UyDCN2yLr9vI6Wwg+I48VkNmICOLVNi1yIdVE2+k2LgF tVIiN/8nfDGbn79DqefSL+ahls2ob521AT6ddF8EzBZ1t02m+vBgkkmZh+8ybfg34r68 eJOjHE+U5RjZM4pp9KbRKj9DPLj4f+jCaZ9VWs8iL9PNn0mEQLDUOU4gx/1LVvnn5VXl QHxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734006396; x=1734611196; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BMW58xtFVKDI069GjXZg2dD8GBgbY07ZYprS8XRa5kc=; b=X0G0MF1lsesudakqSW0HNGly2Bh+427OlPlvby0ZizKuwXuf5oY3D4H4IKmNk4xg+g VQ+raJgtcr0DQ4JT6ffARDvKtk7QGyqoJFaM5HfGNFPG9qB7AMv772Wv1r0QTMH8i/DP oLDpbOoQO6e9RrzY1c07h+ku5cO+iz67cBSth3TSDYBvaZcruawlnATv4tjzPECWTFyP i2TDOfSRZ+zOtX3KAU43uHNevtIjdsY8EPqQ+n4IUICfC0H6hwVfD8Zyfkk1hXkZKcGJ Ij6d1NxFWbrucEu9rqxyn67z+f3x08PFtaPODdv9fo0jvf1LwOp4cKq7mZPpFlBYuN00 jgbA== X-Forwarded-Encrypted: i=1; AJvYcCUgGe+53mQsqp/aretoy2qyRuNp6VYP1X8GsCPhapZMJTcA2A/TuUH/xGFaWLNBU6qhUq66nW86fA==@kvack.org X-Gm-Message-State: AOJu0YwsOtavYzYYIHGpE8nINxlDF74w+9dpi0IakzH1F+GPNNR2QJ+h RDKmt7l3fdJEJIpmh6hfzVMV5L0yTC6agd8GndoGlp8tE7WmZglkbKV4SonYpcY= X-Gm-Gg: ASbGncsaObtikzMe2yDnxqy/slYv8BjjJ8USGOxkUtH8i0sBMS6j+1LLEAaevg8nSly NNr1+7d8rsoNr9ycv8T9vW0a6CZCex2uOO86Xanna+lZNQvOjE6vQ/5wKeUBYzZ2RN1tc7N4dp8 S1KwDwNcgvWXdPh/Tfsw7k1tp1cdXw/qGgLVzsEZ0hhrj+aMDHk7pbPeYoNQxumx5wWFn7754AC bXAu4NJiXkstQqwvn2PErei1Ub40yWOJr6C6NgfEX3wOC8= X-Google-Smtp-Source: AGHT+IG4/pMDJNly6UpcXjj9YqlCTPXUKoKZr4j95kG0fcImiNV2JPjd07+8pLaKIe3xJptBa0NikQ== X-Received: by 2002:a05:6000:410f:b0:385:f2a2:50df with SMTP id ffacd0b85a97d-3864cea200amr4204805f8f.27.1734006396535; Thu, 12 Dec 2024 04:26:36 -0800 (PST) Received: from localhost ([193.86.92.181]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4362559ed8dsm15780115e9.23.2024.12.12.04.26.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Dec 2024 04:26:36 -0800 (PST) Date: Thu, 12 Dec 2024 13:26:35 +0100 From: Michal Hocko To: "Matthew Wilcox (Oracle)" Cc: Andrew Morton , Christoph Hellwig , linux-mm@kvack.org, Johannes Weiner , Roman Gushchin , Shakeel Butt , Muchun Song , cgroups@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v3] vmalloc: Fix accounting with i915 Message-ID: References: <20241211202538.168311-1-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241211202538.168311-1-willy@infradead.org> X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B71EE80004 X-Stat-Signature: zcmcqqfb958mdua58idugtaothkkuu73 X-Rspam-User: X-HE-Tag: 1734006351-848955 X-HE-Meta: U2FsdGVkX197yfqoDMJuQAAGpa0b2lInhi4x3/H0Olz216ZpFrUmfOCO00wR2BKATfseBtJwgEIrLi7lsIb9v4z09Ty6/lOl5TaV9MxRMGrWB7HiU5EIDalgzfhGr8iVDe686dR78EzPIMrzfbsSG+ZM7+bxQhw66quyE2CyYFLafbQtEKF+Mxxv9xoM4cHMTyBEoIBYDfM4nJtT+94eWDA5LV78dbxq4CaHGklVLmjZHkDY+nzW01J2sW18wJXajtkLuBuZgfrpulJFya5h2KbznXO8txUKYlmpxpIbDBF1f6lUyDc2gwbxYEORWDlPkhM+Dgb5RxwQ5nli18DWRGscSgrD+o8RWoTJ0whoJeIVRJ5QNa5+ZglHUwEU13BsyIO/rkL/eCVAFartpo+30oUmMmDTEgB5uq6Qi/08wL7/UvlBDDgRKYi4MtZO67hTfCeBnpyQ1w9FOv+cKjOfHYl9nR46Vgy0zZFff3g4xwg0McdMnEq9BVgA7exTLKOkuvrwSRoRyidznR2sSv3T9lQPrDXL5tik/W9ku1rCSyb7VjrX9eyPIWsKb4aklSprRzd8Q9HvAyQkOcvbqJz/WHBBCDxCqY2LeShDuBCt+w2usHeqXpy/Nfj0VSedzPpmrWD8RdcPgHk5Mma0PZQsFXEgTYPIOBhB9SZ3q4cuqHByUpGbZSoAw+T1HcuFYwpIPEDq+SYU8g7M6ngXXKDl+38qn+4K5DO//9Fu8jBSaUKWgC+6/4PaD1OO/+e95VlNA3hkBUW2vgoFUIOL+P7SqrhZ34UfgrApKmsqUFEx0SOrc1JHNPsjmco887XY0m1p83bnmYlHHsbwSoq43WfLdQ3W3WImkyPIbJJTpWLzIHUWYdaKX/bky3I19i1zZt/JJtaIcwhJ2IDvEw/jxBGJ8Xno4Vv1FUX9losDPFMnGGHdQ8OOKC4K63VWZt0Xmf/xBk5opByZGWBczTjWT3t mZ8yrSeK P7RCtRTWHrXzcqHGZ/BlSPCBTIoYvn0pOHGqeqfLDNuFj+oTuktFHI/crkoZkegwXObsL6F5sXUo+hU8AcXoQkBdkYUmbDCWrpkikq7DFqoz4FX01BwXSaOvogAXDBSIFPxJ/HQWYGJyT7/OmtoPtzlqPW42TurPt1KaX29xlX+c/FaQGVwlT82u6iIAfbsgG/KHX3mTFvFrAyFsPuF/WbBxSzZdLh9xcQnwwp/c5JFLWyqgGetriG2gswdAGJrwSHHX9MwVVzSdByV0UcPN0dLKK/9emujatnTayD61Gjn9Z6bP3JSK2QbYNOsTWIuy/1RZR1G8VO4qfu2Fri1Nrog6/5AFvmZIEiSVECQF3eZRp3OcYNBzBrlka7XHrPTX2KZhIWxY77dD20e6K3f7d1Hg39XSrWdjjubW/vlBcOlQ0rQzzNinI2J9I5L8TCx8VtJS2+VOzzcssFDawDaQ/cV4PzbDfCgQBAlC7s8u0S1lMfqotavSQG1kQ1VvgoOaDkPWU 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 11-12-24 20:25:37, Matthew Wilcox wrote: > If the caller of vmap() specifies VM_MAP_PUT_PAGES (currently only the > i915 driver), we will decrement nr_vmalloc_pages and MEMCG_VMALLOC in > vfree(). These counters are incremented by vmalloc() but not by vmap() > so this will cause an underflow. Check the VM_MAP_PUT_PAGES flag before > decrementing either counter. > > Fixes: b944afc9d64d (mm: add a VM_MAP_PUT_PAGES flag for vmap) > Cc: stable@vger.kernel.org > Signed-off-by: Matthew Wilcox (Oracle) > Acked-by: Johannes Weiner Acked-by: Michal Hocko Thanks! > --- > mm/vmalloc.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index f009b21705c1..5c88d0e90c20 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -3374,7 +3374,8 @@ void vfree(const void *addr) > struct page *page = vm->pages[i]; > > BUG_ON(!page); > - mod_memcg_page_state(page, MEMCG_VMALLOC, -1); > + if (!(vm->flags & VM_MAP_PUT_PAGES)) > + mod_memcg_page_state(page, MEMCG_VMALLOC, -1); > /* > * High-order allocs for huge vmallocs are split, so > * can be freed as an array of order-0 allocations > @@ -3382,7 +3383,8 @@ void vfree(const void *addr) > __free_page(page); > cond_resched(); > } > - atomic_long_sub(vm->nr_pages, &nr_vmalloc_pages); > + if (!(vm->flags & VM_MAP_PUT_PAGES)) > + atomic_long_sub(vm->nr_pages, &nr_vmalloc_pages); > kvfree(vm->pages); > kfree(vm); > } > -- > 2.45.2 -- Michal Hocko SUSE Labs