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 07A07C4706C for ; Sat, 13 Jan 2024 09:24:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 848F16B0096; Sat, 13 Jan 2024 04:24:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7F9ED6B0099; Sat, 13 Jan 2024 04:24:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6C1496B009A; Sat, 13 Jan 2024 04:24:13 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5E20F6B0096 for ; Sat, 13 Jan 2024 04:24:13 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 2D7EF140572 for ; Sat, 13 Jan 2024 09:24:13 +0000 (UTC) X-FDA: 81673751586.25.621E543 Received: from mail-ua1-f43.google.com (mail-ua1-f43.google.com [209.85.222.43]) by imf22.hostedemail.com (Postfix) with ESMTP id 6E0A7C000B for ; Sat, 13 Jan 2024 09:24:10 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GEguTbiQ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of elver@google.com designates 209.85.222.43 as permitted sender) smtp.mailfrom=elver@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705137850; 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=mG8ngPgKidpc6DG7VcOonL9w+Hnp78zOGjk/tfdl9Tw=; b=eZJfMy76He1oJ0DexrlEKjQpy3aHKVcRB93lyTVBxHWGEZurd1svVqFavgnoAx/tCftrgr Xpl0Lzmh5RibTPPPwqpDEG8JHI8fkkBRcGxvHVSvSqaKMcIY8dzIyGZmoE0a44oFxa8sxi AjuF11+rUljxJXBhFQ9OJ/DC9f+kj3o= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GEguTbiQ; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of elver@google.com designates 209.85.222.43 as permitted sender) smtp.mailfrom=elver@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705137850; a=rsa-sha256; cv=none; b=EECemvhN5B3D7UXC6/smEI+22iMO5iimvmvR2IzXmIfRxdy2O04yTMjaOsffP5nHZOlACm AHdPZCsbBLDXdYD5F70/uvs4eqe7AnqW5KKRv816jymny2Qysg+KFLMcF7Cw0UXW6gSURX /pEZiXJUoAtPYWpLN4lvx/anTIZ6KdY= Received: by mail-ua1-f43.google.com with SMTP id a1e0cc1a2514c-7ce9defc4c2so917274241.0 for ; Sat, 13 Jan 2024 01:24:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1705137849; x=1705742649; 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=mG8ngPgKidpc6DG7VcOonL9w+Hnp78zOGjk/tfdl9Tw=; b=GEguTbiQN1q98k8bRlVzhtsRpwrMhwyWY06eEfsLr9rHMf5tDsdN6V8QzqH0NZ0ehj 16mf57GKHzy28R3R9C9aBTsZN+S0bfGGlreIrTcDB9UnT0gSrk5vkPseK7cTTPh2jZfh 9QEbOiVrDvPRT9SzC16vxsffzrdhF3TbTtdDeSwEl/E6u5Y0fOv+43iDryFU17qYfv7i L43+wAGTRjFDzmDbb01XGMaLxaLE1HxHKfju9WD161H8rUvppZbBaegI+dF7VjYSYJIw tbg70c2tGTobE810RkPWmZqA+ofdGbLn5BQzlgwKtgFGQKi4rt4zk+sLibWaKlQpZH02 Bt4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705137849; x=1705742649; 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=mG8ngPgKidpc6DG7VcOonL9w+Hnp78zOGjk/tfdl9Tw=; b=VHBAv+a2E6/sNdELjTnMtuJDKWkAUaGv38rfGIpaZS4sBUPhIYlAWsSaC+fbRJgJjA nLA4Fe4x/fCAbErYYWfgrpOjPr+HaUGAdyErapR42YRPKlm7BGdz7fa/ZF4MnSVo2VWJ pqPTmhMVZ3qbqPVrHcsJLHM/ka3+EZoreFecFNb8uiZNECXmqPGhCaXY8qKlpSPAeoY8 +ILw7SqYQhCk1lTS0wghxEvrm++ZPSXPj4+Ieft4SPTro7lJUTAvzkpUgHYOJu2mMuBL qJiX+Yf/7p9kVKNEWcLU3vkWRNGl+DI0ghZHrW0LfUPX7X6itQa8f3JG0HwPA+7jC5am AawA== X-Gm-Message-State: AOJu0YwPEIrxd7GQSBy3tBz64Y0EPlXGYZ0JkBufXmetllMo5O92bL23 ox+YxCxN+/OP1oyJhbDPHJV6Bcgw/xyzrY4qSAAUZtUBPHR3 X-Google-Smtp-Source: AGHT+IHQmzh1pZteKXgvH8dJwsS4sgNEfW4HehyT02ehbFX36vyKPNHczzlDSgTkhiJtalxLJyxvkky7vwxMGQoFV4s= X-Received: by 2002:a05:6122:4308:b0:4b6:f1e0:956 with SMTP id cp8-20020a056122430800b004b6f1e00956mr1346224vkb.17.1705137849491; Sat, 13 Jan 2024 01:24:09 -0800 (PST) MIME-Version: 1.0 References: <87sf34lrn3.fsf@linux.intel.com> In-Reply-To: From: Marco Elver Date: Sat, 13 Jan 2024 10:23:31 +0100 Message-ID: Subject: Re: [PATCH v4 12/22] lib/stackdepot: use read/write lock To: Andi Kleen Cc: Andrey Konovalov , Oscar Salvador , andrey.konovalov@linux.dev, Andrew Morton , Alexander Potapenko , Dmitry Vyukov , Vlastimil Babka , kasan-dev@googlegroups.com, Evgenii Stepanov , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 6E0A7C000B X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: tqxgz7pmfrgax48zcmbifr14wigthk7d X-HE-Tag: 1705137850-845170 X-HE-Meta: U2FsdGVkX19Xg8iT8+Q0Ek7dIB2rAtFp19dOmEOM47CeUZDpmeLOPdQIr+Fi81N5dCycV6Os0Pu8fGVqeMMoikPoqpN2p/7Ww1MooH5etzWNqwkGvwRNL3X/tcy5HPuqSsT9+PjJE4cIW8M0SPCsi/0hW7EcqJMwzGh696Y/+sLHgou/vICoEiEkEl9JvJIrvPUwB3SHP4GmK9L0PNTPn0Q1tq3ebpjSUoiB95t2IywGvEy5LeW+3haO/kqee76Kp+6yh+I/L8Vm9LqVcd2mzHTLANLOU6W0zjZ1LpiojYT+ai9PqnRAFhO68rP7E/jCnmvMIPXXwWKicFYq08RjZEoFZCnaJUbQuN1fHQLlIu+htlRjDtSyxfG3Hf539pqzmcyKbvJQdQ8xU4DPyV91wCGFg4s9+Y+gyoZAYhmir8JwauKi1/Mz9BhBrTncezeAJ7KSe+2+rWAznHj57S4q8iI3rMJ7YuOUmn8CmJrLdyF8xrQCBEcmUQNKlDVvl4f1PMS+3JPA1YXqaNVj6w57EgWhzlmdBi9LmmLcW9Ihe9rfsSzx0GEwcs/P8EZ40vQdDTMcMTZmSJe94L02qLlIUWscUGLQVqR41EuXTK6NehFRuSCpLLtbkxv8wxeq2IR2r1R+fAzWGgL50aeXg/StCPAUC2EDbqYjnXDPkR6/pOp1HsKL1nGyare/sQWLJyqa1dliV+AIatbxKpcWKMCQecmShudr8FtWRjzwUS8bDBUtHsWCU1ECkWA3JT7ruTkoJFgdYJCLqwgDHoOzWsKcEgvt5PCgwUYKBo2al8i9vLoMv7uZ6UeIxOajAMTXsxDAkngcq9cfJDaErYlMJ9bP10eCoXJ2P161/kl4xVHbYVJ+jMiCXYQlpfH8hRuA5rJGNYtDJORc0uAYMB1pr0vw2GB8nEpT/JlSOVjXfiSqUVcbhPVHYVqPaM9LtxO6omGb4pixacX+nMTNgfciAxR Bt+H3w2G KlGVTEVTaylphWYG6sszIJD4l3Xgojyu8NkV0MCrHPChcf58gE2KUQ2XC/aCVkrWDjZluhvJwgx94JW2Xa9G2nZDhB+0E/Z6n6i+GC/xDuc2dvBUkuFLiW3N9lYpZkOneel9dr6ymKg2/inEsPLvIz+7SwnijibTzS+htiXPrEXaihgI1joAqsSBi1nfc2RroZyvXhw18sKZuZ/J7xU79Rbyou0HoEJR0wWZWKoJj2LfsF/YjnbrcJbRnxQ== 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 Sat, 13 Jan 2024 at 10:19, Andi Kleen wrote: > > On Sat, Jan 13, 2024 at 10:12:21AM +0100, Marco Elver wrote: > > On Sat, 13 Jan 2024 at 02:24, Andi Kleen wrote: > > > > > > On Fri, Jan 12, 2024 at 11:15:05PM +0100, Marco Elver wrote: > > > > + /* > > > > + * Stack traces of size 0 are never saved, and we can simply use > > > > + * the size field as an indicator if this is a new unused stack > > > > + * record in the freelist. > > > > + */ > > > > + stack->size = 0; > > > > > > I would use WRITE_ONCE here too, at least for TSan. > > > > This is written with the pool_lock held. > > ...which doesn't help because the readers don't take it? This function is only refilling the freelist. Readers don't see it yet because it's in none of the hash table buckets. The freelist is only ever accessed under the lock. Once an entry is allocated from the freelist, its size is overwritten with something non-zero (since it then contains a stack trace). Those updates are released into the right hash table bucket with list_add_rcu() (which implies a release). Am I missing something else?