From patchwork Tue Apr 25 11:05: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: 13223202 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 DF5D1C77B61 for ; Tue, 25 Apr 2023 11:05:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FC5D6B0075; Tue, 25 Apr 2023 07:05:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5ABFD6B0078; Tue, 25 Apr 2023 07:05:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 475966B007B; Tue, 25 Apr 2023 07:05:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 350796B0075 for ; Tue, 25 Apr 2023 07:05:35 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 06875C037C for ; Tue, 25 Apr 2023 11:05:34 +0000 (UTC) X-FDA: 80719632630.06.EC34823 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf15.hostedemail.com (Postfix) with ESMTP id 0E2F3A0025 for ; Tue, 25 Apr 2023 11:05:32 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=QmK+bpu3; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.171 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=1682420733; 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=k3gtz2twduYMn314aWKPdPXlwzAEr/ThikDxq/EAqMc=; b=uEw2aO4E4Z+m5/a/5MNQBhnj3LeRcsVtzRdiwk8+rPIYcFOIVivN+2TKcjuP1buAKpGMlv 1xmiKI6EJFz25ZKuXRNUj9ECnq78kWeWJC0gwv/0vHayN+FEWE9jUhnA0a68PwC2WWS7KE Egz7ucg+HGXUBqJumA6Cks9dv8m0O3c= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=QmK+bpu3; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.171 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=1682420733; a=rsa-sha256; cv=none; b=a9ByNWaNlZFiirr9cVkUf5+MlnHLJlxzX2X1cNrtnpaPwVvZ/r9bFURpdV/0ejKaezXcY4 +rKD9sWvQ5GxObehQcE1lA3Dn7T8dZV11zhPGI+ENrCmoeErr6sjjqYSH60921T9Wnm7Gl a9Of6XZXXrx6xXkpW1d/3qItiUJMpe4= Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-63b62d2f729so4546274b3a.1 for ; Tue, 25 Apr 2023 04:05:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1682420732; x=1685012732; 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=k3gtz2twduYMn314aWKPdPXlwzAEr/ThikDxq/EAqMc=; b=QmK+bpu3OrfPdSwq5btASAzKm3wgRczj/+suiuqNcMy2NwVbP4ROvdfevWx4rQNazE z51Uz+aGBN2J44RqQUvlScXgks+MkypgIVZPjhcPt8g1vNU6HSKACdUnLJH86h3Trf5x 29A4FD1yH8yNeYxbdMGM1UejkWDX+SNrdDJtE8vfWm8swblZ77+lqF7zKpuickVwqdC4 oAnQBvIRl6pV+0feNB+9re2SLlggZIRIT1Z67T0xC9ipIzv87BVHDvgkdSQ1gdFZnefA DXoZ2TKFJCZFzR8vjJJb5NhBPKZIus1BetzLfmTTHhYzAZW9qSZtdi+W+BOt1gqG8q5m iEtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682420732; x=1685012732; 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=k3gtz2twduYMn314aWKPdPXlwzAEr/ThikDxq/EAqMc=; b=aIOJ13kH/DmY65EysN9V2XwFqFgU2CvX7+WvKa3jOjlhKi4jNGIUOZofzV+2/XgrxI viQwj1M9luMX6op6FOKDTEmqJpVLkBpnDe7ngAAyJji02hmDEVQ4gFyCXAttAWQUPkaV PwjT19toauGf8D6zYyK7Ch4biRmLcCDmlEALSLrRjR7pgnrLhST+MwgtjfMXgNx2hxck V723HSiCNqUL8P2VXsQI0hEP+sQYxYkpK2l0/dJnwhgDmj6PK2Qbd6GEr3Yrw77wBbIq 5k7TVgqO0sbyeKlCHxdx3Lz6XV3N8VwpqJcfWlTPksReYzSxBDAgSLIf6bKyS+xnTP7H dPmg== X-Gm-Message-State: AAQBX9eWX7r5WLB9d4bKMnYBMPPvN+jNqlgIW9lPnQpN3b72FDUS/dy2 bPy3JKvm9x4HwYlp9eVCc5lAMjHrJt86kd/n9Uw= X-Google-Smtp-Source: AKy350a6riQre9kg4t0NqG+0JOJCUjRgULCxd3ko2U+yTXTnw2AYPmRvhUw2mqlYxBxuXlVpDaZ1AQ== X-Received: by 2002:aa7:8884:0:b0:63d:2c2f:e3a2 with SMTP id z4-20020aa78884000000b0063d2c2fe3a2mr23868065pfe.18.1682420731840; Tue, 25 Apr 2023 04:05:31 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.236]) by smtp.gmail.com with ESMTPSA id u3-20020a056a00158300b0063f3aac78b9sm4422169pfk.79.2023.04.25.04.05.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 25 Apr 2023 04:05:31 -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 2/9] maple_tree: Make maple state reusable after mas_empty_area() Date: Tue, 25 Apr 2023 19:05:04 +0800 Message-Id: <20230425110511.11680-3-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230425110511.11680-1-zhangpeng.00@bytedance.com> References: <20230425110511.11680-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 0E2F3A0025 X-Stat-Signature: mbd7c4xsenrgx34ziouf75c8f84moycj X-HE-Tag: 1682420732-12880 X-HE-Meta: U2FsdGVkX19vCJuuDMnU1PHPSam5UvVGmHOWeLdiMFUva4iwFnFx0+vh3Yaqdr0BGVkOCnGra+HrTg8SJ/kp8Dro3DBMyvxh3oqVCy4Z33DrxN13kqH/sbeozDOhzWJg4Cj86xTH2XYjRxjwWvzosMSs0Cm8fVF7nAN06xJfC2f/lqFTIlHolSyMeZ7pdD/jFFSnlAJAvp0KOwFLYrcffEKfYZ6PxqWXoCyJF6dTRZS8gdfVNrax3i7nSMZ2KpcS0nKi+prn1LmXmCvoHSKn7+422/jADHNNPLbhxyEGy0AaneFVX8izV+xmRu3pZsqCSjbFU5LqODGx3KObWRnWWARHSoxlLFquvEZaV0hpKsXqq1ri8+X8vXRKoBGpabdyrooxgo9Eh1xaXKSyKje9b1HtPhpc73gC9g+0l4j5Jj+YxDoRjvOAbVVNw8Ac6/dzCMWiIeSbELTKd1ELUidkoQKGMbjBUgzuAbVEv1vWrxE3XiYxtcJlpiRveOQq2q0w9amB0Vg7jqV/hf4lO4Du+ULoACYiYW2kHH2zqTXqiZVqufgHgrcHrerQ8xeOh18LZuTJrc6COocoGFCWcM86MWEmXUHC+BSBIX9CxBaXeV+h74Qq35hyifaGcjemE/7iw9vC5XoSLubeX9jSf5YjVQhJrYXty2/Q87UIGY4fcCilIGBi07N86XkGr5pt6kRbvp9wLInfO7xs/KbydK/oR1Y1mLBNawX0zk6tSU5nQGMbWJmIa25NzvhOGQV3UIENHw5T5JL6ZUHlOo62PtjHP2I8nXDlAydQGvvG5xTscyZ/5rkshOmQ7aVGLzM22Xt9Gb5XTiUJhjLsou/r2EMJ0w6YeV7xTp/6Ub/6zUmdUC4MVysXLZFhj3q1os4/h1c9LvCGV8aLsUjFylXmqWRNRqaMSqjlG5SHFRluOEJalUWXF2xh5LS1+r3ZZ5zezlsa/Fw+UPWmquy45rF2+GH IFBNyzQe vgN+mSMS+yuu3igvao+8mooodajuPMZhdemQ7MPH8F4zoFQicDZQv2Y5jv+Yvo3Ul50cVgvbmSc9/CdqFUOVEGJAvGUMWCj0OTXMdFwtxK6EW7qMiECcuWhT17SF9qfemEj1aEUICSpKjL4YgO2zRAb5/+3L9c9VTUIeyNO7PnfyJD6JCYS0pW1ayak6W9LaxXT907z9S5VNasifDPOGcpQpBW+2F9VWRezcdNkwLlbx1idUL1FYQNO+N2GRkGfTbyj+rT9GJS30N/Ql2yH2vobASmZjfqU5nOoCEQyFgUHgbcoEyAc2dxG6i5Fu5BRDFiaie2LCexdv9iF89znTVH8MZUNL/nB6XVl2l9aKD6p4PYA9p5EI3Vemt3oEYde+45RucIl65El/wYLSWJkDQnfidLJv60+0XkAeXAo4ubt/yZ4Tl0uLPYt3zA9V1/9CWsMjR/lB/NIa6MqI= 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: Make mas->min and mas->max point to a node range instead of a leaf entry range. This allows mas to still be usable after mas_empty_area() returns. This currently has no user impact because no one use mas after mas_empty_area() now. Fixes: 54a611b60590 ("Maple Tree: add new data structure") Signed-off-by: Peng Zhang --- lib/maple_tree.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 72099b4b32169..aa55c914818a0 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5320,14 +5320,7 @@ int mas_empty_area(struct ma_state *mas, unsigned long min, mt = mte_node_type(mas->node); pivots = ma_pivots(mas_mn(mas), mt); - if (offset) - mas->min = pivots[offset - 1] + 1; - - if (offset < mt_pivots[mt]) - mas->max = pivots[offset]; - - if (mas->index < mas->min) - mas->index = mas->min; + mas->index = max(mas->index, mas_safe_min(mas, pivots, offset)); mas->last = mas->index + size - 1; return 0;