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 C0D09C77B61 for ; Tue, 28 Mar 2023 12:40:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 37CAE6B0072; Tue, 28 Mar 2023 08:40:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 32CA06B0074; Tue, 28 Mar 2023 08:40:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1F4B26B0075; Tue, 28 Mar 2023 08:40:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0D6DE6B0072 for ; Tue, 28 Mar 2023 08:40:40 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BB7E180975 for ; Tue, 28 Mar 2023 12:40:39 +0000 (UTC) X-FDA: 80618265798.28.212AE87 Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) by imf09.hostedemail.com (Postfix) with ESMTP id B7F2E14001D for ; Tue, 28 Mar 2023 12:40:37 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="XeB/xdjf"; spf=pass (imf09.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.173 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680007237; 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=JQvGHzQ+Wj6h0GZci6E4OJ3p7YN4IspLtSyoRGDx948=; b=QPHS7Gc/EU4W+wwUCk3uDw1gT4lwKIJCruOc37/w/fnyB4OLfrwWXxq4JSfmltA4YpAHUs u0qy7JopoFz11bzp+3aZpctkQdQqpbDa9sjv1oZKbR64jkDbTJxT5M4sv8o5f/eB0Dkful aZN/Nm3krql+weuSMpXJq/1Eqjwm5FM= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b="XeB/xdjf"; spf=pass (imf09.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.173 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680007237; a=rsa-sha256; cv=none; b=f6+1UdAjRHkMAoy9CsBWDNlvF25ne8yuCDC9xXRAmcUz/rcx2tt91i0kBQkr1N9Y6ECH7l TcS1RidYFDbbn8f/it9DMzp/YGJaI+dqN4Fs9MgZUbISGF+9/PfpISVU17AvPJnU9LIuEN JJGRdnh9rLSVpadYqgtxRzy4fG/T1os= Received: by mail-lj1-f173.google.com with SMTP id q14so12367152ljm.11 for ; Tue, 28 Mar 2023 05:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680007236; 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=JQvGHzQ+Wj6h0GZci6E4OJ3p7YN4IspLtSyoRGDx948=; b=XeB/xdjfocDtQOXVJOQ1qYz1GTmks1YyJw2oeNFVZaprZvJZ5r9OiTyw/3OmU4+l8J SvgKkL7/42lZhZYAV2j6Kex/+LbwuslmmYVT1bGzXMf5VT0v8EV4PKppYvpxThTssrfG 0LDZjkhq88y0yIzdHqkTzgJbWVXxKZrGxpqN/w9Swr5+R9dpT1OVrjAPNOD5ri4bz9cZ qtE6BEIJl7G3BgHWQN6TXJLVidQWU+JdS6hMpTkuAGMdXCQACO0KZiLphDYfBp5+FUCi kqRwDbBE+LD9KWN/6Q0hOwByp2P25HUAo1GotTfS/mOK44zK3dfYxYGfpJ4nCP1P4Hjy poZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680007236; 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=JQvGHzQ+Wj6h0GZci6E4OJ3p7YN4IspLtSyoRGDx948=; b=ralwvzAFYzZMod/sGVBsvPUfvAHSWIsp88/XA2gBcg9tUzsgvQHalCVLMAqwefAZsd KKE5ZQzY7vfFrrIMnySqiJwAQPrwPWZQQsFjzzsCUpEkNl+8FUTVR/29pMWNVWAh+Wd6 dKKEEyNtMUFOVjutw3Hn48hgeuNg8CXl4fRVKkFPec2+3EN80a378hOjTa6/5EPHzQRM ETyEoPkTNBMyuT2U7UBdfDYh3TVFxGZL4G8KeIyJ8vj+ln/WwPzkLEgyICOBxaZd1Wu9 7I4ciK8TwR86NMV7Lm+Zy4/1nEvHqWQzkt0zOI1She3yz24eUrBA0l+rmYJhmSfbrE6R TBUw== X-Gm-Message-State: AAQBX9f1LPonSK8hmmTmyD7Kt4+CSGwOONheqWLXQQ9HtYSz7DQ7PGOy jNBox04MU/w1yesbwF5YhMI= X-Google-Smtp-Source: AKy350Z1a8irWZjaLN9fUZq6p+NEYF5IRs+Vqh6pkF+dTZfIO4NprtYcjMWtQw3iKObYVa37gX6fJA== X-Received: by 2002:a2e:9455:0:b0:29c:8a05:1a38 with SMTP id o21-20020a2e9455000000b0029c8a051a38mr4539691ljh.30.1680007236070; Tue, 28 Mar 2023 05:40:36 -0700 (PDT) Received: from pc636 (host-90-233-209-50.mobileonline.telia.com. [90.233.209.50]) by smtp.gmail.com with ESMTPSA id r9-20020a2e80c9000000b0029573844d03sm4896655ljg.109.2023.03.28.05.40.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Mar 2023 05:40:35 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Tue, 28 Mar 2023 14:40:33 +0200 To: Dave Chinner Cc: Uladzislau Rezki , Lorenzo Stoakes , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton , Baoquan He , 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> <20230328025327.GB3222767@dread.disaster.area> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230328025327.GB3222767@dread.disaster.area> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B7F2E14001D X-Rspam-User: X-Stat-Signature: 9d693f3ausa3ibb764c7nheygetac85f X-HE-Tag: 1680007237-810991 X-HE-Meta: U2FsdGVkX19R8pIEONLAaNgsV4oPwDDa8RnKuXWhR3HwbTG92zoaKmbIg4oWGHrkqG50KdFEq09PhEugFVlynkFPxBIHrUkKoE4+QQ40kKKIufC1OShDUldHon/5/PlfPkv0mjXOrzxO8jRCq/j41sbNTEH/25RevZTD7tvdtm56SBWHDxAq0mj0NWpDSs6fZst2JDEKQTU1N5p5S7+eIyIoXfoJceKclmT4yT1NpI6+X3UXKCEZebHhfDakeVM+scCzb9NlQ0Lb1D8JBxlTd1RhlX4E2eJTG2Gu6F2YOo/nKWync1CjfgveL4re+Thm0Liv0S2KRC4UjE3CN5JeVBT/L5NfO/i4pLJLEm/lN9tOIv0p4DBYx+yurfa65XOeCkdpNSI1yrSk+tyOM+xnRhHcQvDoce2ypeWgzS5PcNzH7M1sc56qfO5nIMMJcJ72Ji7/8bgiU3TLxQBiL6aWYr9wG45Sn0Ytd25Yq3x42OYahuDXfuBjenoZjTnD6tVqYSRa0ckCWMHcwSYaqzna41cfNxqdCRRMTAErLF76Ci+vlfjQOE+sSh/eVj8gOe8eL5EkqxC3ogG24Vwpa5hjhgU8ncnps64J3n/AuGuGoAj8iQHuYFrEasQiK362xLB/lxE8YKs9kxze5qBv7rqOCDC0xvY5Dy80MhJshlhJp6nt0JriGMVDuhXuts5sSrHqc3E9Ajl2zK5WE+XJQSF2y8Gkr/5ORjy5vvX/Z7oJDmcr79UsBrzbWjdg/hXYwt/KfoviM3pkJaaIRm0y1f4c2v1XUEZWCXl8zDOvarHUWNjW25iDE8fNOx/YQsXuCHrlPStmgrmlogeVeqiOm58nmm0coVPDZza56PhTMVsl6oER/u/b/FrxAFVBTqnb5ccXMR2ZHllmiROHAspD1g0n16qKzJ18tvjmCuWFsDxFVYcPpp5gBB+OfHT58sPfdGbzbTl+Grxm+9URYnrx8sP KsYBqcnC o25lUWmE+ReCFoTN0+oKn46Vtp1Fd57FBG5eaDbpahW3rkTuqMJq6LkzRLKfBLEFKj7bJvky9jiM9ClMFjIKpzC3yA5trOq5QrJBjKjmUpJQQXEazG2AYPbrXLiYmJSE1d5Tv4PvxqfjLFxwss+NOdTNALUX8CvJz3AJNlWoLlQHjkYYhCPqlupT9chSHEtO19kyyAbms2VPHTeTUF8q4JxG3VTEm0KffvKddEB0NybCuQbC7nvdsVK+EtfmcTKYOUEfT+NDfljtP83Yz4/kaB2KfbsQg+B+AygsiNncsLW7YaRwk5lii2TTyFOGzd003YkcPmOPya60aitG5Dj5XhcAsH+YbWnVTvwL0k6fkrAoTAfdSYmMlGruIc/ZNInfrpgZuyZgn5NE6bVauqOlmNBa7gogSgxQeCaW1moLnjMSdUCwh3AZLuNyw94B6mqvbpjUrcMaFTs7mZNTrsilWlzkMOFUvWAlywFAGWqDMEUcLe/qegGVs6MQASw== 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, Mar 28, 2023 at 01:53:27PM +1100, Dave Chinner wrote: > On Mon, Mar 27, 2023 at 07:22:44PM +0200, Uladzislau Rezki wrote: > > > So, this patch open codes the kvmalloc() in the commit path to have > > > the above described behaviour. The result is we more than halve the > > > CPU time spend doing kvmalloc() in this path and transaction commits > > > with 64kB objects in them more than doubles. i.e. we get ~5x > > > reduction in CPU usage per costly-sized kvmalloc() invocation and > > > the profile looks like this: > > > > > > - 37.60% xlog_cil_commit > > > 16.01% memcpy_erms > > > - 8.45% __kmalloc > > > - 8.04% kmalloc_order_trace > > > - 8.03% kmalloc_order > > > - 7.93% alloc_pages > > > - 7.90% __alloc_pages > > > - 4.05% __alloc_pages_slowpath.constprop.0 > > > - 2.18% get_page_from_freelist > > > - 1.77% wake_all_kswapds > > > .... > > > - __wake_up_common_lock > > > - 0.94% _raw_spin_lock_irqsave > > > - 3.72% get_page_from_freelist > > > - 2.43% _raw_spin_lock_irqsave > > > - 5.72% vmalloc > > > - 5.72% __vmalloc_node_range > > > - 4.81% __get_vm_area_node.constprop.0 > > > - 3.26% alloc_vmap_area > > > - 2.52% _raw_spin_lock > > > - 1.46% _raw_spin_lock > > > 0.56% __alloc_pages_bulk > > > - 4.66% kvfree > > > - 3.25% vfree > > OK, i see. I tried to use the fs_mark in different configurations. For > > example: > > > > > > time fs_mark -D 10000 -S0 -n 100000 -s 0 -L 32 -d ./scratch/0 -d ./scratch/1 -d ./scratch/2 \ > > -d ./scratch/3 -d ./scratch/4 -d ./scratch/5 -d ./scratch/6 -d ./scratch/7 -d ./scratch/8 \ > > -d ./scratch/9 -d ./scratch/10 -d ./scratch/11 -d ./scratch/12 -d ./scratch/13 \ > > -d ./scratch/14 -d ./scratch/15 -t 64 -F > > > > > > But i did not manage to trigger xlog_cil_commit() to fallback to vmalloc > > code. I think i should reduce an amount of memory on my kvm-pc and > > repeat the tests! > > Simple way of doing is to use directory blocks that are larger than > page size: > > mkfs.xfs -n size=64k .... > > We can hit that path in other ways - large attributes will hit it in > the attr buffer allocation path, enabling the new attribute > intent-based logging mode will hit it in the xlog_cil_commit path as > well. IIRC, the above profile comes from the latter case, creating > lots of zero length files with 64kB xattrs attached via fsmark. > Good. Thank you that is useful. -- Uladzislau Rezki