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 A1ECBC77B7A for ; Wed, 24 May 2023 09:15:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 42E3D280006; Wed, 24 May 2023 05:15:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E82C900003; Wed, 24 May 2023 05:15:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 25841280006; Wed, 24 May 2023 05:15:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 0C6AA900003 for ; Wed, 24 May 2023 05:15:13 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D2FE2C08E8 for ; Wed, 24 May 2023 09:15:12 +0000 (UTC) X-FDA: 80824589664.12.6F04F75 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by imf21.hostedemail.com (Postfix) with ESMTP id B6FDB1C0012 for ; Wed, 24 May 2023 09:15:10 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=nZF+rQEu; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.53 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684919710; 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=li0QrU1GtBMn3HF/Uxjoz5+FMQKq7Iu1Agtr+loSfWQ=; b=cIJj36D+LWqQf17qmAZUjFyKC85uapz54eiDdt6nG99+hX9i7v0iXAu9uaFFK8UPAcJ/VW FVYyg88fijmKorKOYR44BGKD7npYfw0q7z+dU1dNT2k97sIUXlm8s7iPF4FtlyH0i0rGVe UmgfHwuYWgjEVFzuEY8ey6rXztp+Iw4= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=nZF+rQEu; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.53 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684919710; a=rsa-sha256; cv=none; b=nwLg+v5S8qJ/eVmswZv+sk6akzLDtWKeD3lRtquLPiLkhQmU1k7dKZ0PP+lgYk6QgQiy7n JTNfmfNKy8781qZM1fYFtPNuzbto1Y7nYaHgfy18gdEArD8WQAi6HRYMqArA4ioEJYjL9p N7y/InAPEAqfdg8noPaFOW0t5Xmtiv0= Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-4f3a166f8e9so625755e87.0 for ; Wed, 24 May 2023 02:15:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684919709; x=1687511709; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=li0QrU1GtBMn3HF/Uxjoz5+FMQKq7Iu1Agtr+loSfWQ=; b=nZF+rQEuHm5toD4MS7v/YqL4qLs5BQa21S12dKkKvXcXriUJpX50nZgOaZrIEPjvul 7wB607BW4YYTl0QNNTqYpnAzGcM3DvQiblpYC5ZSzILZBk1weuJoS/Feg1cPJB5Hh11t f7TD1e9lN4GEvqpqMu79/Gtj3PWEw7quF3iYN2wR60o0Iv96UB5Lcoyz+VZgxuLqC3ai dscVz5ZItxaMmS2NCIbfz+cF62LmNTcwYDuluFuXVZoNUZKcnPk+Idin3w87TgejGspK RqVY+nL6ZBkXE4eA2o3UwD0gBpAlkmKet59iAAfMR7QpGntdvWO7eJvw5ua2vXmWGfNe 4NFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684919709; x=1687511709; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=li0QrU1GtBMn3HF/Uxjoz5+FMQKq7Iu1Agtr+loSfWQ=; b=Jqbh1RAAteBJuHMBuheaOC159fB/znWd3mnuSQFT/cq85Vd63O8Cy3LmE4RpvgU5NR CD75/Pr9QAS8A24BSWyCSC5k9HqBkJbZCi/gBrHWm5nbciZyXBpg09ncbqzT652Ls9DA rAUEP2aP8nDMqXbp+3gD1pe9YSClSCnEAzjd/jTvA3RZyacAOvSLPbSo2bpf9xMiMOVf UIdBZtKSkZpt0YxYctDH1jj6yLOBwRAUfw2gZie9KSRpjmigic7MTukelZp18e7NsWkz 6S491iwCYf2S5APP+/t5oa7821T5FRQ9cQjlUG2xjrTIT8X8sHsHJoVg3X85+iQd0wqf 0oiA== X-Gm-Message-State: AC+VfDzyTh2aVW7iG+4CPTD7CwtcKyExF1eQEcHic2lPnKGwPizyn/rk 66EYrwJIU/OMD9gFs8SyHnU= X-Google-Smtp-Source: ACHHUZ5/wdSWAIlbirlP23eRF+7CxAnHkXPnrhYsw6LP9VzKBtw9lEcRxbkjqcrmcgLsu1N6E/lJ+Q== X-Received: by 2002:a05:6512:2353:b0:4f4:bc6a:aa85 with SMTP id p19-20020a056512235300b004f4bc6aaa85mr1589561lfu.3.1684919708541; Wed, 24 May 2023 02:15:08 -0700 (PDT) Received: from pc636 (host-90-235-19-70.mobileonline.telia.com. [90.235.19.70]) by smtp.gmail.com with ESMTPSA id o28-20020ac2495c000000b004ef92c6e645sm1634413lfi.263.2023.05.24.02.15.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 May 2023 02:15:08 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Wed, 24 May 2023 11:15:05 +0200 To: Thomas Gleixner Cc: linux-mm@kvack.org, Andrew Morton , Christoph Hellwig , Uladzislau Rezki , Lorenzo Stoakes , Peter Zijlstra , Baoquan He Subject: Re: [patch 5/6] mm/vmalloc: Add missing READ/WRITE_ONCE() annotations Message-ID: References: <20230523135902.517032811@linutronix.de> <20230523140002.799808756@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230523140002.799808756@linutronix.de> X-Rspamd-Queue-Id: B6FDB1C0012 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: s1qoftpfcm44x53aztbyebc1txinuu9i X-HE-Tag: 1684919710-667156 X-HE-Meta: U2FsdGVkX1+SbloJfX5Ku+8HJPJEuzf0DZT/lDkCGjsNLWvfgtmCqfsw9iE63HISWO+jaeG0WiCGNrUyqc7hTt/Ka3dKCVFAxCNmoQxdGw7zIU9FpQDb81O5P+WWoQcDwy7uIYGrKphGxKp3n4sHvwQ69+DdRdLlEtC2MinC3XLcLA5p3UPGXOpTYZYjiBUW6z9OpLXZRyjvnog1Z8intNALUDGmV+nrpznOROtUGVLNs1xlqR2CnwfG2K080kzvoHQEeBtvLF74BtRAQqWBJVdi7AXF7BoeeP/8wnpdkM0+pcoDS2r9Y/nCH474f6KiNigelrrnnsEGc7OaSAPVNnGxKElQjl5VM+rCtZ9waLBQN1jl80whnz9lhg61KbwtJYVvJvBlz4E6pagtXzuG31zGKB7p//aJbZsoTZ5+eV7I6XdF1P5dAtA3vZNrlVEfALg4wqgnxredNbIC4B4/VhGy8winExpkSz9cMfMPT1Gf9bCfaJIN5km3Kjo8xID8FHKkOOD3LK14ayiaLgYIo5l6Q6nqwxFCgtD8y1EcFjKhpTu5PkIjaAvVsm44FtI8s2Slr8M0noTOfYTJeaxVPVUpkD1D9+xZPiX7mA/75ir1kvzb041CW9fhRKiuq0BKZ1XG+pcxBIXeIfzmPRHxmDplQXXUftiJrzEyB/P9b2z3dB5btvTskZpyU5imeuYsq8WhYna7GHIErnpDKwW/IDO7B86gKKyqjw4Wwku7efeADUUUY6O5r0ji7jHmkjy+E4YA6OgvJFoX9k0gSv2xFaaKy0yxLMcmqY2Q+8NZzpGQW+fAam4Wmi6Sd7tKAKe99FyHRUTC9VSRFnhKFTjlVYId06QBrtbzuZPkP0iZkBXNpeFeKn23RkMaSVd+3aRvFLKG/vKyMjdI24X9YtlLqmTtarSwvV++REXPDEmDlWvdEcY/z+Goz4v4kP6l87zszd7wIuuL0tx2uCHW3IM wz08y1eu 90QCuxkWzkMTKx6pY4DsiOZe4uZLeXZTeSKyciKEYV/ULRlEVCSOcSdL8WdecbReYv5sSEnOg57B/WHCHh3jmU167DH6C6BCOjEUDF9Y2Xu2fVoBckrqSggpA7yfQ5+5bNO32x9k31xrBaHW/3iv6wWdZ5TIiiMOTTyO4MqgbEkdar9QAGTRGl3R3je2uQe7rnS1ZTidmwJIeX4zIqxghtoaYn7uyhViQu7urvpOGVgmKjR5+DxWhpRgyK0549+/MwksU5mrB7RTk9XgEV8yQKQvJBVzGue2LpFIZAGul69BnmJzZNaMfmVv7bWxtU1KPm7uiQdi/wD2IQZrQgLyadg5A3bt6twOr3h9t/DdYmWl6pmb5EZXIiUTB+g735UveOuVlIbc2djSuS+RPevTXGcEWlgRUhf5qG5DVTFSca+3U2SSIiP/YVc94VYRJK6o75N6v7P7UF5M2abFlixB8JmfSX0dxG8NIZiA0TzVts+hIi1G3y5oYdi++Fw== 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: On Tue, May 23, 2023 at 04:02:15PM +0200, Thomas Gleixner wrote: > purge_fragmented_blocks() accesses vmap_block::free and vmap_block::dirty > lockless for a quick check. > > Add the missing READ/WRITE_ONCE() annotations. > > Signed-off-by: Thomas Gleixner > --- > mm/vmalloc.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -2093,9 +2093,9 @@ static bool purge_fragmented_block(struc > return false; > > /* prevent further allocs after releasing lock */ > - vb->free = 0; > + WRITE_ONCE(vb->free, 0); > /* prevent purging it again */ > - vb->dirty = VMAP_BBMAP_BITS; > + WRITE_ONCE(vb->dirty, VMAP_BBMAP_BITS); > vb->dirty_min = 0; > vb->dirty_max = VMAP_BBMAP_BITS; > spin_lock(&vbq->lock); > @@ -2123,7 +2123,10 @@ static void purge_fragmented_blocks(int > > rcu_read_lock(); > list_for_each_entry_rcu(vb, &vbq->free, free_list) { > - if (!(vb->free + vb->dirty == VMAP_BBMAP_BITS && vb->dirty != VMAP_BBMAP_BITS)) > + unsigned long free = READ_ONCE(vb->free); > + unsigned long dirty = READ_ONCE(vb->dirty); > + > + if (!(free + dirty == VMAP_BBMAP_BITS && dirty != VMAP_BBMAP_BITS)) > continue; > > spin_lock(&vb->lock); > @@ -2231,7 +2234,7 @@ static void vb_free(unsigned long addr, > vb->dirty_min = min(vb->dirty_min, offset); > vb->dirty_max = max(vb->dirty_max, offset + (1UL << order)); > > - vb->dirty += 1UL << order; > + WRITE_ONCE(vb->dirty, vb->dirty + (1UL << order)); > if (vb->dirty == VMAP_BBMAP_BITS) { > BUG_ON(vb->free); > spin_unlock(&vb->lock); > Reviewed-by: Uladzislau Rezki (Sony) -- Uladzislau Rezki