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 E614EC6FD1D for ; Tue, 21 Mar 2023 01:09:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 43DCA6B0075; Mon, 20 Mar 2023 21:09:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3EE236B0078; Mon, 20 Mar 2023 21:09:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B5C76B007B; Mon, 20 Mar 2023 21:09:21 -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 17C3F6B0075 for ; Mon, 20 Mar 2023 21:09:21 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DF793AB81D for ; Tue, 21 Mar 2023 01:09:20 +0000 (UTC) X-FDA: 80591122080.25.C4740BD Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) by imf13.hostedemail.com (Postfix) with ESMTP id D840D2000B for ; Tue, 21 Mar 2023 01:09:17 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=fromorbit-com.20210112.gappssmtp.com header.s=20210112 header.b=2j9RQkll; spf=pass (imf13.hostedemail.com: domain of david@fromorbit.com designates 209.85.216.54 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679360958; 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=ard8tYEtuim88umne0gyaePxSaABF63V8F0JJy1BBA8=; b=F3alkInpashgcb3HbLwgoN4/g/1bJTiVNTzCIkHzXpi28P48cyOlGqHUcFDLCb+jjuJo5f Kw2jE48KR92JBL/a6tN5HpAGigsuzw2q1qarRhAvlQe1kxfwRv0Ki1NeEdDH7JdutiY5HV 7WWTBkvKLoMM94TN9tUt/a5dP9Mokkg= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=fromorbit-com.20210112.gappssmtp.com header.s=20210112 header.b=2j9RQkll; spf=pass (imf13.hostedemail.com: domain of david@fromorbit.com designates 209.85.216.54 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679360958; a=rsa-sha256; cv=none; b=A/cqOSoQHFAvv8CjU5okaxSAi2J+Ck8+2+7SUlWqf21mIhZSUFbDdRG+d54aG06cVJ4mou cuNk0tLLS37jq7QqSqpolRpbGSdimw+o/MISb3H99/b2sKhVsHWbWIRi11H8UUSb5p3l+B h1ESnjftiUu2qoFUqvysVrEaOZ/x6II= Received: by mail-pj1-f54.google.com with SMTP id j3-20020a17090adc8300b0023d09aea4a6so18473195pjv.5 for ; Mon, 20 Mar 2023 18:09:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20210112.gappssmtp.com; s=20210112; t=1679360957; 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=ard8tYEtuim88umne0gyaePxSaABF63V8F0JJy1BBA8=; b=2j9RQkllMk34kvITCdHHjbV+9is81Ls1mIfbwpFF0L5ntmfjrZkH3/NfJCdQkerk9F 9jB+kVCeIcfsN4zSQqa7P/4mc6GGhWbZgjj6RwGJlqMG1cieO7aTZXyE505+yaBuKcCF T2Yy3ULdf0DVv5/fivzuhR2U2Uuuk556TlrBmuHg4esUEOa37J8uO1DpHIFXInGDsXGZ uYUtaGTC4eyXjOo8Rrrnys7rGvTdpncaLTgYaT5qYQ1UpcpK7eMmgHj5YfTLC7lpcrNu V427PnGRswjr8vdYxpl88XyC2Dqm2bCZiquR+94YqMrYGWDEN8Fu9BrhRowl4HCQjO67 qUdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679360957; 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=ard8tYEtuim88umne0gyaePxSaABF63V8F0JJy1BBA8=; b=dTdmEkoLU+OXnCUvN1KlM3NL4EKizQDD2E1CJomixaqwdp3q6UD0HODvIj5ceBcDvf GaX1viX6S6Haa1IZGwkJhket1CuzGH/s1Q8qN7azogXORcDGUPcAnptl6wOGQT09Qd6Z phsR7N0gODqulJfYQleXDxss1idhs/gtDGXOwZ4PVEyesEdbQ3chkXZtrmhX8c1v63l2 pzDLa9aaAizMj28UajUEd0mIjB7C49I2bgYqmBiJnb2yXjnE3Jx8kMSF6u5X3lNEUfCf LFMFgV7JoYvGah8TR13uWgp5+PiuOsyl5wilzGBc4Q1G7Xj0tUzCE9LwRASoNLz0PZi5 vzbA== X-Gm-Message-State: AO0yUKXxj5EzkSffjWcgWc0TUWNGw8s/ejKyAcXKn36VXHmpdIBa82vN S3rSfMzH2mI/votPFChlHt6mmMzaYqU7xkWpaEc= X-Google-Smtp-Source: AK7set+UOYEWRVZ3UVEikJR6Cx2WhJxXds4/6C4hRFkW/myx6zHNT32/ivnnzhI1BkOCjTw/kBkjRw== X-Received: by 2002:a17:902:d48c:b0:1a0:57df:861c with SMTP id c12-20020a170902d48c00b001a057df861cmr16695481plg.1.1679360956742; Mon, 20 Mar 2023 18:09:16 -0700 (PDT) Received: from destitution (pa49-196-94-140.pa.vic.optusnet.com.au. [49.196.94.140]) by smtp.gmail.com with ESMTPSA id j4-20020a170903028400b0019a723a831dsm7344655plr.158.2023.03.20.18.09.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 18:09:16 -0700 (PDT) Received: from dave by destitution with local (Exim 4.96) (envelope-from ) id 1peQUy-000WO0-0v; Tue, 21 Mar 2023 12:09:12 +1100 Date: Tue, 21 Mar 2023 12:09:12 +1100 From: Dave Chinner To: Lorenzo Stoakes Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton , Baoquan He , Uladzislau Rezki , Matthew Wilcox , David Hildenbrand , Liu Shixin , Jiri Olsa Subject: Re: [PATCH v2 2/4] mm: vmalloc: use rwsem, mutex for vmap_area_lock and vmap_block->lock Message-ID: References: <6c7f1ac0aeb55faaa46a09108d3999e4595870d9.1679209395.git.lstoakes@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6c7f1ac0aeb55faaa46a09108d3999e4595870d9.1679209395.git.lstoakes@gmail.com> X-Rspamd-Queue-Id: D840D2000B X-Stat-Signature: 5y1qyp5gh1wk8nzb94d85raht8kspia9 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1679360957-108687 X-HE-Meta: U2FsdGVkX1/4YTEAk89k5Q2QZKeuPQbgsp7DsNslFxf73r5yMixA0oaaeUK+5Hi0thZodiTyTaf9VGt/+f8+o2JwBAqTrstPrYVL/jc3VrWy28VRcdvBeD/cTKkfRKhCE3s44t8Ugx91iLuOYkLM29sx5ej2mD6P7MhW4PbsA5MWiYslc4Mvtw23RmCJXUG1CDo0kC/h+r0mQxXrcnyRUhOwNp86hRkeQYWWA4hzslWeAQ+aw0s4T6AAGvTdopO5RHFbdGi44JQsnnrw8YEwaaLAmSdWnmoI6Y/ICFM/UqYl+UgqwZ4K6Ukxa5033J9ZmRk8QQOJUk/Q/3aRAP1lycBw9a/b5uB3q0H/oz2GRN7v6l0ntHTRQuKVj6FfxftuqM2ASVeXUaURovw5PtqJksLzzd40Aaa5rFOBO0s94shklv0uJMf+7O8DcKn3HxkK38ZQ0sJ49biJ8xdPmrD/Lab39px1gVgpc9dhA4Ur8TAX1p4a7YXKB4OcmpsgZbINSQHHsqLNIJYVfFygi4RLljU1b+IPaJaRz0eqjybVJrXTVfCOl2SyDNdo3Ntt6nNQrwJpjTX+yB33NO2jUsTYnDO8Oye2r2yw0qGyM8tUDdxhO+1yfnk27Nvqqq8H6nNhuv6KUWlwv0GIvtBW8a3ptM89e9PyG2CaN5+PBNbnozgvjrk/8EYYKfjCt/Cx7vCMBxnpIK07L5SvfiL/pWiH5xzawDtwHrcmQsWrBUsxkeXpcJJwhCPybz7k0lqAQoyDzh2OGVFEeg4BUTEJUK7hq2wHqLF1VGpzHylmlnCO2m1HCptbQCDetUk2XQIdxHlF1n4zhFI/Ct4NtH2xH0OczUxsOotdQUH6fq/jDb4Fm0qJZWrHVuTA+Bom+LeZhUecTWiA6ecTsWIbOpoBGquxtC32X/kfda2HiV0WEiAGjPviozgAddkGJcJAPm93VlqiMosBI/qikM209FbYruA y7qrflbT cw8Tgpv81hLqiIR0LnemEVbRpgiShqbL4vfLrzUwfPv7vtVNWdYBgi+6npFPibNimHbL8TD8eq8nPFdRr3HYdp9hh9556+IIWuG65xCwVTA5jPZNvl4NRzEFv4vc/JuoVekqnBzKmAzvQV6JFwojk+QLQuHXQxZ9TqWnmmIiVyIrSGM0HCTtovR3wba8NT2GSURdcFDuOh7y9xrqFY4kSq4xN2c3LERDPgqAHhGsmk2As/8953Vzg4No1JmVdCALXhVEjRHEfOeYZ40W3krzgrLH70z5GnDBLdwCyWaldAToORxQA0l5gwOkbptQ5QkDE3SqYSmRInmNw4RZoHcutVo8jgiFRliKnswCp0L+9OtDY0lrilugPNAABRC9oH9W3FCIvUl1ISBfDE/8+EWpVh9+5uQ281SzlVA+YvLVPjBDW1g9j2QGLMaPgmcO0z5R0brrNu8VnlMquYh1cm7Ac1WLs0bwtf6Lyv12IE5WukTbw4etVISzVu4tAETsRFbGtfFoO0UZp0c/leiqBtXF47v58z0p1HeXW8eWfu/k2Wh2U/X8= 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 Sun, Mar 19, 2023 at 07:09:31AM +0000, Lorenzo Stoakes wrote: > vmalloc() is, by design, not permitted to be used in atomic context and > already contains components which may sleep, so avoiding spin locks is not > a problem from the perspective of atomic context. > > The global vmap_area_lock is held when the red/black tree rooted in > vmap_are_root is accessed and thus is rather long-held and under > potentially high contention. It is likely to be under contention for reads > rather than write, so replace it with a rwsem. > > Each individual vmap_block->lock is likely to be held for less time but > under low contention, so a mutex is not an outrageous choice here. > > A subset of test_vmalloc.sh performance results:- > > fix_size_alloc_test 0.40% > full_fit_alloc_test 2.08% > long_busy_list_alloc_test 0.34% > random_size_alloc_test -0.25% > random_size_align_alloc_test 0.06% > ... > all tests cycles 0.2% > > This represents a tiny reduction in performance that sits barely above > noise. I'm travelling right now, but give me a few days and I'll test this against the XFS workloads that hammer the global vmalloc spin lock really, really badly. XFS can use vm_map_ram and vmalloc really heavily for metadata buffers and hit the global spin lock from every CPU in the system at the same time (i.e. highly concurrent workloads). vmalloc is also heavily used in the hottest path throught the journal where we process and calculate delta changes to several million items every second, again spread across every CPU in the system at the same time. We really need the global spinlock to go away completely, but in the mean time a shared read lock should help a little bit.... -Dave. -- Dave Chinner david@fromorbit.com