From patchwork Wed May 17 08:58:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244464 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 64AFDC77B75 for ; Wed, 17 May 2023 08:58:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B0FC3900006; Wed, 17 May 2023 04:58:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ABDCE280001; Wed, 17 May 2023 04:58:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E7D490000A; Wed, 17 May 2023 04:58:52 -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 810C2900006 for ; Wed, 17 May 2023 04:58:52 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5790D804B4 for ; Wed, 17 May 2023 08:58:52 +0000 (UTC) X-FDA: 80799146904.04.7C77801 Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by imf11.hostedemail.com (Postfix) with ESMTP id 82C5D40013 for ; Wed, 17 May 2023 08:58:50 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=QkYpZT6J; spf=pass (imf11.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.170 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313930; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dHQ/4wRfx8YGBT0TyL6p3b/Q07WGij+qVhIqIOji5co=; b=7xJB14DHYlkZJ6jfJAZSaxLxpkkcLJqxgfwDMJNJAwyznQMA0PDsSxpdz2j1NAI/zh9l8b zJ67hY5Agnqd5bgHwh11f1iYhQlrcsy+oQ1KrzXmhh0mZn+1HMUyEycKzu/sF7iU9w/dn8 zfTh7N5PQFiz4uOqv04oGvHsANgr9Jo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313930; a=rsa-sha256; cv=none; b=TIosx+LIJ7SwfJ2IcztWKMALlf86Dan+4LWCSpX/mwEbpuc5SM5QbfUnyvDFOSn3H4w9Wg HWlZvq8bWXO9BNkQFBw4LNhopHqqDYpRvs8RPydIGCh41j4phQ0Fuami1D6aCZqN5opG2B 4jRT0jYTvOog+b76hOaM0ooB2UOcJhs= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=QkYpZT6J; spf=pass (imf11.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.170 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pg1-f170.google.com with SMTP id 41be03b00d2f7-53404873a19so298420a12.3 for ; Wed, 17 May 2023 01:58:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313929; x=1686905929; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dHQ/4wRfx8YGBT0TyL6p3b/Q07WGij+qVhIqIOji5co=; b=QkYpZT6JTZgFCW8g+gHwlD3usHqZW7OZl7/3oBK6EGsOSrFnjcS/IsoCdmA13UbZeg EODYTAlK0P20L372ioqTr4+YuTOAr7N9aj7tscBr5rWLf0oHxfBOH7sqej8hccrOpEaq GzVu2hXKgmar5SOACGxyML1twxQVjxzY9EV/y9pT+8ToUqs7vIzbk7yu9KRqwACOMP92 U6P8OWr4V6wAeSEzkzL1zMhergOyQFTCkUCmJaedD2y5sfSLKFOPC4qm317hWlCuNQAy cXRnFGH7Mk0l/7roCte8CKvnYjrTWFs1OgO1YEP9J9n9Iz2LcGFgqRtukM2Rg3YWhnqz qTWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313929; x=1686905929; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dHQ/4wRfx8YGBT0TyL6p3b/Q07WGij+qVhIqIOji5co=; b=crJacAvhQkeuY1zG8ymhdt3EPSbWJNMeSrdPWVVmZqXjPPIGvq8TftaIUrfPplJ3J9 kJLDo7DuA0NwzqdwRebvvD7ARyq20RWKoq7zU+xggHS1QvQ+sKPNmzMiIB7+cu8A+P1r uU9LvrzhULEBjOEutA+1UIZ5NyHVuwwQt7InHqijhMezjUGomVIJDgO92yTu5GYq28TX mpPUX6zFJ5oOGlUq8D+1mDxZ6jbEPBaCJXkscxEudSnsoe6n6nvfNxkZofAGLR0rzcr3 /FI5EIOOxkEPFQ4Go7YiySRti1S35OpumIZpvhaCKH7eW3jwnNMmqB3ZGCSzlkV0tXem AYDw== X-Gm-Message-State: AC+VfDwq3sRGyVM96ye5SxY6OW8ZolDCBw3wSHPkAUbFpZngqhkOdJx+ keqLum6riLDvQYR67t04wJVF/Q== X-Google-Smtp-Source: ACHHUZ4MiIkSySgrbyPd4kQP2+fHUmdRgaMwGI51gtxUWgKJCZMlbz0NTwGpf9b8KfQuim4wUi1hug== X-Received: by 2002:a05:6a20:1587:b0:101:5171:c880 with SMTP id h7-20020a056a20158700b001015171c880mr35122952pzj.62.1684313929300; Wed, 17 May 2023 01:58:49 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.58.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:58:49 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 01/10] maple_tree: Rework mtree_alloc_{range,rrange}() Date: Wed, 17 May 2023 16:58:00 +0800 Message-Id: <20230517085809.86522-2-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 82C5D40013 X-Stat-Signature: h5udb86j645mbjx37oxxyrwrjc43jowx X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1684313930-828165 X-HE-Meta: U2FsdGVkX19WyiEuiuBOTHnrQmqt9rDTkTvMRwhyvdo2aASpS/7zL/uuLlKbj+Xy5XSzkjFbD29PoPqc40WRmGsBNKW4BJVg//qFO0/f8nDIb/MklaXAqkEhQ+RJQMlOLj1wqiKLx6w2FZysFEmbUq36p9fqArb7chw5NHEIln3L4cUbnYtdfAUCTbMYcHR0OiNmbilk0eJFnql7KBw4bWLqnkLND/iWl+7afBDdvT95+n8jBXGQXqT2n/uQohu0a+Av63ehH4WGoqgCtSBVce8fdvY94HYUCtBo7VnYHAQr0grZY5urVceDZvMB3wiD7uqaqnWEEc+pWTEWFbVhr76St8R05S24zOykiix5HKV2ATbY64/oj3Iu0MuQe0qlXH7XD/J2zQXfhFJ2LAuAMgs3LhpxGuG3N9cH8/KZYi1aJbQTDk9asJIO+Ka99a0biYtqF0MLWuFcXiz37tVs4vPhYR+oIkUPmEU8I1/COM/unJE1w931tyMX2jRqiBG4pIgVloIdkYBKBvB7k5B2ULvXbbCrMsqHQKL63hdi1gYVijZoXMHwyC/wE6HX1DSbYg1oKPwVtdUslU/RwbcFObC5tPHJq0m4Hhl80GE1vG7QnhzLH/4Z4QGIfZNmn/pnJSAji2eQ2WVh7jlpS01AfEJJmKN1yxgmItig6PBjLupXdZ+ubKT1RSxSE1a2M3r2TyszaWMEd0EvwT3LiGBP0T+hSLt24OkokOZLZuFxdFmwk4ZVtaXIjo+zC73AYdm3ORl0muOQMxAgQgjyPVLhaHbxj0ckE094a+IDxUeA2/dt07fzv+cGebL+7J+CofMc1ap7kTknx7oq2LthUVP4DOItcsifXHKIhjVdr0gaE965DsS44LqT7+8uFym7rOOej2/AtPeXR5v8A3jRH28e2Sd26Z/D3OoeD3Nb8x3kj1b9K8m2tX3WJPoYYsLMCNzModFHD7PxlQ0wlZkRe0q BbdV3dAI 3ZuFCC+YIVSpeRMlfmzgnpNmyU0MBF9GLHD972HiPnsNYbz3X7q8q37SU6qyO6jKZQcL2w7xEtgynkRTqfK0pL+beA01NH/eOD6gIhXqlm+5KCSYu/MG7YDULIpSdJBpwW6xybmm3hYkIEuxJg+fqzWrYqYNrB4L2oMbckI8t5z9WDuYfMeqeSrWl8uWXYfvPihpn185Bf0M7oQlmpdddpmXaElt3Y0JZuMWOdmSIO2hc9U0M68M44LnfcY6BrgVoke+YLtykkR5JO7jLBHLsFLjkEJ1chc46NILz0VfZiYJ9V+pwoHYcggJRMlPEuf3nocNaICph9Diskf+KIiDN5quPuWaj6wVb56xpToRxWVVj2VFXfU+30DAAeHG+YAYnRAAPkZI/2F5ZMsDjvg13+Iwo3JzPYbsaH2ssi6fUtLjh4zITC6zSvjPtrE4uJJdVUwvyVVVotf2st28= 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: Use mas_empty_area{_rev}() to refactor mtree_alloc_{range,rrange}() Signed-off-by: Peng Zhang --- lib/maple_tree.c | 63 ++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 4eb220008f72..e1820e90f167 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -6493,32 +6493,31 @@ int mtree_alloc_range(struct maple_tree *mt, unsigned long *startp, { int ret = 0; - MA_STATE(mas, mt, min, min); + MA_STATE(mas, mt, 0, 0); if (!mt_is_alloc(mt)) return -EINVAL; if (WARN_ON_ONCE(mt_is_reserved(entry))) return -EINVAL; - if (min > max) - return -EINVAL; - - if (max < size) - return -EINVAL; - - if (!size) - return -EINVAL; - mtree_lock(mt); retry: - mas.offset = 0; - mas.index = min; - mas.last = max - size + 1; - ret = mas_alloc(&mas, entry, size, startp); - if (mas_nomem(&mas, gfp)) - goto retry; - + ret = mas_empty_area(&mas, min, max, size); + if (!ret) { + mas_insert(&mas, entry); + /* + * mas_nomem() may release the lock, causing the allocated area + * to be unavailable, so try to allocate a free area again. + */ + if (mas_nomem(&mas, gfp)) + goto retry; + } mtree_unlock(mt); + if (!ret) { + if (mas_is_err(&mas)) + return xa_err(mas.node); + *startp = mas.index; + } return ret; } EXPORT_SYMBOL(mtree_alloc_range); @@ -6529,29 +6528,31 @@ int mtree_alloc_rrange(struct maple_tree *mt, unsigned long *startp, { int ret = 0; - MA_STATE(mas, mt, min, max - size + 1); + MA_STATE(mas, mt, 0, 0); if (!mt_is_alloc(mt)) return -EINVAL; if (WARN_ON_ONCE(mt_is_reserved(entry))) return -EINVAL; - if (min > max) - return -EINVAL; - - if (max < size - 1) - return -EINVAL; - - if (!size) - return -EINVAL; - mtree_lock(mt); retry: - ret = mas_rev_alloc(&mas, min, max, entry, size, startp); - if (mas_nomem(&mas, gfp)) - goto retry; - + ret = mas_empty_area_rev(&mas, min, max, size); + if (!ret) { + mas_insert(&mas, entry); + /* + * mas_nomem() may release the lock, causing the allocated area + * to be unavailable, so try to allocate a free area again. + */ + if (mas_nomem(&mas, gfp)) + goto retry; + } mtree_unlock(mt); + if (!ret) { + if (mas_is_err(&mas)) + return xa_err(mas.node); + *startp = mas.index; + } return ret; } EXPORT_SYMBOL(mtree_alloc_rrange); From patchwork Wed May 17 08:58:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244465 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 48DE1C7EE23 for ; Wed, 17 May 2023 08:58:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D7EC3280002; Wed, 17 May 2023 04:58:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D2D56280001; Wed, 17 May 2023 04:58:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BF5CC280002; Wed, 17 May 2023 04:58:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B0A2C280001 for ; Wed, 17 May 2023 04:58:55 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 246A516049F for ; Wed, 17 May 2023 08:58:55 +0000 (UTC) X-FDA: 80799147030.15.E6605D9 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by imf08.hostedemail.com (Postfix) with ESMTP id 4215616000B for ; Wed, 17 May 2023 08:58:53 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=AiP2PsxH; spf=pass (imf08.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313933; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=muDPH+0qSOjRZteWOxPwTAv/64dXCJZISlqxUy7MmMc=; b=Ya5zQD47ZitoMxUKHjQU4imwCWWaZduYSo9hAbyrMu3sv+WGqnvATsk1kb/tMu44eyyuwr R4tFQqpDx2NM3nhkl3C/xztOLpGo1TbqNOD84bToQAZKp0c3d8mxjmEnt+uLWmUOsH7jvj IUBI9i+ghtWL1itQr+51i606ocwtMNk= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=AiP2PsxH; spf=pass (imf08.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313933; a=rsa-sha256; cv=none; b=Yh01rH5ycXz8mJ2EUHacPXBzmaFr42k20TYz3ArSF00GeYMdvDU0+TfSKCPvzZXwKLo9s9 3bsrdJUdxAgim0FNBGiOgU0+d4StQjQF7nemdNw4lTYEjtTVkrslhEPQlH7n6QKThwHKia rHHmCxUD6DbsNw4Xw8SIAHldvbENtG4= Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-5304d0d1eddso240181a12.2 for ; Wed, 17 May 2023 01:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313932; x=1686905932; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=muDPH+0qSOjRZteWOxPwTAv/64dXCJZISlqxUy7MmMc=; b=AiP2PsxHN0UHtZNnNBLr9fCq5OgdAGQZRi7YFbOy2y/QUmZGsAStn51hGs3WPRvljK svzaf6zF4ms1xX5WJP6W7TogJIGblfgPdXi9w1v1KuiIhKEX8Zk0snQOV4pinKwdWAHN mAULjfjv3Vc5J4MQ/wNoqrLmlADD8RkSavPiFzDEdMa/Clbc/P5o1R1dSgAilJ2mD9qY +oxe+1+zRqvjGRT7Dr+q9A4EhpY3XNl62BHcNLWGtE2/bn5gMbQrlrSwTPcGSMDvSJgW 43EQ7iB8SiNhZZOKQaYKYg1YMadvkVWEgFXQPJpxJ/aUfwBGIFQVBVScKAElsFpAhhG7 e2ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313932; x=1686905932; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=muDPH+0qSOjRZteWOxPwTAv/64dXCJZISlqxUy7MmMc=; b=LjxlErNZ4G3AQXoDr43u2+h2jiQDg5FBu/MX93H4lgXYtrrdgNRPAIxNKHg64zLX4n IJpRjpWCBSYbGbQqzZ8jskZWR9IRohdK22A4Mib4gleCcCzXuqG4b9WgoIO/X49rKr34 TRx2esnhibyR0r7KKdabzb9JcPRZL9ILDJH7tg2tvcWHbuht4T+4fT+uOCzI1XUoAeh3 pquOvsDnFv1vdu/AT9K9q8weLTrwYMe9+xmW7Xhzm5g/da08dm51xjjPoSnmnQANkODa iawCHT5M4Xz70KnNGwr8qM1PCalEigb8zETSGnDqVL3Vj1Ak3WIonxUw8qiNvGBv6ZHt CQeQ== X-Gm-Message-State: AC+VfDzYFxEYcDV+CMtqs9Z1F5N3Q+TLk5Ox5z59hIGurQLiOxTg2r18 ySGNHX3sG1h10qoT3naTo5yyfkVsMgAxFmkrPZ4= X-Google-Smtp-Source: ACHHUZ4BXjI5mVv9fCacdk56Cmg8gwN9m86sJFs+fFA8+ULEQQFgEOjIXo0WZkwYGUOjYAKzll45Lg== X-Received: by 2002:a05:6a20:1590:b0:105:5086:fd42 with SMTP id h16-20020a056a20159000b001055086fd42mr18006961pzj.45.1684313932035; Wed, 17 May 2023 01:58:52 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.58.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:58:51 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 02/10] maple_tree: Drop mas_{rev_}alloc() and mas_fill_gap() Date: Wed, 17 May 2023 16:58:01 +0800 Message-Id: <20230517085809.86522-3-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: mn1km18136arncapthpp5ck63c8uk67d X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 4215616000B X-Rspam-User: X-HE-Tag: 1684313932-991806 X-HE-Meta: U2FsdGVkX18tmL8/gGJe96VfdPGZG62bDlm1BDPFdhiL0FGRoEh2HUwmIZ5ZSCAwYqNOWWOXL37Gz5oyYab5MtW0Ix0VqC8DSTIsd6ZnoDZZM1I/BXu4bD+d/DloDb2CBYJmho/20QOnwWedRlPGpun+gzThhz5nKTyh8oH2ZQWfJZ8qgpjPgRxrcsjEeVvIou6u+mFpyFtI2ERSLX6PKckDLXUnQo9vmnSZ3RcPUQBB3gQP0PNWI0/RGf5nDI0sWt7OfKe+qbVBxswkAURiD5uThnltZSg1QPY49gCUL4mvfnwPrBW32WZVZTkDjgwv+Dx8LVur7VzLvZ/c2vXj2O3F6CbP7qA090TJl73TItnO2THUYV0ZdKkbk4ChtOE9h9EHaja+YLl0mQqGySC4dybsXxTp/munG38TdhxAC/DlrZ8DP57HQnGIQZZnTKgufavRhd9N3P2E+c3a4jQyaHzN0cy7E/NJ2KrIFaQDqOJa6czyeUIHxNV4cCtTm2h0t5A1HQm3K18hpWJbZBGZ5/5lMUwdaMqYaeao0nBASS8dNiKt9xON4eCHcivk3XPiPz4XVEO6r+uBYY1PAl8GAtrvMapeLLzTvTXuuLrDo+rSy6RRC32M9PmpV3ObbBCcZMtPTEIKI5IVGnQT72FXYFZpkSXvul9qHkha6b6LtMazV3bfXln/tNmFxyiCcxiy35BKWw2m3C8cHVdr57jTPqhHh8e4pJACXERSYhw9HNAxd/7GxRQMu8bk04pZfhIo/9dW0F5PehR+aRIy4NmcefyopZaRk/6OaR3V2VhptaZagCOoGIxxutb2johCp806VFko1ApfmiqgbPWhFnCaYht1sZZIOl4CeQpTeh1p4SbvhkRIZUgk4KpqtXXJbxYQgO7JK/6PSYVrY7e0eW1lDnnlzQI7fw1cu01Y8Nk4bRikxXawkRdCXQwSF3szy91vY1OtKZZcvVeyt2GVRcq 80B2IrfC AN0kBt6RrlqIPNqIn5JDnncpFF8YmvSvHdKB5I0GlY4EgsiQ+m5kxjnb/xudl1ntBDPhNayIb7wZSiIkiKEn1lluyqAAZH3VbntN/QPWX+jBVZPYKtPO9xYRqEhRYN0GuOmgDzR9NBELFPUJbsJ4/Z5XQPHhNbyRY9OheewwrndPyY6PvyhF1Kf57IXpOJcK6kgpJXbiS3lM3wbRBzNAe5c/TtSFYe4K3D4kOLGJgqe8MzHFyosdauJQhTND9KA2WajH7S6zgQQ3BM4U/ZL8u7+tQv1vqGvoHxhnlSFIofPnwKYikWCtJH4gGpiS6SB6mkgMjHxkA3sgQUiLLRokb1rkzKui+wouLtCKNpXG8+/AJX84ZpAJK4HN+T3/+UPbNcxAZrCdCxon5rcY//Uy90HtjM4+m8OCDDRHUjoFOrpRCrHeEVxKjphM0wST65yv+FqAeak9leCCHJKQ= 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: mas_{rev_}alloc() and mas_fill_gap() are useless, delete them. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 108 ----------------------------------------------- 1 file changed, 108 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index e1820e90f167..c8176f360dc2 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5120,46 +5120,6 @@ static inline void mas_awalk(struct ma_state *mas, unsigned long size) } } -/* - * mas_fill_gap() - Fill a located gap with @entry. - * @mas: The maple state - * @entry: The value to store - * @slot: The offset into the node to store the @entry - * @size: The size of the entry - * @index: The start location - */ -static inline void mas_fill_gap(struct ma_state *mas, void *entry, - unsigned char slot, unsigned long size, unsigned long *index) -{ - MA_WR_STATE(wr_mas, mas, entry); - unsigned char pslot = mte_parent_slot(mas->node); - struct maple_enode *mn = mas->node; - unsigned long *pivots; - enum maple_type ptype; - /* - * mas->index is the start address for the search - * which may no longer be needed. - * mas->last is the end address for the search - */ - - *index = mas->index; - mas->last = mas->index + size - 1; - - /* - * It is possible that using mas->max and mas->min to correctly - * calculate the index and last will cause an issue in the gap - * calculation, so fix the ma_state here - */ - mas_ascend(mas); - ptype = mte_node_type(mas->node); - pivots = ma_pivots(mas_mn(mas), ptype); - mas->max = mas_safe_pivot(mas, pivots, pslot, ptype); - mas->min = mas_safe_min(mas, pivots, pslot); - mas->node = mn; - mas->offset = slot; - mas_wr_store_entry(&wr_mas); -} - /* * mas_sparse_area() - Internal function. Return upper or lower limit when * searching for a gap in an empty tree. @@ -5307,74 +5267,6 @@ int mas_empty_area_rev(struct ma_state *mas, unsigned long min, } EXPORT_SYMBOL_GPL(mas_empty_area_rev); -static inline int mas_alloc(struct ma_state *mas, void *entry, - unsigned long size, unsigned long *index) -{ - unsigned long min; - - mas_start(mas); - if (mas_is_none(mas) || mas_is_ptr(mas)) { - mas_root_expand(mas, entry); - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (!mas->index) - return mas_pivot(mas, 0); - return mas_pivot(mas, 1); - } - - /* Must be walking a tree. */ - mas_awalk(mas, size); - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (mas->offset == MAPLE_NODE_SLOTS) - goto no_gap; - - /* - * At this point, mas->node points to the right node and we have an - * offset that has a sufficient gap. - */ - min = mas->min; - if (mas->offset) - min = mas_pivot(mas, mas->offset - 1) + 1; - - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (mas->index < min) - mas->index = min; - - mas_fill_gap(mas, entry, mas->offset, size, index); - return 0; - -no_gap: - return -EBUSY; -} - -static inline int mas_rev_alloc(struct ma_state *mas, unsigned long min, - unsigned long max, void *entry, - unsigned long size, unsigned long *index) -{ - int ret = 0; - - ret = mas_empty_area_rev(mas, min, max, size); - if (ret) - return ret; - - if (mas_is_err(mas)) - return xa_err(mas->node); - - if (mas->offset == MAPLE_NODE_SLOTS) - goto no_gap; - - mas_fill_gap(mas, entry, mas->offset, size, index); - return 0; - -no_gap: - return -EBUSY; -} - /* * mte_dead_leaves() - Mark all leaves of a node as dead. * @mas: The maple state From patchwork Wed May 17 08:58:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244466 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 2D7C8C77B7F for ; Wed, 17 May 2023 08:58:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6CAE280003; Wed, 17 May 2023 04:58:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C1DCE280001; Wed, 17 May 2023 04:58:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AE3CA280003; Wed, 17 May 2023 04:58:58 -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 A19C7280001 for ; Wed, 17 May 2023 04:58:58 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 47B0BC04A5 for ; Wed, 17 May 2023 08:58:58 +0000 (UTC) X-FDA: 80799147156.02.B8A49FA Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf02.hostedemail.com (Postfix) with ESMTP id 4B84D80012 for ; Wed, 17 May 2023 08:58:56 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=H+MW+AUW; spf=pass (imf02.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313936; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JHlXin2w6vavc2+J7pEpRe/GvVWd1HUUirBvk9ov2Fw=; b=dLWyAS8Dj0sAdT2+RKqkJ8l74fscbNrckcb5tLn0OMGGuJUf2Vxe2ghkBjIaMOs1Y3wDLN FdUkFmB4pJE09d0na2ORBv4+zo2q3oFkZW/nLQ90LGpJp7ZOwxUNUdx2BeK18wFGkz7bEp VdvJUgFlRkDTlsNFxdRrl6K2zPB4RwY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313936; a=rsa-sha256; cv=none; b=gjZzKXsLpNeZDF1ExEZrNNtb/5F0OzQ83H+7Nrt8I/ICL78VE/5BEGpfDaOFt8g16lnBp3 vdbBzVnuu3uoSCXgGf2C6a3PlZQQWg/dVJmvmplRKouiTv3cFNFwODJgpHtxDsHRy+SXGe 0LriDzcGYBL/NoBQoKbhUpurY/TNra4= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=H+MW+AUW; spf=pass (imf02.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.174 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-643b60855c8so468879b3a.2 for ; Wed, 17 May 2023 01:58:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313935; x=1686905935; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JHlXin2w6vavc2+J7pEpRe/GvVWd1HUUirBvk9ov2Fw=; b=H+MW+AUW5biA2FNoD0LhWFVRD42pY2bqjWAmvKM0Yoa4zTu8srZy/Gj8H/aG3FvJL/ PA7sqqD+P2gUrAnlcsVHplTZl7wgbKAwHdTslukWmxEbgOXjPNvl10Imxfu9KOfb40wV kDTXMdOHxMgcLMLVn0uEGcjpaDT7ki5Q4pHfq/86IbfqVFgUdd0aXxibTk7EQxs3FXfw Ft/AS4NL32YXcLAJ1KSYOVm/6/qDeLSjmWKXoqRugkYoN74YskuK9j1WX96iwuHAN6EV tX08aUTLefRpOaQIL+Ad8e1kQkrnhOc0fhXJVRy2BGulNjX5fRt6fSezcJyZUWd9vLcM LL1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313935; x=1686905935; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JHlXin2w6vavc2+J7pEpRe/GvVWd1HUUirBvk9ov2Fw=; b=hooZBedW7b2vNvVlxvyJNelX4+oPs6RwWdlMp5mqgxy+IXWEMtgc72/Ti4jMbI5KKy QYo+6ovSbpk8mQ+SOvp2VKmmX5baI4e83t4Cifb6GstvPflMcXYpmtQ8aObrITHaE5Eb aEjWlu6ALb8jzIhunkHQyyIJAhtGBisd2YuV5m8tfzU7VuG7KiPLh51Tpx3dO232XT7H PAwfk0tMZtl3UxK0INQkfadXmnlGnIvpnxc40UWfDvGq9H/hifjYUp1blyzt0jg3gRLw z6kUFlO9JOs+A6Cr4EF7AHvXO0x10lftu/3MpOkOVLu3FXMgrozLJrdz+B2s+oL9MdRl Zouw== X-Gm-Message-State: AC+VfDxYR9Zzu/Z3tcqqiKdOvaz2Mo+PXzbsJVNrUiqusP05V7T/IqkN WLl0FKGKxWTlrmIAmb7/XCfK1w== X-Google-Smtp-Source: ACHHUZ6NOi/1YycNdfdoBvrCAF+/spFRL1mJivf4kbwtDda7IS7ETsJwYzP9XTa6xQROkzqYEveytw== X-Received: by 2002:a05:6a00:1a4e:b0:646:2edb:a23 with SMTP id h14-20020a056a001a4e00b006462edb0a23mr135673pfv.1.1684313935021; Wed, 17 May 2023 01:58:55 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.58.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:58:54 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 03/10] maple_tree: Fix the arguments to __must_hold() Date: Wed, 17 May 2023 16:58:02 +0800 Message-Id: <20230517085809.86522-4-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspamd-Queue-Id: 4B84D80012 X-Stat-Signature: zusttf6yyzy8hjmjrmg4jgehzo4a7yp4 X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1684313936-36975 X-HE-Meta: U2FsdGVkX1+nXZUFxMh2gRWMKlqpkqnP6kKQewnXLNKBiWrn4tGhsagOtJVXw3NYYnT09U1sW370IwwPzXg6Q1MylG2woZ0xaMhUjtlDLgXVwwagZCZuO2BItd/tZE69PJH0DqAhwy+4zXeVgnku7+Xjth84zkquIpeH/FvD8+0M98RFbX/LRw2z2IM/r8+tNiteADDIL28mS8OrTDLrlYwkifmVYJNyaw83AE37eaG9OtkdrwpuDmIbHVrRC20nPRDT0Hg8+Hnue9y8ZC2Q3uLgHZfni29hLfRKUEXdzpXM9QEM3HOdyy3HmNgkt4FtcyUXGjAsPNdWumReWsLHSCTX9EIcqHMC+Q+WkgWdKUe/SemnLl0GdgxGpyj6+vBJVheTwytFdA3SnrwpenSv+q4dER6+IGzYf2INxrrcKEliu7oSRtEZd1DAdOBJY/aBYNdMNG/2JNU3ynRJrJvMYD251qA2Mn4/Abox9twaHXvkCOhp+ad/o+cozEkoiqdwCp88B3RlRgyuCruxboHu/ZzUoNIR9c+b0gd7OKh363qJ4JF2dpYKo49+CgbtPFKMTuamYPOY8lwT+wO+RamaSeQY2wsc4+GOB/h6Kk0F12Iz5XvsuPfhKpMMiwfquK/yvxnxsx5+AseZiqKGe5fXhG7tHLnrrlW0HdwhbWkaaYY9zrT20/xhlAMyQS0CL8hy4wsczSQsIygn67JWKB9yNlQQ2lUH8UnRd4jmVrKITXhT6e+KO+ScoQCG6mIjHnBOy0ZyYK8dxm4zN5wPYTSAVukzR3OIoPFjgg40xnLL83axKryeNxm3DXvDMZUfcIED9ZDrDH8xiEIEn4JkL5YX7mDY1nGOPbwuvmE40klp3W4KdzN6H4EkcSYXt3lssjJ6YF9tKJ/KAgN/ht2N2z6gzvsiB8k3u7F+NjbERTJ9iUmFC86PwCrdvl9nrGTtsbrS6yNjaeHdJQHuBqvd5XV suGCIxfz 2bOQIBZFEboARoq9TB+URRbYAIFSxX9V7ykgYXGNYnq9dowl6KvAXwRm+6B8/boZazkJJhB+P21mzA0+QwogbNx+3T4J11HMQzykrpGRQgfGi682WnQPLr00B83X+Ojh6TtspI+CcRmmDVEDdqIEUqX5Qu953XoaN9KeoJ2B01N5END5ti1p3wCLNGuryQxAMGBaypbis5/E7w4cV5T73S7hsA7Vrb91e9tYByshw3v1gBSUUVdWDLEBGencgLyL328cNeYtCDvj+TAAiu/OiF/qsdT42bfedja9dH8m//6o+MeRQ501Q1fHFR3XXhhmtSasJ+K8ihr5kJcXitoxt5BYdc56pdhsbEiTSA9DSH79iqhMm5HSyHap1fgj9ICwg+PMP2YL1Hfw4SBftFFabYX5oRr6NxOCN/9hyCziBriiSV4LNkJfLf5Ytp0jZIjdkUJhvhiRpRBsxFxU= 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: Fix the arguments to __must_hold() to make sparse work. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index c8176f360dc2..bec9906b0c8c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1752,7 +1752,7 @@ static inline void mas_adopt_children(struct ma_state *mas, * leave the node (true) and handle the adoption and free elsewhere. */ static inline void mas_replace(struct ma_state *mas, bool advanced) - __must_hold(mas->tree->lock) + __must_hold(mas->tree->ma_lock) { struct maple_node *mn = mas_mn(mas); struct maple_enode *old_enode; @@ -1792,7 +1792,7 @@ static inline void mas_replace(struct ma_state *mas, bool advanced) * @child: the maple state to store the child. */ static inline bool mas_new_child(struct ma_state *mas, struct ma_state *child) - __must_hold(mas->tree->lock) + __must_hold(mas->tree->ma_lock) { enum maple_type mt; unsigned char offset; @@ -6204,7 +6204,7 @@ EXPORT_SYMBOL_GPL(mas_erase); * Return: true on allocation, false otherwise. */ bool mas_nomem(struct ma_state *mas, gfp_t gfp) - __must_hold(mas->tree->lock) + __must_hold(mas->tree->ma_lock) { if (likely(mas->node != MA_ERROR(-ENOMEM))) { mas_destroy(mas); From patchwork Wed May 17 08:58:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244467 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 BB589C77B75 for ; Wed, 17 May 2023 08:59:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51B9C280004; Wed, 17 May 2023 04:59:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C91E280001; Wed, 17 May 2023 04:59:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 343B6280004; Wed, 17 May 2023 04:59:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 27CEA280001 for ; Wed, 17 May 2023 04:59:01 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E5ABDADDA6 for ; Wed, 17 May 2023 08:59:00 +0000 (UTC) X-FDA: 80799147240.19.5D74956 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by imf05.hostedemail.com (Postfix) with ESMTP id B4C2B100010 for ; Wed, 17 May 2023 08:58:58 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=CweT36Vd; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf05.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313938; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PgePm/CbmI9b6FDUeL4Fm0Rwlug6tP8O/eeOWJHUuog=; b=b5jXEhtlQYqSg9ncI3KOc/dCeAhEr8A4LpZefTavZp5ahw4NHPLcjEdqk6SWf8H0ZuZeiP rdRvW43C8lk0Cnr/rKjhY7DIGBCQBvt15+VLJzqtbeCkigOxQDtca5Ed1fD6uRszjlGPfa b7pOvHcJ1l20qvHmPqzQ82zsKOIvOrs= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=CweT36Vd; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf05.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313938; a=rsa-sha256; cv=none; b=Q6dadY7PwYghSN5Z7v4+wzNvZ3jDqnl8QQ+Ys+E3BLZdTWxLmKmqkv9T5rJ3zfqhhCNE6s Dgjd/g7R1kreCOkz2P0vo7LkHzN8z0pnaw6ZWR1LVf3rYIpV3VoNarxA1xJBeBmzoXhWlf clNbm4Wmhssl0BfWRFWDTRfak8CcSco= Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-52cbd7e73d2so432662a12.3 for ; Wed, 17 May 2023 01:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313937; x=1686905937; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PgePm/CbmI9b6FDUeL4Fm0Rwlug6tP8O/eeOWJHUuog=; b=CweT36VdUJkzd7EgyQjEpA/g6MONV8fPH2+11DoRZ4gl9z4pn4gx0f5yRC38Oo0kxK /hOZIMttxfmQcLJcRE12mcyOso3iB19zL2YRd6wnP2BIrfQ9RGYC/EvLPmu6VhcdRlST sb8J/NRQg37aubTJbQd4RYW/oGlOyZowBikpiRraOyZTAleG3Aei4bfYFIuWCbcYacJi n3z9EzW4KLf5MngHWtxR8texHVwmwCRUn05aw/7+E6mi4DaBv41SUTLcNOJDhAdcS5Ff rxYgtd5EXyH9Q96Fede6UlmrE+iWdPMfwBb+zROOYYpAeztuNSrfs/mZl23iOCt9k+oc YO0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313937; x=1686905937; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PgePm/CbmI9b6FDUeL4Fm0Rwlug6tP8O/eeOWJHUuog=; b=FjdPPmTuNTa56idYqDImtSL0REiznjlaZBclk9j2DNX11pIDyzE3dGMNIsbdjK6Mn1 aiYywd7hDFUAC4KsHTIDCc1kkk+QNvVRN47snCWyZU5cbAPAVgZlNFErTYJ+z+nwpful HdQ1fp5P1OurhPTTkW6mdFCApyQ0b/c5xr51Z68u68QN6/zAWsdSAHL3uYNf2SlRqVWK FjgaNrJ1B+FJSyI8AcL7uli0f7aOnQUwb0qvdER0/rJ8femMCUUeypYdAWDhVhmpDQ5g +nPOpb/ZoZv8jxkhy7XO7IawP/+85NAMyS83j+uIjzo+IS1MoFaW0+r0Elsa2fRc8uug k5nw== X-Gm-Message-State: AC+VfDw4dIt8kEkppIfRnmiL5HL2oUAYuQV/7N+q2raLsaC8aLrp2wMs QCrpQ+gTN+wsKkHjbqxIPyMjQw== X-Google-Smtp-Source: ACHHUZ5Pdv2NaLOo7WcmzSQapiahkZn70TlS2n8UFh7QzMN8tnXEt5QRKZ2elo832+y79/XLpr8c8Q== X-Received: by 2002:a05:6a20:a10d:b0:101:4d10:e40a with SMTP id q13-20020a056a20a10d00b001014d10e40amr37103525pzk.12.1684313937698; Wed, 17 May 2023 01:58:57 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.58.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:58:57 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 04/10] maple_tree: Simplify mas_is_span_wr() Date: Wed, 17 May 2023 16:58:03 +0800 Message-Id: <20230517085809.86522-5-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: ub4umgkasumf4dqpoo34ftazqmb1n6i7 X-Rspam-User: X-Rspamd-Queue-Id: B4C2B100010 X-Rspamd-Server: rspam07 X-HE-Tag: 1684313938-436634 X-HE-Meta: U2FsdGVkX18Y4X0OBxl8a+k7O5T7V8ydKIxQttfLNQykEPOeyf0SkXn2+vCJbZ9z9s7D/aXw+k7J4aKptO+hYSa25b0U+SS6pQpYS1/PXNbq+XzF6vXQcfxE9NHdz1Y9JvLcBDdeWrsTcx7eb4QGaW25nLGZaFvV/FLQQmKDIcS0wFbDJS+1kqQA9kBEABNFZQ1yTy2Q/5BJCPVU0NxuhQriKVHciV3ueLvox+phKGOZ5lUSx6GLzrXTbdTNF8rsfv5bEzWpScWXR6zS8Xb4ZirPN2vAGaxDdFACC9QZGgyWGyH9NXbQt9CKSKNhWV1v0aZ4mLBGOFThLa5VSHNUJt8uu5rJIFeHcYJ2WIV5gAVdsdq4Ayz2YsKEZRmJgCAQNhpE8zx1GxCl/ny6ur3ckTxVmYpl6VL4LU9KPw6kgqWwgsOZx8JdDH97HcD975PAXHhJffhJq4K9y20EiZdiFOEasbgVLtg7dEB1YtEpQzQ4pytNNjBNslXXDRrgEqiDGsWHXXsUkiXfdvCNTo8+JpoCK00qOdMUxV09lootZE4+PlXhwaBdZa4ULyihgV7uRstoI+ZVLi8Lb+0I7pSagyW8O8S+uZ7ytHEH1NgTDM83/F5OtM6PbPcK5veIrR5Wd3/TEpbfq5XiaJ8rlIcPtDhh8pn6vaY78H4fUaAHGrg0HH71RoXDW69lYCObzx8u6tl9vCEgX3wFCIPikPqN4q6czf4UNZfjI5rMa0rTAXBMWkyv7Q8WCURJPlpGqzcZUXU5xnpuKOkyzOd27BAyxTk1rjN9AsWZYYH2CHVW3eMKDObkDobx1M7mSyKErMYPSkwDl6s3c+f+dT1Bam4Hbc1iYUcB/hi11AscofT/y7bUVttnpD4c6JOlHMHJo1MRHVvzndYd+JSPsFTVcyPwlEIbHWRIS5a7FeslQxfBRZpDKdhqqr9h3p0fRTGpZiheItTbnsKdij6VyqXvw5y 7WrTj/fz SI/LIKB4o3ZwzXesZ26pfX8WuknBTbrw8lES85LUu9n5tcw5fJWPEvoqUOxhU1i/7G6HR7q9jbhkE5Ev0Lg2XR+sbvafZbzSpL3w7TUQheb7Q5/gDjQ04zrkuWLRcKA6vnR6GPXpaCoZqHPNztuzjbXqy6w0Y8VA4JAdnEyj7lhDEKKjPWuwEWQbuA0U5+rktQlahfADNyRZl89su8b00Pc+e/6Eqa668TKdVzdHCMpoP6Hc76mh/gHMVGm/rfBa510LrgN5GhrggcPAfwbQumAjpud1LOLRVL4hg9qrR7oJOK5n2j5eI18Zh2rbv/O+fKo3jW/ZGvNlDEwVT0E/7tGv6ANKsxNZme6esAIBVeVnkOe78vuGjxcIK/HSORfpdmDa5nemc3WCS6o7wW3jnoumz2T8dv0YhCnSPdjQhBGCmyE+H6jEjYblnbSczXej6pMtkTx2K64ofxWfZsYar6Owd1E+sqf32epofmEvPTCL0fJ8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000127, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Make the code for detecting spanning writes more concise. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 42 ++++++++++++++---------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index bec9906b0c8c..82dccc660889 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3728,43 +3728,29 @@ static inline void mas_store_root(struct ma_state *mas, void *entry) */ static bool mas_is_span_wr(struct ma_wr_state *wr_mas) { - unsigned long max; + unsigned long max = wr_mas->r_max; unsigned long last = wr_mas->mas->last; - unsigned long piv = wr_mas->r_max; enum maple_type type = wr_mas->type; void *entry = wr_mas->entry; - /* Contained in this pivot */ - if (piv > last) + /* Contained in this pivot, fast path */ + if (last < max) return false; - - max = wr_mas->mas->max; - if (unlikely(ma_is_leaf(type))) { - /* Fits in the node, but may span slots. */ - if (last < max) - return false; - - /* Writes to the end of the node but not null. */ - if ((last == max) && entry) - return false; - + if (ma_is_leaf(type)) + max = wr_mas->mas->max; + if (last < max) { + /* Contained in this pivot or this leaf node */ + return false; + } else if (last == max) { /* - * Writing ULONG_MAX is not a spanning write regardless of the - * value being written as long as the range fits in the node. + * The last entry of leaf node cannot be NULL unless it is the + * rightmost node (writing ULONG_MAX), otherwise it spans slots. + * If this is not leaf node, detect spanning store wr walk. */ - if ((last == ULONG_MAX) && (last == max)) - return false; - } else if (piv == last) { - if (entry) - return false; - - /* Detect spanning store wr walk */ - if (last == ULONG_MAX) + if (entry || last == ULONG_MAX) return false; } - - trace_ma_write(__func__, wr_mas->mas, piv, entry); - + trace_ma_write(__func__, wr_mas->mas, wr_mas->r_max, entry); return true; } From patchwork Wed May 17 08:58:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244468 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 B6880C77B75 for ; Wed, 17 May 2023 08:59:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B50A280005; Wed, 17 May 2023 04:59:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 565C7280001; Wed, 17 May 2023 04:59:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 42CF6280005; Wed, 17 May 2023 04:59:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 3736F280001 for ; Wed, 17 May 2023 04:59:04 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B5FCE1604A0 for ; Wed, 17 May 2023 08:59:03 +0000 (UTC) X-FDA: 80799147366.04.3D3AE2C Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by imf13.hostedemail.com (Postfix) with ESMTP id D660120008 for ; Wed, 17 May 2023 08:59:01 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=hhZrHVT2; spf=pass (imf13.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313941; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DxGBvrxxE77Ame9f1Z/CNikWB0RCA3Ncw948p+DNd2w=; b=SXcOC81A+PA+RkdKSwjOzT9MjsehWtEyHXPvvzlvviBH1Yxj8zgskN8lVpSqgGWudHxZnw +3mK9E6T+SZmge0w26xCr19SBETSuFhHxjhB6iyjPu0mDqbkChWpgaLMxoPqUfnE8oC75U WczXqyXqleLR5RCeMXWqNkZK7ECAiEc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313941; a=rsa-sha256; cv=none; b=v/BknGPQ+jnXyGG4W5h8Ioln/qCe4Y6s9a92Hqvj9SWQbRL+8Gt5KPw4R8mF4aIeDc1FHc c/kg6qupyFkvzo5bh5B1NQBBsOESDUC235To2kbiSqmpMc8Pr6ShSMhOGkJRczaOxuzJgC ENISNIM6z3oXw51HEdM190RetNdhhJ0= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=hhZrHVT2; spf=pass (imf13.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-5304913530fso446443a12.0 for ; Wed, 17 May 2023 01:59:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313940; x=1686905940; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DxGBvrxxE77Ame9f1Z/CNikWB0RCA3Ncw948p+DNd2w=; b=hhZrHVT2VkGePkTiFFK4sSJd8tqamGMy8odrTM0tq7wmPGJpAVOC0d1on3Km9zXhzT y8D2OMuQprZsBQ1bkis77HuCjfKIWwbuujAGqKb6WVCab0myyW1TjTLmBulCtJRtb9++ 2nB5U1ur2jcEfvhed4ojCjG7XmkcUqePqFrzix4mfSpruFIr1e8Mm9LUOi4pYiwjBsVG Pb5fkZ6DlRSwVN5ADq+nQsZbVmfD4u/sXOD5KDkFqXds9wgkLdi9ywBUFX9W9V7yLQSP PcvmydPGz6L3A3m5f1hb1GPVXqXcyqapyMDTTKZwica43fM2ZzRKYIb2sGKWzoOhUc6X YQuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313940; x=1686905940; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DxGBvrxxE77Ame9f1Z/CNikWB0RCA3Ncw948p+DNd2w=; b=APjihKVcFTMpW9q9D6F4NfGIyfULemBTC7Ba+/E6L8NIJaXtnG02IBokHyRHe41F/A aTMxDxig5zEC3sldYE0RRhMjTtM1+t+3K2afa+BG98YRsi7eIbI09KFBH0DyubRFwwJ4 VVztvL56pxjU8kBAQrFMO5gNHpXvJXd5A3mqFCmTFaFCh96xqd9JkS+lLErTRgS+3wvE +xtZFe3eLAQ0k3x61nUMKMybXAHPTowZJkNhAcIwPQgAXBQNHz/5ngok5uwkebSjMVh1 R/nLx9NSs/bSG0xT++G8EwXLcsDsQaVbevM/fqCl3+7QGZKu1XlHFm0tNXqVJAtwZvwk eYeA== X-Gm-Message-State: AC+VfDxXTMFA0+QYub4bFGdi6vVmNVNPTrGUCMRhP8K2zvdWObiPDPIV QZdTqDE6hBKa7EVE3UPr0sFXwHgBmZ+bpzTo6vI= X-Google-Smtp-Source: ACHHUZ4e152x5dK9Z0TzZC1Vveb2UGWQnunzngonUT+kThkHDvgyajgacA18i4gRmC54ibhcq0RIZA== X-Received: by 2002:a05:6a20:244b:b0:100:a9e3:17d4 with SMTP id t11-20020a056a20244b00b00100a9e317d4mr40707827pzc.0.1684313940513; Wed, 17 May 2023 01:59:00 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.58.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:00 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 05/10] maple_tree: Make the code symmetrical in mas_wr_extend_null() Date: Wed, 17 May 2023 16:58:04 +0800 Message-Id: <20230517085809.86522-6-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: 1ygt5umdwyezewjrr5ccb4kbzbgahkym X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: D660120008 X-HE-Tag: 1684313941-801669 X-HE-Meta: U2FsdGVkX1/vZ1pg0/eRa0Mb0z8HTYA2l15boxrU8g4moLfuOxdOsLAOjX/q1hvIMf+qjYYat4GgcLuHtt52ikxzVRZWSlbTk206e9z45qbbg3p+m6EgB3Ofo4lZFUG9nRSdoWVB7PuxcT4t07vTYGzwwV4wI2magLE2oj6lVOaNidWXdKcFLdNzggnGar1ATxvMFIclSE6wtwO1a8yNM63ggXmkkZvRh69jxIuyc6dM479aFE5X5u9DZSFrXm0y2m9R3vM1a/KhFYqnWeQlNMe6DDFvd5plwjalDNgHc8uzPALAs5V5GDAZD0hsHaz6NfroIrR8VCHtb/w95dA4E63QiJm6A+ruOJAG4SqCtH5bvtHLn5DPbR8jmxUA9pWotnYm1x5IsLsY8/QloxvVKt/JkvnOXX/WNoQY/Ia+4GWCYGqF0Zarx8+0E7fshtpQlJXxH+saOGL8gArV05uFHZ8LaZD12EQeHHm1RRNcA3cGV5zptO8z5P5IWNTyQ1RvBVCtYxIh01EIobXocrSleTreTnrR7uprGuM9J4upj78X7Z+SbssWYdcJLn7Vh+jCz6Y7rjElam56S+QZGheKU7YHAGSYUMy155+Wdiy5Vpk1aiwwE9ejaRwuoYbJrqpkoVJkq+MESYUBe2MzOyfhdH9nUkgoSwZqhvfOkSoy64iXqjISjL42zdkGk405jooVmd/YJ5BNMUWW84fDPWx7NSwytOwd6KSlMas5MCBKA6iMTIR6IMb6BZKhML/YPmFUbcsgUSo1BYIGUPs5/G9x5S2cOZ6tsu7gnh54hkvIu10ABwOI6FTtE6mMnv6zDRp2w1mk3lY6RkrhJXJSNEQWUaYKLA1OFOfEjIdZM7WiAtDUT9lR8Qx/O/9TuUaAMLbMUHkP1WPc/o4/ViM8xUqRnM7Lpr8iZRCaXBoRu0FfdkG3zn1hIyH8RhN6AigspRpe2UaByRG79nwPIqc2Nbf 0KYJxAYo bUuztG5UjYO4YOBBTPUGL3xoyGpxrjA51ZWMSVZgA5YYsxXOcJDwCYYVxWMKFS1e28ZsXvJXmitPY+90kEfXn72KhrsNzIO9bTLg+YPGNWEPfPUThkXF3e7Vvsn/OsldepWQYSucbCqFmJnWbXn/NvqLpZ087uHW5xHxGlkSoF9IufiOJbwulm/X4w+S9eWHlfHBVU5NHEqPgp0SvC54bfX5pXmHQ8rvR2mikqECt34OtGXFttkU7LLjx6G0nEIGje2tMFdsshi5A26+/gkYKMuZKg+xPnSbUORG0pw03ziZoRxS8oI+FdO+r7V9xU7PtUK5A0LdojrVyD9RCIDD1cd6ShdgOjp9hZyf2AbwCZojR7S4XjIkJszJzJk6Kp9havhmeDpeFl6VrsNnDs0v4uCfZTyDNXeccVGh+LPcQsjEq02JKVhmmZ+0ulUBgo9YlOi0LfnPBX28r6pUiRA6ushx4KH6fS01+pAwS 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: Just make the code symmetrical to improve readability. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 82dccc660889..f881bce1a9f6 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4262,19 +4262,21 @@ static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) { struct ma_state *mas = wr_mas->mas; - if (mas->last < wr_mas->end_piv && !wr_mas->slots[wr_mas->offset_end]) + if (!wr_mas->slots[wr_mas->offset_end]) { + /* If this one is null, the next and prev are not */ mas->last = wr_mas->end_piv; - - /* Check next slot(s) if we are overwriting the end */ - if ((mas->last == wr_mas->end_piv) && - (wr_mas->node_end != wr_mas->offset_end) && - !wr_mas->slots[wr_mas->offset_end + 1]) { - wr_mas->offset_end++; - if (wr_mas->offset_end == wr_mas->node_end) - mas->last = mas->max; - else - mas->last = wr_mas->pivots[wr_mas->offset_end]; - wr_mas->end_piv = mas->last; + } else { + /* Check next slot(s) if we are overwriting the end */ + if ((mas->last == wr_mas->end_piv) && + (wr_mas->node_end != wr_mas->offset_end) && + !wr_mas->slots[wr_mas->offset_end + 1]) { + wr_mas->offset_end++; + if (wr_mas->offset_end == wr_mas->node_end) + mas->last = mas->max; + else + mas->last = wr_mas->pivots[wr_mas->offset_end]; + wr_mas->end_piv = mas->last; + } } if (!wr_mas->content) { From patchwork Wed May 17 08:58:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244469 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 7FA9CC77B7F for ; Wed, 17 May 2023 08:59:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1BD75900006; Wed, 17 May 2023 04:59:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 19EDE280001; Wed, 17 May 2023 04:59:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 05C8B90000A; Wed, 17 May 2023 04:59:07 -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 EC450900006 for ; Wed, 17 May 2023 04:59:06 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id A28B5140485 for ; Wed, 17 May 2023 08:59:06 +0000 (UTC) X-FDA: 80799147492.16.4A826F7 Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by imf26.hostedemail.com (Postfix) with ESMTP id CBC2F140014 for ; Wed, 17 May 2023 08:59:04 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=AhqU7dUp; spf=pass (imf26.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313944; a=rsa-sha256; cv=none; b=e2zneVfdPCzl+KsiDVDiUTiyU9IRNtXsVol4XVXAyXLpq6WF2tXDhVg8o/XaAlh17Ly70Z zuTgU13Wd3s9+Oi8wU7OS9tjTARfLpFsxRjbDUEmcXHrO/yc6hfFBGMBLBVjmTI7/7aiJr 8QflbJsQ+HFbjOpZt5OO3m4xviTJzFM= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=AhqU7dUp; spf=pass (imf26.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313944; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sATgEzrR7h2S265Iki4mbf6UDAayTpXJc+pupXreNbo=; b=QL142KBxEhYBoKTerbaKOkmbWK0+y7VMD88qLQ5nSATEiSYM8dMOxCODxpnLIaKTGJQ0wJ Y4DfyFy1ZOSbRclvQc4Zr7oOX6eCypDZpbW/2rtWOx0G1PX5l3/VsurNvvUm9S+XxSGqrl aYLUFFevlrgk6J8/+Hqlb9ZXpFOaD10= Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-51b33c72686so325494a12.1 for ; Wed, 17 May 2023 01:59:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313943; x=1686905943; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sATgEzrR7h2S265Iki4mbf6UDAayTpXJc+pupXreNbo=; b=AhqU7dUps8kowzB+osQO8so6VQf0rmRE6E4zIjuNyIPM6ywkBKH1KWI+hwH6Hb8grH bCqQ1C89pxuZN6S/Qe2mlxhm/jIwJYn47SJ10Pr+CL6qSbZU4B9m8pibG8gDHXwaGqha BVt/etviuKp+jgzPJWFF1XHYRdgXwLWhKdMu/EIsq8iNLQAuAxCx+XmuV8f4Yk++dfHM zNgtI4hXPq6uzaYEDuOkU3GWF4osZuQlgfHh6H/lds1CnKY1wfGyfMt8sEPGBvtX5fXQ FZNAo6CIYaoCnSAF+GU3yXvBnGH5ReKVI1SptmJCddaenxpFVlVGwF3/6ZCTN1QOOPcH AItg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313943; x=1686905943; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sATgEzrR7h2S265Iki4mbf6UDAayTpXJc+pupXreNbo=; b=LYCudZBJtOhzvVLMPzaeUef0GbQALGTU1zUpNv5t/1hsWZ9IPu5sRwpRafYbpQEwgw I+IduV7XNuPg6Pqbowp6Q9QXA4lbZ7k7b9RkPW4TSRjk7vC2eU29jJZ+/FnmL4rowiZX ctkJz4JImbp7Rv0Bj1BSkKeNhZG9BVsASXWxucR5uGJuH8SaluUbRQgsqmm6WOdiwqRO q738NMK/gDdlnGCc9AgHIxnLHzYxKOXZ+ve8WZWFcUuJRXq4873HDIVUDQ/g+Lzy4fU2 E3OFY4DbnN9VhQxlUGxWCmpYulBXBKn/vvSSRfq0JOZ9h2qGJqt8iZW+kaPW9K0Pw399 RSdA== X-Gm-Message-State: AC+VfDz8c0d0tNevmZpEhIljMSyEoIo4cQSHnt3dKl/ahHs00rjL6UTM T7GHmxQOxJUA+7E74OcVr23T+g== X-Google-Smtp-Source: ACHHUZ5pxBoy9i804S0WFEBY4chpbe7G9WMqboedp6zXSUYx96x0ZmEDxKvpxQw+xImuE9quMaS2dQ== X-Received: by 2002:a05:6a21:3298:b0:103:6c36:46db with SMTP id yt24-20020a056a21329800b001036c3646dbmr32420717pzb.55.1684313943206; Wed, 17 May 2023 01:59:03 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.59.00 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:03 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 06/10] maple_tree: Add mas_wr_new_end() to calculate new_end accurately Date: Wed, 17 May 2023 16:58:05 +0800 Message-Id: <20230517085809.86522-7-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: CBC2F140014 X-Stat-Signature: ippietrhgurgwcaszribudytuxgo64gk X-HE-Tag: 1684313944-428518 X-HE-Meta: U2FsdGVkX19KE0hHwgSFqATCUk3QjP1p7z6pbD/L9DNUPM3ay0gWsZWt6J3lLySjQqe/qbrKBPgdNZFXn2KwAiTZHMT6Gp/VArTWEsa8y5DUSsnXhS2ecwAmlyglElHrmAIwwz9wKVouT3qfQfiihNgc0PxQBYSosbOcUO0QoHVmD5gqRO6H2lOhO7w+RvCpBm719H5WftqqHst/ZJQdu4EJbP/wdMkauJ9miQWx4ly6kIb2+Jfk6YRcPvCv/eGaE5xIjxx+Mx2rbqq7c02539+DXuI4qOFblqVsMndUarTpCPYK51smgVq12J2RZqdQYgvsNywNyZ+OIM8TWjn3WUzPxdP4m3YImjVP5FCsU+Yi6TNIvLYaNbc6sAP8LHCNldfa840kkhvkh009faQfWC6MGB4N6L90MXwL7uwUzuoD3j+LJuOf4yVgTXy3FpVPnNnX7ofx6O9BRTtAsDyYSVDi2Tf6HaLdXYLsBnlHB7/j242v++47EHxQWV7VlURfV6rxx7hqldALxx3UpVv7L88z2JWrg0UV3uASe4+tm8YdDfJ4n1LdYXNvZyWKcEisxhKwcZ0z4PMeVCdEpYzoJTf3y4Edb4DEeW5BVY88f8fMrb6AFWot3yI8LT5HElABrXTzUl3U2+8H72pIMmY72kAPF13E4k5sSTn29odavc7E1w0IAykdV5wzwprv9lcPxq3xcGyFFU3qLg6V7p4jZOPrUQQD6uvwbuaOWLZ3AC4UTtbol0/nhmxtLvsDeMle+EvzhkMmFSq/+hNPIU+fX2V+X3oUfVNa0VDQeFRwvnZGeNV5hKErXN/ilKlwelv9DZWDx2bAtbYmcBYyEgUdinDQlU3FoMzlNrLqJPfoMDAwmUdO8D1CIvYLUca4Qm6M3bAUPVlrINSDei/2iIf/lpf0gHn9AoxBPVtqqYC4FXQjMwJl8BZd1KAkRaRcSpgr/F8s/S5B52Y58MMazKd f4uFN8W7 PGOL4SEPw/1WkZ5jfUBYiZWCDLIgDmdvOPPa/sa+B++BI1v56P232HxFqImf2OnKx4LDV9bWgdb8QUa9NcFiTVhvjD6kc4JEY/JXEjt93k1KydK/YoRU55vlqxIGwtc3W1hbfAuiA0RewE/koyY5/ou5+/RVYOytDz4b5ELqWnGttsQYywlCZ95zH28AlBUe5fbXefWAddo+mLLZKLkjQ4Qdg4XGwGzaYgr8SvALo82U3OY2K7G07kEDtzLyxvEhymVfjSjiH5gjJtHPUFi3IAQLq7J8bYlHvaRkkVF54S+G7ol8slNitIhYLI0ze5MddcgODsNCCnI3gdIsF64ySRE5tR4QbJa4pH+QWDGmee71pD+Lj84GPncUR30mfNuZLvKTDEcZJu3VA2K76E4BksUiJmrybvZaC2s9RhIQxa/6Uc4tb/ip7T8i17YNkEm0aaFBVroyfwRPY+2E= 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: The previous new_end calculation is inaccurate, because it assumes that two new pivots must be added (this is inaccurate), and sometimes it will miss the fast path and enter the slow path. Add mas_wr_new_end() to accurately calculate new_end to make the conditions for entering the fast path more accurate. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index f881bce1a9f6..3b9d227f3d7d 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4294,6 +4294,20 @@ static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) } } +static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas) +{ + struct ma_state *mas = wr_mas->mas; + unsigned char new_end = wr_mas->node_end + 2; + + new_end -= wr_mas->offset_end - mas->offset; + if (wr_mas->r_min == mas->index) + new_end--; + if (wr_mas->end_piv == mas->last) + new_end--; + + return new_end; +} + static inline bool mas_wr_append(struct ma_wr_state *wr_mas) { unsigned char end = wr_mas->node_end; @@ -4349,9 +4363,8 @@ static void mas_wr_bnode(struct ma_wr_state *wr_mas) static inline void mas_wr_modify(struct ma_wr_state *wr_mas) { - unsigned char node_slots; - unsigned char node_size; struct ma_state *mas = wr_mas->mas; + unsigned char new_end; /* Direct replacement */ if (wr_mas->r_min == mas->index && wr_mas->r_max == mas->last) { @@ -4361,17 +4374,15 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) return; } - /* Attempt to append */ - node_slots = mt_slots[wr_mas->type]; - node_size = wr_mas->node_end - wr_mas->offset_end + mas->offset + 2; - if (mas->max == ULONG_MAX) - node_size++; - - /* slot and node store will not fit, go to the slow path */ - if (unlikely(node_size >= node_slots)) + /* + * new_end exceeds the size of the maple node and cannot enter the fast + * path. + */ + new_end = mas_wr_new_end(wr_mas); + if (new_end >= mt_slots[wr_mas->type]) goto slow_path; - if (wr_mas->entry && (wr_mas->node_end < node_slots - 1) && + if (wr_mas->entry && (wr_mas->node_end < mt_slots[wr_mas->type] - 1) && (mas->offset == wr_mas->node_end) && mas_wr_append(wr_mas)) { if (!wr_mas->content || !wr_mas->entry) mas_update_gap(mas); From patchwork Wed May 17 08:58:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244470 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 B36FCC77B75 for ; Wed, 17 May 2023 08:59:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51958280006; Wed, 17 May 2023 04:59:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C910280001; Wed, 17 May 2023 04:59:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3912A280006; Wed, 17 May 2023 04:59:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2BA86280001 for ; Wed, 17 May 2023 04:59:09 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DBF91A04E1 for ; Wed, 17 May 2023 08:59:08 +0000 (UTC) X-FDA: 80799147576.03.828635A Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) by imf30.hostedemail.com (Postfix) with ESMTP id 0601C80016 for ; Wed, 17 May 2023 08:59:06 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LEpcP6Z2; spf=pass (imf30.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.169 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313947; a=rsa-sha256; cv=none; b=zIu97WEds6dni8QcmX8439R4Kb6jf0KJ56drp6wOIBmpQ5fWGQjMzucCmumTPyOXy4JdI5 P8bA+pkNTbE5FZyS1FyF2JO3AXpbNKACLkYBB5uHB5YBeNj0VAyJwxb1KFRbjpkPpFKdIs jDY1vPf1YpZ88qepWBVq9WybpQ0GhA0= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LEpcP6Z2; spf=pass (imf30.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.169 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313947; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QOzzsH+HINl0nPqqyHkNJXvYfvo/GTpdTPT7077/sGQ=; b=Sp6D5cdrNc8XNfbBaCkwfqW0eoLKUBcVw7uCHiAUnUFDI+HKSwC0UXkOwr+qV3I3t9Oj0C MwwvqQ4WPN8fCeGLvDY6oUkZx2J24y8pEzR0TZEvsRTn7KSg5f/EcgVhuWfyeLYEECo8Nl JvCi8OfM7NycVpitNo4LVy4DMoLoXDk= Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-5343c3daff0so312859a12.0 for ; Wed, 17 May 2023 01:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313946; x=1686905946; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QOzzsH+HINl0nPqqyHkNJXvYfvo/GTpdTPT7077/sGQ=; b=LEpcP6Z2iO5V244pOZDVZ9PD/DssYhxM/g2Dgywp7L5+4So8fiBCWCs+ByEv4uwRGf Lsrr8ZnveVCkcBoJOY7slGzezuGunBr1hkrG0WbES9lRgR4WkaPW3WkN7INx7m+7bNLa b+SJ6BYMLFPicf7kxRDWbsSTeTmNlQfqx0iU2i51i1P6ZXGuBr0QlzliS3x6NlTf2MJy 84wk5jYwGFVMpmaKVNv8+tkrtO5wnPxXEPT/COvyZcL1lvzf3LamcYd/jVgY6tFdIuJK KUFlZld0CYflLmPq/feOirZ1Up6XjBoz2hnunMuxMbHmjp6cuc8TyruCJLUKCE4dPmGy y0rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313946; x=1686905946; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QOzzsH+HINl0nPqqyHkNJXvYfvo/GTpdTPT7077/sGQ=; b=b8h5lsybha57NkMuz64VTRqRyCrCYJZ9rFCmqYxfDoqv92eP+oJh9MTS1+p5Hh40Ie /X6V2enYUe4XVbc22XviZvB6zrh8Q4DclQaOlgNPQ8YZHMgFjTJGXMFEkFxuockZRrvU 5LmSFANof0Xo2xLxs/QM/1xF8QUZFB2WV2Y4kUfRrjPRCts0RVqPxyBpUT/jjhyy4nrC pcYwZspKVyNN9CfOT27nNd0blurpfi1Ok4Oymar5cmLXPcu/EJ4bRBxYPycXWvUoP0WK 19H/5TwUYzylm8jJc5Ih0PZBe0ZFz22UrIDdGckeKzJdzQ/3IlLbmRkjkxsraJIOJmSt J7uA== X-Gm-Message-State: AC+VfDwcp53Iqaqmfvgfn6dgE5dP0kyiFG33AYtTFMXTn4JmONNMjmg6 9/zdXBx9RujcBhMVxf6vfxKFhA== X-Google-Smtp-Source: ACHHUZ5sLjaykUSvrFlKay55p8VrWsxrTs0AGlQ0fIeJ8X1NfblBBaQJci8YRv4xfW3zFc3U6grQNQ== X-Received: by 2002:a05:6a20:12cd:b0:106:70af:a5b9 with SMTP id v13-20020a056a2012cd00b0010670afa5b9mr10364681pzg.31.1684313945924; Wed, 17 May 2023 01:59:05 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.59.03 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:05 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 07/10] maple_tree: Add comments and some minor cleanups to mas_wr_append() Date: Wed, 17 May 2023 16:58:06 +0800 Message-Id: <20230517085809.86522-8-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: cz5zndzpz7y3urk1bp9zsb5d3cfh6cbg X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0601C80016 X-HE-Tag: 1684313946-57651 X-HE-Meta: U2FsdGVkX19No8cvBZuBiiBp4kKntoaUfZ71safXlpJlWGEgkhvXpx3+SS0a8zBRAfTlIc2K+AzuEQgh7e0DaaEAZ0jXxL546T9M2wVHsY1UT/kHh9lVnFvLye4KkANZRUwFhB9AJCTErkcwe0zGHuyYp2zsBa6y9JzCsNIBNr0QtZoSFPHrq5sBnjK8XXu9SYrfY9gdpDvhXNTrF0685SAV/Qg3ho7iBgJ9Sx08wfLWPYSFMxRa4LucHUE3fSpZTMXa0rk7hC554Hj0JNxuc6JY4pRF4SULPAjDG1ahyU4g1dukd1xd0hQkwWAt6h+Ju+OtLI+CidLfSdEX21WqgKKUBp6YyMl8Y4r/7wFawpQAmnfJi6yvyAJHr95vQ8DraqBoTKjVANjdOcJINpPs5HopfHJbdWBk3s/Sor41+OcmejmzTDyKVxL4GriIvl5Kn2UYPspI76jntK8ewG4vdf5DLbxwGKhc8Hcu3a2xsiWap9igW5rx5Pm/SY5diPr4GjJCvCt34n3vc2bCJuaw6W6Yp+l6biDhbRqyH/8HQ9iSNA5UchtECfFMGRkzFmvc50LLgk0FPFh0BIdkRlxcDsFmTMLXkUhYz1KjPkmUhXjtuLPu21q9iGSqGyRDags6VfKiAa77BliMiSQr/YRlceQd6E3RDZQSZNLrMhxChDkaSa6VgdsheHPxJGbnZHHiphg21nbMsyNEpVMEK1wj5At1be5mV07prF3iDGWW1WuZPaAuIHDpqUBApwVP4n/cUY13gTvDMMuDI3MkfAIHEy6g9W5ra9uXviTA5WxTZSBboUwWAWSKX85OXuu9VkReL5/gUjlA2w0IReL+NKCwCJ6A4w+5uurR7qpucS5su+q1FexRJfvhXJzdB3NfP9ghQ5cGWHPOItaUsjRMdYGNOmRg1o2RUt7q5nZDNj9rc+umziIfFsVU5QtYkhLei22cUsPv/6dhTauK8NQQNwD D3JUYvRX fbSUEy7VAazsO+JPqGJHjNOKUHrkT07XjP8xCdRo90LXUH3caLB/KHP5hNSOsWaNnPkGP0XIZJ9QZEmyS4AtBeXVsOT/jfNCb99TYbdg5iBkWRhlDboBr5HWn6djNh5EKtE9J8UM4oFSvVNjS22L0C8nYJe6wwxsu/wTFHU9R68rcKI3OoX+PUCPwlrHd4kUQ3rk8J2zgUPtrsS2RPzwn3U0L0KqObXOxdUsHnDlrmrNjqCb/68VlalW22EJ8xzqf8SrrNfjyaCZsF7Tsfs/2oix2ML8D2hxj+PmX59K+r0Tmp//OdYK+hOHOdXwy+jZRtpLJtrQpAKfYoMnNhSEXDIIi/A2Ac+rl/e67g7Am9yT3NvE1OkPWxyeo0SIYkTLC3YwSDbtE79VDxb+N4ie86avU+E+cXmQCtSUhJkjPWb0McUNIyfTZbuwsUI8E2K01uG8CvCkHljjNFeo= 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: Add comment for mas_wr_append(), move mas_update_gap() into mas_wr_append(), and other cleanups to make mas_wr_modify() cleaner. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 3b9d227f3d7d..bbe4c6f2858c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4308,6 +4308,12 @@ static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas) return new_end; } +/* + * mas_wr_append: Attempt to append + * @wr_mas: the maple write state + * + * Return: True if appended, false otherwise + */ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) { unsigned char end = wr_mas->node_end; @@ -4315,7 +4321,11 @@ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) struct ma_state *mas = wr_mas->mas; unsigned char node_pivots = mt_pivots[wr_mas->type]; + if (!(mas->offset == wr_mas->node_end)) + return false; + if ((mas->index != wr_mas->r_min) && (mas->last == wr_mas->r_max)) { + /* Append to end of range */ if (new_end < node_pivots) wr_mas->pivots[new_end] = wr_mas->pivots[end]; @@ -4323,13 +4333,10 @@ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) ma_set_meta(wr_mas->node, maple_leaf_64, 0, new_end); rcu_assign_pointer(wr_mas->slots[new_end], wr_mas->entry); - mas->offset = new_end; wr_mas->pivots[end] = mas->index - 1; - - return true; - } - - if ((mas->index == wr_mas->r_min) && (mas->last < wr_mas->r_max)) { + mas->offset = new_end; + } else if ((mas->index == wr_mas->r_min) && (mas->last < wr_mas->r_max)) { + /* Append to start of range */ if (new_end < node_pivots) wr_mas->pivots[new_end] = wr_mas->pivots[end]; @@ -4339,10 +4346,13 @@ static inline bool mas_wr_append(struct ma_wr_state *wr_mas) wr_mas->pivots[end] = mas->last; rcu_assign_pointer(wr_mas->slots[end], wr_mas->entry); - return true; + } else { + return false; } - return false; + if (!wr_mas->content || !wr_mas->entry) + mas_update_gap(mas); + return true; } /* @@ -4382,12 +4392,9 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) if (new_end >= mt_slots[wr_mas->type]) goto slow_path; - if (wr_mas->entry && (wr_mas->node_end < mt_slots[wr_mas->type] - 1) && - (mas->offset == wr_mas->node_end) && mas_wr_append(wr_mas)) { - if (!wr_mas->content || !wr_mas->entry) - mas_update_gap(mas); + /* Attempt to append */ + if (new_end == wr_mas->node_end + 1 && mas_wr_append(wr_mas)) return; - } if ((wr_mas->offset_end - mas->offset <= 1) && mas_wr_slot_store(wr_mas)) return; From patchwork Wed May 17 08:58:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244471 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 8CC42C77B7F for ; Wed, 17 May 2023 08:59:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CF7A280003; Wed, 17 May 2023 04:59:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 27ED0280001; Wed, 17 May 2023 04:59:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 146AA280003; Wed, 17 May 2023 04:59:12 -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 08492280001 for ; Wed, 17 May 2023 04:59:12 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B70B9A04FD for ; Wed, 17 May 2023 08:59:11 +0000 (UTC) X-FDA: 80799147702.21.6D86DE1 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) by imf07.hostedemail.com (Postfix) with ESMTP id DD13B40006 for ; Wed, 17 May 2023 08:59:09 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=e3RVLiwn; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf07.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.176 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313949; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=c2NEt2xRNbAeMZlKbxLJ6YsB/xGL2Lb8EXzhG/zDA3k=; b=JiDFE163hAIspjmT6n5XuGU/wZoffPuURXrgeJAe5DpKJSaV5L6pUpXnYv4xV18AVULZw+ /wjQwNXk+gwj++7F6FCSkmx/jmvjM4Uj05HlIAmbgvs2LYlhehRSuCjrMoOAmGkJOlAqi6 bcd2Fr8VLQSLwyefvO2KsbpxZco1gCA= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=e3RVLiwn; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf07.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.215.176 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313949; a=rsa-sha256; cv=none; b=sVW1MqWLZUHV195Byu9mMtqmRsZQONdqQzOWtWWhUjrTZam0QGG1ebhPZ+dAeL2O4+JGgS OAQ+AqisPppNVQwJKmSiAvNZNGUBaG1IJP2EBKNWOGt4WOZUj42Ja99iZIy7lNM3nxK5Kr 6zxLrwyxBwZDlxXcd0ApK1KRK/ax9BA= Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-52c6f81193cso306557a12.1 for ; Wed, 17 May 2023 01:59:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313949; x=1686905949; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c2NEt2xRNbAeMZlKbxLJ6YsB/xGL2Lb8EXzhG/zDA3k=; b=e3RVLiwnNDJjglhqaPR32b6FAYRWgjhUEJc1A7SpY9YkqYyI5oHyho43Tedkc5zwus aHgi1ZYqf7Cq4ND0XTOXDujMqiX5bzPJy2RZGibIBcrC/k5/aMp84AxWTf/aP2NCWhIR DyblUWcmvnVlSZKV9373659tbRllyKFikIOF1Wfpt8NGfxpcQs03vxNQpA/54vh1ICpj 3Zad9u1jj7xtrGQSXDJwfJJMXsx5fPPJuqUZwLmDSF7zeZdf4rOhSEhSkNvecFV/UIdg t7/KJsstAhtGxvKIJXclrTbcZed6B0ndQUqrgy0QJJ0XpDY0DFK9iHTZbSnQnWRdjhrP E4Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313949; x=1686905949; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c2NEt2xRNbAeMZlKbxLJ6YsB/xGL2Lb8EXzhG/zDA3k=; b=KUZPjB0K2DrQcusZhGYH/7fx6etp4hkBbOVi0/2QKz1+5oZzZfFNyCM4UR5iR3HNnf jG90QyGWmxJNTNKDk76rwAAPWl0P5UdGC7EgkIoTh399OHKFekFPgbi53Y0nGjiHJnIg ryjuACXT2N+xjUuhyIEB4FwotZblub/+b1euG4C50nkG5O751bDxqDQUv3YBmtLegy9Y 6L7KJweCqEFG4Fc1g4MVsFkLzfvMoKMvAn/vnmxvGEU/eUBhiGnH3igz+CxHxzAvwiSW eQr0HLapwMDvKX7ngZbCkcfuU49Uc0yxYqKyTCVH4Y2QJ7bbjP89MCISG+H9NiDHa6rD OSng== X-Gm-Message-State: AC+VfDwMb0cu7eCsQw6N8jid3swReas4igoBA8M8LiY10oVYQU+XW1Yh 9WJ3nu2NT7BtfjPHifgfPJE7NeMuDFmS6M9K8eo= X-Google-Smtp-Source: ACHHUZ5b7PIeql3DsYG38mUQCLvjrV3k1K4DbQmsm4PKRgFsDr9YaB+sYp0r5E81HI1DCdL6LBOLFg== X-Received: by 2002:a05:6a21:150f:b0:ef:7aa2:3cfd with SMTP id nq15-20020a056a21150f00b000ef7aa23cfdmr35267926pzb.50.1684313948739; Wed, 17 May 2023 01:59:08 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.59.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:08 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 08/10] maple_tree: Rework mas_wr_slot_store() to be cleaner and more efficient. Date: Wed, 17 May 2023 16:58:07 +0800 Message-Id: <20230517085809.86522-9-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: wr4cpahbqh5r9pfptyoqcnywxpkos76p X-Rspam-User: X-Rspamd-Queue-Id: DD13B40006 X-Rspamd-Server: rspam07 X-HE-Tag: 1684313949-146961 X-HE-Meta: U2FsdGVkX185SS7AkNOqnaiEVvymZye4162ElyfGrBA1I2F2lDh/FPQVC8itB1yUshByzWPEw2NPg8uxdBZRMyNhwMpuiuhq6tmfWAR9HhHRT0XKI4fRSm/t+vSkKG8m8fA9DbnTBTDIOqz2ZUB5An1KD9CdX+Rsz0Sw+AvejnDAEt6ABTCQzsWt3OmRIrIkEAu0zyKsK+xk+4VR1+Yo4kThvWcOZ2McqqtzjXrJj+LM8TVYgOKwzgBGbLDwoqJvP6eUmcbI81OI1vjkKJY09ZpFwIMEQdaOB2qN9JSlkghwAPaMkUCqZIlofxxl6EPlEq3Yvg2ku53FWXjVMpbqgvSPrO+FFYyDz4n92wQ/erUIwGzktlk671Ly6nXf1hkzrWnEcDW70pXBnn5Cd27efRKSh8fnVb8Cl8Mxm+MlZKmAaDhmAcOrbDBR/sjKQ0TqlSXyewgeY0LtDrI23jAR5NHHhRRR6hkDnJRgVqgjtw9IWVHXmuTbG1Vps/TlLoAb70h3zOym3VNeufT97R8cxPouiLfVtAmaNrJAJnAwst8+9mMz3KNF78gbWd4SDMYcDElvbZQbMXriZ177oMrFF6uJyI6JZUVXTlpEUEUCx0FimjEh22tD8sy5J6jaKQIreLYO+/BpU/MPCEOBy5Sz+Yhn2t1ZYxmYOJC3qDRynmSsarSw9dGtP+y5qna74gApL1NKoOaxW4oKoxkwkfqbEjwE7XBn0InrdBYxwMgusL9eOaSqsvl3APu5ih8NBoWMAEvlakMVC/lkFR+gHdPf+vb7Ggs4/jrHABnk+sEZkJZ7d07lFqjjRFebBeLYPY3M7KhUYkg9tPUSC4vEwb1fMLvBoArbdF6bs58OV1eGMyCxUGUdq4jncgeJ4g58JObnoIW6jaUly5jt0I9B8roHQ2HAee4q458nI+lMGJFl+bLXxFMAm1eRxjv+Hz2aypybpMLyClUfOBBoMDMO2Xg uuNNusgQ zfP9SAd9/aZCppXs5fy16P67WSelrMoeH/t4v2LkG2YzkjiyCppKUpUzddiS+19o6FcDkoXnZwKwSn3+wx4g7Su3jSwnvtJxF8+hCkTO58k1Km5dF0SWxz1LBRD8vg3YhtZpInTbYdcGpovmNtTiHsiEyG5DmQu08tBMBVumwtshT2vLTVsWP0vMafry41KTRBXKLc9GGBRwsAr36KA33Ge/IIr4NDLSrG7lHV0INpUtD8Aeud1Cz1VcchJPHRySd4/prKADtWBUyGcZ/627aG/xAtrvifl7eJwC6pmC85MkvHW+g9j1mYolXjyD2nmuhRDgK7i1yaD0iRisX9Y41N098NPwbRZcpBTknmO1MUlW2bfTAA6XvI959IWA85nLMzUsh232bhBc2gKm5btUIFX7GLfToDszLuJxceHOC3r3Cic+LwI/cBNqXzDLKlG5ypgFwrCJ9YlmJYPaKKst0gG4t4wfVseeb7LtUzN5VWc6huqv1gJaQwg6Rpw== 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: The code of mas_wr_slot_store() is messy, make it clearer and concise, and add comments. In addition, get whether the two gaps are empty to avoid calling mas_update_gap() all the time. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 59 ++++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index bbe4c6f2858c..25a8b7d5d598 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4200,49 +4200,38 @@ static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas) static inline bool mas_wr_slot_store(struct ma_wr_state *wr_mas) { struct ma_state *mas = wr_mas->mas; - unsigned long lmax; /* Logical max. */ unsigned char offset = mas->offset; + unsigned char offset_end = wr_mas->offset_end; + unsigned long lmax = wr_mas->end_piv; /* Logical max. */ + bool gap = false; - if ((wr_mas->r_max > mas->last) && ((wr_mas->r_min != mas->index) || - (offset != wr_mas->node_end))) + if (offset_end - offset != 1) return false; - if (offset == wr_mas->node_end - 1) - lmax = mas->max; - else - lmax = wr_mas->pivots[offset + 1]; - - /* going to overwrite too many slots. */ - if (lmax < mas->last) - return false; - - if (wr_mas->r_min == mas->index) { - /* overwriting two or more ranges with one. */ - if (lmax == mas->last) - return false; - - /* Overwriting all of offset and a portion of offset + 1. */ + if (mas->index == wr_mas->r_min && mas->last < lmax) { + /* Overwriting the range and over a part of the next range. */ + gap |= !mt_slot_locked(mas->tree, wr_mas->slots, offset); + gap |= !mt_slot_locked(mas->tree, wr_mas->slots, offset + 1); rcu_assign_pointer(wr_mas->slots[offset], wr_mas->entry); wr_mas->pivots[offset] = mas->last; - goto done; - } - - /* Doesn't end on the next range end. */ - if (lmax != mas->last) + } else if (mas->index > wr_mas->r_min && mas->last == lmax) { + /* Overwriting a part of the range and over the next range */ + gap |= !mt_slot_locked(mas->tree, wr_mas->slots, offset); + gap |= !mt_slot_locked(mas->tree, wr_mas->slots, offset + 1); + rcu_assign_pointer(wr_mas->slots[offset + 1], wr_mas->entry); + wr_mas->pivots[offset] = mas->index - 1; + mas->offset++; /* Keep mas accurate. */ + } else { return false; + } - /* Overwriting a portion of offset and all of offset + 1 */ - if ((offset + 1 < mt_pivots[wr_mas->type]) && - (wr_mas->entry || wr_mas->pivots[offset + 1])) - wr_mas->pivots[offset + 1] = mas->last; - - rcu_assign_pointer(wr_mas->slots[offset + 1], wr_mas->entry); - wr_mas->pivots[offset] = mas->index - 1; - mas->offset++; /* Keep mas accurate. */ - -done: trace_ma_write(__func__, mas, 0, wr_mas->entry); - mas_update_gap(mas); + /* + * Only update gap when the new entry is empty or there is an empty + * entry in the original two ranges. + */ + if (!wr_mas->entry || gap) + mas_update_gap(mas); return true; } @@ -4396,7 +4385,7 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) if (new_end == wr_mas->node_end + 1 && mas_wr_append(wr_mas)) return; - if ((wr_mas->offset_end - mas->offset <= 1) && mas_wr_slot_store(wr_mas)) + if (new_end == wr_mas->node_end && mas_wr_slot_store(wr_mas)) return; else if (mas_wr_node_store(wr_mas)) return; From patchwork Wed May 17 08:58:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244472 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 52D99C77B75 for ; Wed, 17 May 2023 08:59:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D7CB5280004; Wed, 17 May 2023 04:59:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D2D35280001; Wed, 17 May 2023 04:59:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BF563280004; Wed, 17 May 2023 04:59:14 -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 B1B3C280001 for ; Wed, 17 May 2023 04:59:14 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7A024ADDD4 for ; Wed, 17 May 2023 08:59:14 +0000 (UTC) X-FDA: 80799147828.12.A16B6D4 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf24.hostedemail.com (Postfix) with ESMTP id 7F4A1180007 for ; Wed, 17 May 2023 08:59:12 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=PVkHjKmN; spf=pass (imf24.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313952; a=rsa-sha256; cv=none; b=cJp/y5ib1QPB3u6DvB0hGOFpXSVXHXujlWLQzCy7Nl8Of19QJczj3uxhzcjIaKon1ISOgD cPdPs6+vwlZ3DyHrhjgH4hBBooX7LqtA04hOwM2Dpk74TQS8BRs7DoovDglcDjBPTa61Sh wwOxZnts6mfIYNCdRke2cJZYX+n5nc4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=PVkHjKmN; spf=pass (imf24.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313952; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=L9aNGrqQBPjiuab0lkbsDijWS2guYts9Wyl3byUG0bc=; b=e7QicgAevoXSxF2yfN73af8l22obMMpHV7So4mhJf1bQi3CXw29VCZc0yGquSV282OwT/L 6qqTFXRJk5FgThUFf1YYv4H+tjxjgOfK9N3N2Mvh1VhdkKuEUJHuUCP3MEKBCMtDmKWWKe 9h9HMgw1Znw44tmfFyBfsfAytAs/VUI= Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-2502346bea0so447925a91.2 for ; Wed, 17 May 2023 01:59:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313951; x=1686905951; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=L9aNGrqQBPjiuab0lkbsDijWS2guYts9Wyl3byUG0bc=; b=PVkHjKmNBRNoPUuywfzQSWpLOEe9y6Le98hPE+07bPGymbDIGtwrSk4xVyi3eR0k2S bX5kBB0H3NlzJfQEoP7sfHuEmEbDGUEcp9HPEsMVuzE+ptHbpQXZPJ7+zrXdwQNJ83ce 8ENSur0Opp8Zbg8MGsz+sUNE0qhL2bVj2HGCLmTOb1inynR0m+UBjc0msDu/7sxqJM2p Aa3bFJ7LFReAOst5AYiFDvfGMDZHcviGgITrQh9bibrxAdKMbOIHjjI+iqCOknwkkP79 K3v1Zx+QjZw5pAMKf58p3Ra2EZ8oyz7Ha+OckwnkN0YlwvSvcwbx3v1bsdc5IkIx16By FVNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313951; x=1686905951; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=L9aNGrqQBPjiuab0lkbsDijWS2guYts9Wyl3byUG0bc=; b=Jopa8c28FG5t1+R1yrr7QVEsfJfh+QQcs9c+LX43+amaqkB6qYYBLysenUHJMxJUse s9c9RPUbiFqidDY8fwRauyTXV1XwbuRLsafrTwnj04M9qJi70dFwOPKCPd1YWJF6Tdix DU/qvW93CDcl97SW2wziK2jAc5gFipxX9gzN4PkcBOSeoT0nis/TG7iN7VEdjztim4fI RmhAsHoI0LTmlLmBLDXbq2yzFJVLgN3lq3l0g392ltZilMbHbWfMkdWhrY97rHCE7hGZ wkfLm7MNiE92owhJgn+uAt0xKp4HrpvGSr8sNcB7Vrv4tOuPw2r5WEHqgGzzK2g44xAW CSHA== X-Gm-Message-State: AC+VfDzg9FvJkb6kMNqBOCODFCaqQmfU/b0uQ0qGDiCo9vWFweQr3W4S 0T5fHXxdMXidTtettGM3usXX5A== X-Google-Smtp-Source: ACHHUZ5DxkbsJqpwqqa/RF6nfH0fg2jWd8EQ2nzER6XH1u8bbzG2vqw0bz1d1ax/FUaCfeRQQtr7dw== X-Received: by 2002:a17:90a:af86:b0:250:5194:b135 with SMTP id w6-20020a17090aaf8600b002505194b135mr35679211pjq.34.1684313951480; Wed, 17 May 2023 01:59:11 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.59.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:11 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 09/10] maple_tree: Simplify and clean up mas_wr_node_store() Date: Wed, 17 May 2023 16:58:08 +0800 Message-Id: <20230517085809.86522-10-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: om71u6zq8hjrihkaawd3dfccsr1xgwkf X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 7F4A1180007 X-HE-Tag: 1684313952-744178 X-HE-Meta: U2FsdGVkX19V0S0zBhnsQxTiyDil0hl4GdozkEYVvNQTy8QE2u5bLwutNo+ewSVe/Lkw7rnz+k7f51cJwEG6OzOjfcRlChRMNWFHjdX7zawIBqwSvt/pfsWL0eM7GclKOqQz2pFjzh4B9MUXKbyMQYOKjDJhgHj7KN7zu2gB3HvVFF8z9WDZW6kkqLJys3XQGrh5u999EZziuIWZCeHgwjU/fKH/07pYP3rjmRG6tfN1SBvNe4DOhw95AXper0XBCyrCUd7MZLmSPJ08y5Uf+keN/zxi8rEcw460hV8x+tDZhgOHNsFOfgdhuUZdYwqucrCILTFq2ZfmaixxkB61DxAa4bCz5mxciKrArmkHJLzmE0Ujn8HIKeFIi8H6WkncL9q0ydjh2glBiJaI22gzGHTwYUWwNSd8ifhfP+XKS+/cI30Y/cRpTUsPdXIR83N0S0xCINKqeXxGHhV0jhfbo5jxmfZE4RnhD3mqyYzVb/N2fSvmEuvO+9wQPoBBaPnghzZndpgv+d2hdDeQKiDPEttsfyVFxDSAsMyVHDA0FJYRXmZ/N6PHlu+T0/j/Y+GyYJjADO/lAHQTBdjGEloB5X+xmXS/l3umbFZKiRdZ3e1F1SdmZncodK+un0DUCdzDfQCggxzZXir8+Egmcl2gUjRlm2VllMrIzSZ8mbD4l07mnosM64mALBTjNQBjvfieu6vlmVsd2JdhC+EBsD+iL7I5ZYSUX4CofctWlyTLnPe5r0/og8kD3UQh9L3L/aHGwC0EUn57OuRFzNhuCR9vyPasC4ePI4Cu3bpIPA+qkrNgzCv09r9aEi2k9efeRD8O8k0FRzHEXsEHKEmisOwUdbM7WKJTxEGomSDeVZvYphLDn2j9fxsBFabPDLjcvj2fcFx8OwbHzn4J6bizkeDvr5G04CjEXuOOnpox4eCC/nkPsbjo7KcC0Tx0vBbw7vUbrDj0ecJbWP2gWo9Z48f YUZjCokK j+B7LshwrwO7z5jX212/wiFwVvNMIcoR1GQNONiKdeLKlPgcx0I7hiOlBSfk4L6ekFlxvNn/L57CErwkBAWJt7uBx7tkGWZE6O+4lxkF5NZ3kc4sj7O5/pVP7pEhEmqy39nND1EYOV2ZeiHw5hMMUDPnXS9yehs4wenWJCjmSIiy6OzLXu4oXTPErt0p1+uYlYvv4rtxT2JWKZX/jILM3QF4mdxY5mQmqi7dEnNOtSThw7kNonbNhn7UbNNHvY6btfeyKRU5FIcyp5MqXKjIV01+6mLyudd2JnXFD0nfPtth6HPQBhe44skz3tSgqTeMpat1MuUY2GYQ2SD6G/8wEMAsknkpp3EAmtlOfAL29QN48Rl/Jk0J1Ad9Yrf81DHEE4hbrWO32UgS1EaQCCYDURpxENDvJ5vGFIHRDkD1kTKpsEmYKZobe+TfF/3NijcAGMic4kvmJmZZuCWo= 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: Simplify and clean up mas_wr_node_store(), remove unnecessary code. Signed-off-by: Peng Zhang --- lib/maple_tree.c | 87 +++++++++++++++--------------------------------- 1 file changed, 26 insertions(+), 61 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 25a8b7d5d598..b86001ad4632 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4072,52 +4072,27 @@ static inline int mas_wr_spanning_store(struct ma_wr_state *wr_mas) * * Return: True if stored, false otherwise */ -static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas) +static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas, + unsigned char new_end) { struct ma_state *mas = wr_mas->mas; void __rcu **dst_slots; unsigned long *dst_pivots; - unsigned char dst_offset; - unsigned char new_end = wr_mas->node_end; - unsigned char offset; - unsigned char node_slots = mt_slots[wr_mas->type]; + unsigned char dst_offset, offset_end = wr_mas->offset_end; struct maple_node reuse, *newnode; - unsigned char copy_size, max_piv = mt_pivots[wr_mas->type]; + unsigned char copy_size, node_pivots = mt_pivots[wr_mas->type]; bool in_rcu = mt_in_rcu(mas->tree); - offset = mas->offset; - if (mas->last == wr_mas->r_max) { - /* runs right to the end of the node */ - if (mas->last == mas->max) - new_end = offset; - /* don't copy this offset */ - wr_mas->offset_end++; - } else if (mas->last < wr_mas->r_max) { - /* new range ends in this range */ - if (unlikely(wr_mas->r_max == ULONG_MAX)) - mas_bulk_rebalance(mas, wr_mas->node_end, wr_mas->type); - - new_end++; - } else { - if (wr_mas->end_piv == mas->last) - wr_mas->offset_end++; - - new_end -= wr_mas->offset_end - offset - 1; - } - - /* new range starts within a range */ - if (wr_mas->r_min < mas->index) - new_end++; - - /* Not enough room */ - if (new_end >= node_slots) - return false; - - /* Not enough data. */ + /* Check if there is enough data. The room is enough. */ if (!mte_is_root(mas->node) && (new_end <= mt_min_slots[wr_mas->type]) && !(mas->mas_flags & MA_STATE_BULK)) return false; + if (mas->last == wr_mas->end_piv) + offset_end++; /* don't copy this offset */ + else if (unlikely(wr_mas->r_max == ULONG_MAX)) + mas_bulk_rebalance(mas, wr_mas->node_end, wr_mas->type); + /* set up node. */ if (in_rcu) { mas_node_count(mas, 1); @@ -4134,47 +4109,36 @@ static inline bool mas_wr_node_store(struct ma_wr_state *wr_mas) dst_pivots = ma_pivots(newnode, wr_mas->type); dst_slots = ma_slots(newnode, wr_mas->type); /* Copy from start to insert point */ - memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * (offset + 1)); - memcpy(dst_slots, wr_mas->slots, sizeof(void *) * (offset + 1)); - dst_offset = offset; + memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset); + memcpy(dst_slots, wr_mas->slots, sizeof(void *) * mas->offset); /* Handle insert of new range starting after old range */ if (wr_mas->r_min < mas->index) { - mas->offset++; - rcu_assign_pointer(dst_slots[dst_offset], wr_mas->content); - dst_pivots[dst_offset++] = mas->index - 1; + rcu_assign_pointer(dst_slots[mas->offset], wr_mas->content); + dst_pivots[mas->offset++] = mas->index - 1; } /* Store the new entry and range end. */ - if (dst_offset < max_piv) - dst_pivots[dst_offset] = mas->last; - mas->offset = dst_offset; - rcu_assign_pointer(dst_slots[dst_offset], wr_mas->entry); + if (mas->offset < node_pivots) + dst_pivots[mas->offset] = mas->last; + rcu_assign_pointer(dst_slots[mas->offset], wr_mas->entry); /* * this range wrote to the end of the node or it overwrote the rest of * the data */ - if (wr_mas->offset_end > wr_mas->node_end || mas->last >= mas->max) { - new_end = dst_offset; + if (offset_end > wr_mas->node_end) goto done; - } - dst_offset++; + dst_offset = mas->offset + 1; /* Copy to the end of node if necessary. */ - copy_size = wr_mas->node_end - wr_mas->offset_end + 1; - memcpy(dst_slots + dst_offset, wr_mas->slots + wr_mas->offset_end, + copy_size = wr_mas->node_end - offset_end + 1; + memcpy(dst_slots + dst_offset, wr_mas->slots + offset_end, sizeof(void *) * copy_size); - if (dst_offset < max_piv) { - if (copy_size > max_piv - dst_offset) - copy_size = max_piv - dst_offset; - - memcpy(dst_pivots + dst_offset, - wr_mas->pivots + wr_mas->offset_end, - sizeof(unsigned long) * copy_size); - } + memcpy(dst_pivots + dst_offset, wr_mas->pivots + offset_end, + sizeof(unsigned long) * (copy_size - 1)); - if ((wr_mas->node_end == node_slots - 1) && (new_end < node_slots - 1)) + if (new_end < node_pivots) dst_pivots[new_end] = mas->max; done: @@ -4387,7 +4351,8 @@ static inline void mas_wr_modify(struct ma_wr_state *wr_mas) if (new_end == wr_mas->node_end && mas_wr_slot_store(wr_mas)) return; - else if (mas_wr_node_store(wr_mas)) + + if (mas_wr_node_store(wr_mas, new_end)) return; if (mas_is_err(mas)) From patchwork Wed May 17 08:58:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13244473 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 90319C77B7F for ; Wed, 17 May 2023 08:59:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 31D4E280007; Wed, 17 May 2023 04:59:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2CD0D280001; Wed, 17 May 2023 04:59:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 194D3280007; Wed, 17 May 2023 04:59:18 -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 0BAEE280001 for ; Wed, 17 May 2023 04:59:18 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C6E99C049F for ; Wed, 17 May 2023 08:59:17 +0000 (UTC) X-FDA: 80799147954.24.9443DB3 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf14.hostedemail.com (Postfix) with ESMTP id C6ABA100016 for ; Wed, 17 May 2023 08:59:15 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Q7oXeL4s; spf=pass (imf14.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684313955; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4yOLk/7tHD7/ODqSb7roZU5d9FbnbbLKf36QePLl4Fs=; b=1CiWuTH6XglwSgpYTl+eN1H5U+6fUQEXyhDtXeV+fs83d25um+5MGtWtmkT+llysE6DkMj TYeJeZkq3AoEWCNNpsxxUpQX+if9hJyflG2BKLugjTZUr/kHeHQ/hqehucT4oI9UNRD6wU AVcneiTUb9u42fGpPLTNA7HrN5inkak= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684313955; a=rsa-sha256; cv=none; b=p803Z1zKia0f46Kw9/AhiF2mvrddgTRoU2/t3ZxO9PEwh80e9koJIEJK9ZpLFxSDW00m/P zUhvVoLxzMLHlac667ZW1JTjdVRMbb06OOmHD+pTiDzdDR0m6XwcMFteBkeVeWgWK4/Im+ MJQ6ca1L99aBFUuGLIXVPjrSP385TSA= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Q7oXeL4s; spf=pass (imf14.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6439d505274so342626b3a.0 for ; Wed, 17 May 2023 01:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684313954; x=1686905954; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4yOLk/7tHD7/ODqSb7roZU5d9FbnbbLKf36QePLl4Fs=; b=Q7oXeL4sctdcQKhumFBqJRf42lgk2FNTENFZu9Qkrb6TOXTEIcxw3K5SI70QmVnuHX 2OCeSnCqCeKxNz0bWKvL1ZvkX9V5aKtUkcZDe+E7XLyPfqXLnSp98eUqDOeL9woLgcpY si1rd8DLRkRyXptPznV12FXg8kcZDXpdfWShJ5yy2oKxn37RsKt+8+Va4+GLTaD/2yqk hyBRT5SBkbQNtwyol39lNKPfWRPA2+YT9s8nqCvwpbEzQi+urdyy27mjKENKLNgztn2B p2kqsdiNl/iwhz4U774B51iyoC0dqLHrV3i4E3vAN1Fi/ZG+zKqZEwvC6eXEiuqoFYD/ 6gQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684313954; x=1686905954; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4yOLk/7tHD7/ODqSb7roZU5d9FbnbbLKf36QePLl4Fs=; b=PZsStbpfXMDBWTmER7YrGbR8ALpDikD1PRa/pwWtKfVOcs4hCj2ddCaapOS9BS8AHh Yu4Qz/RxJl3FN+5qfECWRD85BvPCeEgNq8kwzySc/jZRUqiXtH8+8Lr+oPAikV/XHBy0 tYfoikDqNb0YxcG2B8WvqAgQj4t+t+ZdgeKIlP/M1ZJhuMpBJBTrFBY1eFACixX8kWDQ DkpYbN2a9vozw/bWidX2BptDCEh28ds6lZfpZAccvwd65xhX9i/EgldomL8QDRfKhUWR K9bOeSnv3zxOni2+ed207U6dRX2D4nWmKApUZ8zL52QSl1O6YXV2QFWqDITbePDNTM8F K65w== X-Gm-Message-State: AC+VfDwTRc0GNpkP440EbCavrKnVKaPv1+gKVMNSAt7usly/f0nTzvEy 4WttQSfaSBQqvrRKGx3T/5FC3A== X-Google-Smtp-Source: ACHHUZ4H+myF7IIjsdfH08K6wJiNewZT9TZjcR0vwBuPvaaRoKaGKaynz0WzQUoHt0UQoLpwbdi5NQ== X-Received: by 2002:a05:6a00:2d12:b0:644:ad29:fd37 with SMTP id fa18-20020a056a002d1200b00644ad29fd37mr14335pfb.28.1684313954312; Wed, 17 May 2023 01:59:14 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.255]) by smtp.gmail.com with ESMTPSA id m18-20020a63ed52000000b0052c9d1533b6sm15056765pgk.56.2023.05.17.01.59.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 17 May 2023 01:59:14 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH v2 10/10] maple_tree: Relocate the declaration of mas_empty_area_rev(). Date: Wed, 17 May 2023 16:58:09 +0800 Message-Id: <20230517085809.86522-11-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230517085809.86522-1-zhangpeng.00@bytedance.com> References: <20230517085809.86522-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: b6ks5yr5hyx1gieazjjwgr8wskh1g15u X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: C6ABA100016 X-Rspam-User: X-HE-Tag: 1684313955-481073 X-HE-Meta: U2FsdGVkX18TT90v4IGaFtjzeSMNndO/RR0A+JirfWWdnz1yVUhHIB1VtdTttSLNMDP4aLFppGpaPffJflAAsEZTHBD9ostyEtFjAjyRwlWVIUgM81nMuG4T9jCIiCQ4o14OYwihpZT3Q6Z4ofGXGhvs7cjBioQUogQ3SkwJeTElQ3PXBnjSZ2fBBD1Iev6xjkWRGiQebWRuVj9dd98qjCUD4HFbX6UhH2N2Hrej1c83YKdUWece2TXQufqYU0THzp8HSAV55biEtnCOcVhqaUoGGBpUp5x1H8RKbLPu3NLMYuNb6uPIu30N9/eeNoJvZJIPe5R0C65ZJkkkKLlX+jlvnG6AliZWvsb6GIYdyejGFysKSCx/agQVdkABuNfmRu4EqE7PzpTQEzRAVPFC6UUc6y2BYcVU9bkXthL6sLTpfx0cdD6U1fcd2YXLKbFSNBDYKQwV1ah2KTyTx3ieh9PlSatgDto4IaFu9M4GmGvnqMufRuesRfP6pAgp3gP+a4MTmjJj7C62KFdmctfzkq93ef7N864S+fKclRkEbkaPh1tiRM3p8QmiXsC7Dkh3i8fw03nodYpTy3PcFphYbUR5w9X5TPSnyTCRMdxjf6YboC5ztl2t0WcJpCG4FwTDSuw19cWG8wU1YzVdM6HOXTLROr9kcJJSo3dg3+14rzXsqPtwxbWPqc8l5VJYePTlb5d9vqcxpWadwLj9eha5BAzcIW/1kWvXcTbHUgUT5HV4kwWy6g/V+vWE/lJvNHyZNMqECnzHhHsyICGuU9PmIEFJd2ByDZ+Et91pGznQZjde0KPh+/gT9XqHUP6nUa/fudSaqAYyocYavrun3VG9t6o3EyZeeKqMYp7xLejcHeKMY0H3EdEfcUUkC3GUMqJISenFm0oHK0ez93ijW55VtRoTQpMedHzhKGAoTh+/Y+cyCaMGUOa6FaPpgqizbuZWrW8BD129mLlf4U09VJx 89POZugl qY2tcaPLd8u0OB8SSy3E1xKgIOS/C5WJWzF+hWdbeOE300ip+tllR9G2Sp+jGhcJ3GBUPioT6LlVhrcCV1dcwKpg/tzsKegIoGXwf/qrDSFOqGqK/lCq4bGG+4ipl/9fJZIjorEsPPmAdeyZjDswAwJTvX1U6r0V2Ggdba0qcYBkdp7DyRK+jrXITVAtIOjpfC6KqVDnCpApOMJWvmMDepuOXdJKODsTFBt04Laxu8rfJIazA2zMaWl75V52F/VNmhucHJ3YQB49v0FSQqTnyNuqUrs5eELeNV5efAkh2lnWsCcXHGEJPj5HdQ6lMR0Rehg8HJqMSfT9MG/FTiNQtajl5VyqpTdsdJIDdcBcrm2P3F55HWNXkeFK8Mixno78OcwEzWX9jLRe/zeW2A6gMExiI5jWG4WyGqdaqvvHd2F7wUK0qg+wtiJ8a7e1fXJr2kFmGWayozU9F14U= 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: Relocate the declaration of mas_empty_area_rev() so that mas_empty_area() and mas_empty_area_rev() are together. Signed-off-by: Peng Zhang --- include/linux/maple_tree.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 85559a34a098..c4681cb8414f 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -474,6 +474,12 @@ void *mas_next_range(struct ma_state *mas, unsigned long max); int mas_empty_area(struct ma_state *mas, unsigned long min, unsigned long max, unsigned long size); +/* + * This finds an empty area from the highest address to the lowest. + * AKA "Topdown" version, + */ +int mas_empty_area_rev(struct ma_state *mas, unsigned long min, + unsigned long max, unsigned long size); static inline void mas_init(struct ma_state *mas, struct maple_tree *tree, unsigned long addr) @@ -497,12 +503,6 @@ static inline bool mas_is_paused(const struct ma_state *mas) return mas->node == MAS_PAUSE; } -/* - * This finds an empty area from the highest address to the lowest. - * AKA "Topdown" version, - */ -int mas_empty_area_rev(struct ma_state *mas, unsigned long min, - unsigned long max, unsigned long size); /** * mas_reset() - Reset a Maple Tree operation state. * @mas: Maple Tree operation state.