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 C4EE9C77B75 for ; Tue, 23 May 2023 16:17:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 13E0E900004; Tue, 23 May 2023 12:17:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0EE93900002; Tue, 23 May 2023 12:17:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF88A900004; Tue, 23 May 2023 12:17:46 -0400 (EDT) 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 E0893900002 for ; Tue, 23 May 2023 12:17:46 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A53BA8074B for ; Tue, 23 May 2023 16:17:46 +0000 (UTC) X-FDA: 80822025732.04.751D0D5 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf28.hostedemail.com (Postfix) with ESMTP id 9BEAFC0010 for ; Tue, 23 May 2023 16:17:44 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=T2Y7px2u; dkim=pass header.d=linutronix.de header.s=2020e header.b=xUygupps; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf28.hostedemail.com: domain of tglx@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=tglx@linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684858664; 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=TPrmCqWJ3OCwQoq1CHyC1lQcCBX9kDrPJKlVVO4/3zs=; b=IyevHBiDYdqWl0RWharZjAlPythz2FEGh1E2TAm6FD9uiAE5sPQISbk9/ujNrGd0IZe7OC OE0THLC2+aY67q0lWv/yuzq9cmPNCS50bLlW30K8np6ydFS0V/UMeI3e3GyfpDHd9oUCLo 0Kx5krz3UykSH/5JKVPR8b4Rk+KFve4= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=T2Y7px2u; dkim=pass header.d=linutronix.de header.s=2020e header.b=xUygupps; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf28.hostedemail.com: domain of tglx@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=tglx@linutronix.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684858664; a=rsa-sha256; cv=none; b=WBVTFbkS1vwK5iwrKdGMhQ4RucSGtpoliyeK4+V4sLioNxgObENpLFTTI7NCPzVQ6CNJ3C 6kqW9X24NqyuwBtIlTM8PvM3KHOn5OxIyAxQXlKKFJak7qfzP6nwkRYOtSgIJWV9Q/tFfb XaIzDPyrkGMsELV+xE/hjykz0/kmRBg= From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1684858662; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=TPrmCqWJ3OCwQoq1CHyC1lQcCBX9kDrPJKlVVO4/3zs=; b=T2Y7px2upn4AE5/ABZ1Xgn1P2F3x/aGDap24xKrjoEfFD89t4L0fF/fN0HonuPyJD+56vK wPnY+y3c0zBwGcEtK/ci3nbzA44jpY4B8FudEnNXrRhKK6OoONWjonB6cAX9DppDZdFhAn ZitdD/Q5TNfbhBSPoFnYB2vFSRgmCCofpHVltsi2XyxaMfS4Q7VzOT71kiihK7/9dusbbS w16Rok0+wouB1CLbdXap7nRZsApULZmW1FG/A66pksSFL35ac/wfetgu0O0U72MjQ7USzq Uk2FzA+XCUgFpC5wnxFU4C+SET07dDIaZarpxSMgoza5LrR2jQQeIDyCZ9em7Q== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1684858662; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=TPrmCqWJ3OCwQoq1CHyC1lQcCBX9kDrPJKlVVO4/3zs=; b=xUygupps7LPqHcVe5BS0zzym5YXohqajNzes+YQfUCkofAtWSP5RJjSGg9ShnQgEI0pRjX JRw9ePqGI6oPhiDQ== To: Christoph Hellwig Cc: linux-mm@kvack.org, Andrew Morton , Christoph Hellwig , Uladzislau Rezki , Lorenzo Stoakes , Peter Zijlstra , Baoquan He Subject: Re: [patch 4/6] mm/vmalloc: Check free space in vmap_block lockless In-Reply-To: <20230523152939.GD12341@lst.de> References: <20230523135902.517032811@linutronix.de> <20230523140002.747157575@linutronix.de> <20230523152939.GD12341@lst.de> Date: Tue, 23 May 2023 18:17:42 +0200 Message-ID: <87edn7uimx.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: 9BEAFC0010 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: ts9ttz86eqxgxu4ycb7wcssud6f13hh9 X-HE-Tag: 1684858664-412991 X-HE-Meta: U2FsdGVkX19N5mFF3n7lYQmL85TCt3F1XRm2gnlYtlGzzaNqptbNxMt1n6qFaFM/zkYl2WAgNa5csbLlo9ffaXMtsqVTN9zIePUybxVuFwRRE3cz5GocISpgZTOaaQdKrOmQcfORSU7PDr4RA0Nmm5vGBovtfqYxc3pvVkabp27Ux8DYzSXzzgslQZxSwB6E8jb7+jgdIx8TDbLVTrtAjygsOtYamvW227q8KrneGVz592Svg1BeFOXXR4gufBZnvVA7OMajehxC4ZOZ5qm2fsxngvpzdv7u/fFVx9rfWZnb9FEMlY64cq4SB89WLZpih1w0VEZ3jCGx99rrZoxH00+2VdhGdthgr7Redd6ESWY2WVIicKUeyCepTbpZnvAaoNJOXLVZ0gylX8K2SpjDSbYBlaMYyzn1CEUXmsQdhhrrEze1kEQj/uLNXUlNg4k+eciupzpQqrWtAeEKBej4OlbVMt7a2trRRmGiWphqpVq7I+s5z+CDK2SDgQHLGyi9mjM+rXO6e+cd7WOT1S8qt8OOMsc7D0mWcSi4uX7kTPEIAl1eFjXcmjEclae6QLlClProSzdWNpemSo/C6P86hRhhHnC0vt511GqL27+HaAile8Dvq/UG26+BJDiOCVGt0uiSyxWT87gS8EtqOg6Z1swlzX0OvADg3gKYKue28l5I6d/uLSGgqBmo+YXzbnK2asHZINFPfb3qoH6rUnuqGTRKaLm9J22/tbjF3SpGDUbuXKHl/gthaCnV3QUKspzEjRINsYtQK9nf1PDy3ksEXq5L9HjBOH7vKxyuTCVNUQeQunkEUENfcGdazbjlmSrYIiUfFTx0yNY0v1Vn4weSRS9j+9ZxFEljVrdTzmX2j8yU5Q5vAX6a1oNCm3+MLDUNXVMdKcyL3zGgHlmprVIGHIJooX5Bsebps4dlBYN243eth+5hxmArqyr4rky4Z8+VGLjj9JyD/pvAc5+6bfw UeXHZmmq BHr5Z2BSrLsJCDprbn6/sLkMcx5+yUGA3VhV0avyuTvO3FihdA0PNXDBjSpTMogbZel1K9VN7jirTASPKJtc2JrQ/R+4wQiig93fYtYDITIYpm/01ift52dsi0w== 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 17:29, Christoph Hellwig wrote: > On Tue, May 23, 2023 at 04:02:14PM +0200, Thomas Gleixner wrote: >> + if (READ_ONCE(vb->free) < (1UL << order)) >> + continue; >> + >> spin_lock(&vb->lock); >> if (vb->free < (1UL << order)) { >> spin_unlock(&vb->lock); >> @@ -2174,7 +2177,7 @@ static void *vb_alloc(unsigned long size >> >> pages_off = VMAP_BBMAP_BITS - vb->free; >> vaddr = vmap_block_vaddr(vb->va->va_start, pages_off); >> - vb->free -= 1UL << order; >> + WRITE_ONCE(vb->free, vb->free - (1UL << order)); > > Maybe just a matter of preference, but wouldn't an atomic_t be > better here? We'd have another locked instruction in the alloc > path, but I always find the READ_ONCE/WRITE_ONCE usage a bit > fragile that I'd rather reserve them to well documented hot > path code. I don't see a problem with these lockless quickchecks, especially not in this particular case, but no strong opinion either. Thanks tglx