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 7857EC54E68 for ; Tue, 19 Mar 2024 23:24:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE9246B0088; Tue, 19 Mar 2024 19:24:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D97F56B0089; Tue, 19 Mar 2024 19:24:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C86ED6B008A; Tue, 19 Mar 2024 19:24:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B99756B0088 for ; Tue, 19 Mar 2024 19:24:39 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 74C06C0C49 for ; Tue, 19 Mar 2024 23:24:39 +0000 (UTC) X-FDA: 81915370278.23.0D9DFEF Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf25.hostedemail.com (Postfix) with ESMTP id 4F52CA0019 for ; Tue, 19 Mar 2024 23:24:35 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="fVe21I7/"; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710890676; 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=92S4tfax916iNYmisw89+bixhhyHew1EHLjOb6NFPUo=; b=a2Db1X2jPgQzFD1BowR5yy+IIAaFEaNK1TGhM7TQ9k4v+mbb9o1X+bv4WJC9iKWNip4PGz wNchJaGs8/R3dqjmm06WxMF+ic7HCgKwqC1h0w6rJ8Gpu10lVzLaXqGt5LpbqpAuEIRec3 tUDYX6Ec9slUh0iDS9tPilG/+H9uyL4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710890676; a=rsa-sha256; cv=none; b=qQ0p34P26nOlixPIRy1o5dFQ2spdRkjk+H5XzOX6yKCYlUfoSYSEYrgNxGAVk/mAtRoaSb nqcQDfwY2psRwHJ/gymJ35hTeOD11wJLz7wLuESXfHQr+sz+sovD9Gnu8HtbxOaWkBCZla hE5ojYqoIekELCL3pFa3QD0q8DRLZYc= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="fVe21I7/"; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 41939CE0F88; Tue, 19 Mar 2024 23:24:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DFA5C433F1; Tue, 19 Mar 2024 23:24:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1710890671; bh=W0aPdR/diOGHsmOKFCEcwEf5899ewqDXOmarYwURMdE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=fVe21I7/rxcH7jmAQgQcOZN9JifKbY3RhgUPXm/lz/KA/zjy+uEAh3fju4mUOrgcS y4jA5pJT/g1cyjQMBVE81tcMGRsihZGT63XwsSYaAI7CTgrDm2Jxjh+zDDH1vOcOQm IP4d9VWN63ZvSxUUaiEtOxla4t+XzDi6Q46MsiI4= Date: Tue, 19 Mar 2024 16:24:30 -0700 From: Andrew Morton To: Oscar Salvador Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Michal Hocko , Vlastimil Babka , Marco Elver , Andrey Konovalov , Alexander Potapenko , Tetsuo Handa , syzbot+41bbfdb8d41003d12c0f@syzkaller.appspotmail.com Subject: Re: [PATCH v2 1/2] mm,page_owner: Fix refcount imbalance Message-Id: <20240319162430.3e76504d06f12edc107029a4@linux-foundation.org> In-Reply-To: <20240319183212.17156-2-osalvador@suse.de> References: <20240319183212.17156-1-osalvador@suse.de> <20240319183212.17156-2-osalvador@suse.de> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: a3qcd7wcoqpqf319cbasj1hz4jnfiz8b X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4F52CA0019 X-Rspam-User: X-HE-Tag: 1710890675-529352 X-HE-Meta: U2FsdGVkX19G7jR+aGboQoxajPbbz4SwM8Ir9AjQ3QOLTqcF7Hi4dTgTlmOmKBU9g2gXJDSsIbcprE6d2Z6CRDEJmIXfp2SU+Sh2qegtTYTI/0rZajDkR5ZvfZ6fBDuPy9DDmKxdSrpIycfl+wquDw4Icnqan4UulHDrRgoVJ65sYAxOvtt+OxNr0Rdg0LpTva9dHLnXt6eww+oOnLp08qO6E4qWyz8RZD6w8RKvMQwL3JwchJsYyaS528Wqb+L04q6ykdfN7pEM5VKrx2pbxOLPCirdkFgimxjNX1wH8XEXHegvtkfkBcLn9vbLDzqN2iFZ477TsIhl8EPT6Fvce5D+/MOzl8AqsB+qTzjFjJCTNhtauUZWm2Og7kNEsQdS2tcpaeT0OzAEr6Yoty+V0EI4/KK2PD7dqNaCTyFIB3lM3jK86SxlDAMPMqasrEKgRBB19PVpFzw5SWyi8JybJwiP9xfXZMUwCGRPivnAidxkbTD3l3Q6SZ7aXj33u5G5uGc39kW5sPNHapWX6YmFxzcKGMX7GSkQqtbvuBUxXv0gOFPht0OyXlW/7t1BselRqyLGsYx4ousT8NY6RnduWIR3ODd0K5NwCuT9u4evuWRo1rxSJ0MkuWpDHFH4bGM/nnBUScqJDjl+eQ0FRBBeUEbxxmxXQqbLaDG4XUkCvpwJftE9u1fAEKOLDy/GNtavdPt+VOvL8ln6ht84Z5n0xyE8FSfRC8T9OPwsvuSjIJeycX4J8IMYOMaWA2QwGbr8cAm8gNrMrYLCJtIjFKXvp/IeUW4omxkNyem73SiEKSMIP+fJ9GuLLJob7zRW5VCfYKoTmUrcb6v7+gx91O0Sq4Lo+5aaAOBtbsK5Rwul3hzB8u0FRWaDmAOtJ2piCGVUsQe/9q5boysW5Ty6ZhUS1BUng5ZSfO2tFIILUBX0yH4HqrzTN1poiwYbhNEeRLqF79DFisHo/wG1RA1ITmX KZNpVSyJ vWaoi6p0kAUBc0DUk9Z7/RsPktCikmFgxPTqD3uymO2D/55pZY6zeWpdYwY37p1KVPA2X/PzcRFfWMz0ssENHcEKznTlCtCFM7td+1s5gATdLK4/63kNy3jHYbONJurUwW/OTVFF5UWWKPf5J+BqsdLe8yi/2bWSeeS3MK44yp0wUS9G1UAY3teeaBtfz9QMyeS4aMMUkD3Q8PhCaTCWIOxTW1hGQJSj4h9JKktRmxgrCwuu0YaPcRsKJIwVKwvGqgy04ZFFyqZTr3JWeyYfPaJOI2xtbYdz+dm5AQrxZdEKYlDUNUbXYRuFi9JUiQnPk0Qt9hl6MDFOD/3ie8bm77ml7GhQ8qISHp8fZrsHgkfCz43iSySmXsAnIYw== 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 Tue, 19 Mar 2024 19:32:11 +0100 Oscar Salvador wrote: > Current code does not contemplate scenarios were an allocation and > free operation on the same pages do not handle it in the same amount > at once. > To give an example, page_alloc_exact(), where we will allocate a page > of enough order to stafisfy the size request, but we will free the > remainings right away. > > In the above example, we will increment the stack_record refcount > only once, but we will decrease it the same number of times as number > of unused pages we have to free. > This will lead to a warning because of refcount imbalance. > > Fix this by recording the number of base pages in the refcount field. > > ... > > -static void dec_stack_record_count(depot_stack_handle_t handle) > +static void dec_stack_record_count(depot_stack_handle_t handle, > + int nr_base_pages) > { > struct stack_record *stack_record = __stack_depot_get_stack_record(handle); > > if (stack_record) > - refcount_dec(&stack_record->count); > + refcount_sub_and_test(nr_base_pages, &stack_record->count); > } mm/page_owner.c: In function 'dec_stack_record_count': mm/page_owner.c:226:17: error: ignoring return value of 'refcount_sub_and_test' declared with attribute 'warn_unused_result' [-Werror=unused-result] 226 | refcount_sub_and_test(nr_base_pages, &stack_record->count); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors