Message ID | 20250310074938.26756-7-richard.weiyang@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 7F08FC282DE for <linux-mm@archiver.kernel.org>; Mon, 10 Mar 2025 07:50:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A7A2280008; Mon, 10 Mar 2025 03:49:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 35515280004; Mon, 10 Mar 2025 03:49:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1AA2D280008; Mon, 10 Mar 2025 03:49:55 -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 EC6FB280004 for <linux-mm@kvack.org>; Mon, 10 Mar 2025 03:49:54 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 4D0E9C0B7B for <linux-mm@kvack.org>; Mon, 10 Mar 2025 07:49:56 +0000 (UTC) X-FDA: 83204867592.18.B7F00DB Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) by imf19.hostedemail.com (Postfix) with ESMTP id 780961A0002 for <linux-mm@kvack.org>; Mon, 10 Mar 2025 07:49:54 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OnjkuDGf; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741592994; a=rsa-sha256; cv=none; b=YQ52gMw3U7WuGOaGpn2/mi0/XtKX8/du3PMSaAbvgg21szYsRErGqbJpjW21t4ysRjzKyw 1STKdqAvm1DzFbiKb4SQqUgnRk7LMo8jHqWHby/Yu2zfWNJxjn2EEr5MoZrw389sW3kCD0 krYPVIZxLNpYYlm9K/i87XA5z8sFKGU= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=OnjkuDGf; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.42 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741592994; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references:dkim-signature; bh=QLyYd0jtlk1HnOzrX8doBxkNkczXZFYHZmixERUQcYo=; b=xBI+Pzrdz5sMrEYCMyflvj2xFMP/t9XTFf2D2j2R2EagdxaOPlavA5opDrxEl8s9dkhh2E 30KGD5NN5EnVuXNS4Lhz4fBrxDMW+W/w93IlLNEDLS9SMqDi3ghUnq0lbQQDoRRj04XhEj dDSanXk1VtxsQ0iG6FeUdpnakakqjNs= Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-5e6167d0536so3418711a12.1 for <linux-mm@kvack.org>; Mon, 10 Mar 2025 00:49:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741592993; x=1742197793; darn=kvack.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=QLyYd0jtlk1HnOzrX8doBxkNkczXZFYHZmixERUQcYo=; b=OnjkuDGf75VlJONMXOlbB/y1CSaSuEdigf3gMY47+8zbnSdEjCu8GlUUJ5oPJZ6NOJ YQnyEgZXjDlKT1xvW7KQ2C+SIDEC5zhsxBFQmg3AtQ6TDmcuo9JkiM5IJNyStIGgAaCD s49iB4fAygWydUsVbXFRm+B18aiej3OU6nlztnlaqdLnJOEXmLejs0scNaF/wOoh21L6 nS7WTf3BTcY9Sp0Gv12QyqEu3a4NdxnruuPeS72EzxbS54Pg+gd9hbwWSuGXa4oBIsWP cOXefsxapadpoxVckXAc7c+hHMur3VPvOaowz2PbFnc8GBO9/VvfLrXm5NBJ8KqG1+kc BMHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741592993; x=1742197793; h=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=QLyYd0jtlk1HnOzrX8doBxkNkczXZFYHZmixERUQcYo=; b=EjkVLt5Xb+5LbkJLTr7G4zyzsHkkqBEoFrG4KG6a5i4O+xjOuimLlH3eEj60H3MCad vepsGAZkfqoWFIZBDfVJ2TPQTFkAlMoBHU/xxt9JxTfIR4gAQ6ncmr2KXrjR1CeRrAMY ujMPSeoyReiQeOo5sH6kCA9Z3ctasFzmrHnPQQvZ/eVbCwVpXeIhDQ1qOJF88gZASm8r OmgAC0nhVcKMZkJJ/qJJkvL5lDOLE1g0v9Q8+mFfO7zvOiXM9WfnMQ/+QfqJ9n5M4lUF pBG8UnIdnkWOyaklOf6TsNsmxNY2q1S+ubqga5NaWiL0DtNhwJc6L8ln6y1I1EHIi2A+ NlkA== X-Forwarded-Encrypted: i=1; AJvYcCV5/nAtqQf3b+O9q757KmZJKliTh1zAaRqt3MuIuGJ+Tm35Eh2EDp9Gjvl2oo899fgPmOyKCCjRvQ==@kvack.org X-Gm-Message-State: AOJu0Yx/RiwyheB4G55oqiziwlen4x7Dl6LSDSJckmvce1mmXeIpRAPR ThHl5HfvdWRl6BlniBctF+RccFGoBMruFUSc2WQ6nam60eWzcNi4 X-Gm-Gg: ASbGnctgZ0TZWmAj1OGgXtLEUvRF7rD6XZ1CODfNXQO03lQqSyYqK399yEIAf/Wixws cNE4bqKVHeX23psxAPKWsZk1Uro+0OvOMYCqcl88mACBCOKZMJDCToBOtnS3zMg6lwUKbTLWr18 a88Qt1uxdh9dAhSeMXVm9AnVb3bQ8crd4aFHnRiyheeyDFTd2B1YlMoiJz9W8Zpv7U0z8CCz5g5 iockHHFFP3+RwTCP5ij06wvlFEFfx/fHiaEESV6v4C/ZWyuW2N41VSFW4fDC/t1xW4TTJBrPC7c x8fMYsXwmWu3I0mv9elG/5MrttDaOLLb00FRayaa0Huh X-Google-Smtp-Source: AGHT+IGxctomeTXnccXmCKDLBbisBnglon009/Xz6BlFrso0ld3s1z2+xfX8OQnemTt+wvwGgoMnpg== X-Received: by 2002:a05:6402:34ce:b0:5e5:c5f5:f4b with SMTP id 4fb4d7f45d1cf-5e5e246896dmr13924307a12.22.1741592992712; Mon, 10 Mar 2025 00:49:52 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e5c733f8b5sm6459268a12.12.2025.03.10.00.49.52 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 10 Mar 2025 00:49:52 -0700 (PDT) From: Wei Yang <richard.weiyang@gmail.com> To: akpm@linux-foundation.org Cc: willy@infradead.org, michel@lespinasse.org, linux-mm@kvack.org, Wei Yang <richard.weiyang@gmail.com> Subject: [Patch v2 6/7] lib/interval_tree: skip the check before go to the right subtree Date: Mon, 10 Mar 2025 07:49:37 +0000 Message-Id: <20250310074938.26756-7-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250310074938.26756-1-richard.weiyang@gmail.com> References: <20250310074938.26756-1-richard.weiyang@gmail.com> X-Rspamd-Queue-Id: 780961A0002 X-Rspamd-Server: rspam11 X-Stat-Signature: fep79cgfry9j6neyswdsi4dzan43g9gt X-Rspam-User: X-HE-Tag: 1741592994-999086 X-HE-Meta: U2FsdGVkX1+GSZwz1yc8W8BZyzSeOLJwugWT6OKXpteDhu8E0aUbexv56UVcA3JsdrifCA2W5r+cC7cgS4g2loIgbN4jinD2p7rPNxeupZLRKz2wTAL09QGoS2pyEF/zYjEEMsTXXnXv00Ie22sABIyp3/zbtlgXsbt6zbwcG5lwiFI9JDcyIBTr2zlGSDcn5PRvRqQxNHViBxhkU+yVfCOZTdu1mOduELhQt+pRVE5w4j7zk/siNyydcfXGZgaEZZD++oimSa1ONXjK6Ae+wiM4dHwATm3FHI124NKS9mZZvd9MRNvQR0q2AS8ytwKbM3ja/84KJZFcsMwyhdVp13CtGzWV6w/WATOHN/gyyj4G0rRso+IxJ4oCdANmkD62e5i36DQZdf7N/PJmo3OG9HnTCdbn8Ga8geos3p5ZTV9S5SMcn8/Wb2MmNzZSZ/mSpNolgc8OXhj7UrcylpPRVNOFDTztWiGFeu5Xmgeb1PV+7uFowgccVojrmmI3nqRkk459bXSn633Gq358SeR4o61B2sTzWaNHnxo4O9B2oTPGw2SEZbvFZXAngO0qIiHxu2nTtnUQM1bZkAZrUihWK9zg3iGuWymEPneCYe1WusXkRJllaYV5s2gua25EnUhIDr92F0FTmDYMG29a0YCAHm+cGgm2jxljMRbg/Npq/yjFUrQ0kSDehjbqIY78lN/U8jbjDQDCMa2FM2X05UEQhpovE4vzJEsS8tzBAjRe9REILpGyTsrcy+7+ZQGBq1ENymPqtdykeNWiiu2I+qPJ6hNPm3xU3QHvdWyP75UByY583gQ6DVb2pyl16NCMovtvTcXRKnBSgs4++NSc1SroCR1W9X8U4lb2L+QSZGpcGDH9lx4DwoO4BpR55FCBh1xven7XXXuRLgMniORda/7pp0zoJcKaChn08kVAUKZFzW4rJNzcuKwvRiDvkutICXi51E22rXVjvGCB9Imi3eo c0lyIHX6 fyNCAZ8oUoekpeI6A7WuWfyxJ2+3vAzvqImV7jbMPdxeolAnBiv/zTTiuExJap5Igufjwnot47Q+KjhcdxEHJnwsCPqmaPUr37e1+5Xn+EXzh4IGF/TLSwIA49VtqzwW+M6EstP5QC5JSgIlgtxVhhRbJ5aGC3ZVFV4OksHwcI7dmjRScgqJq7m+Js4fcaOE2PaH9RX/DOTQW0Ujab82231CLAb/UUXq6Taf5Qopf/fD/kNwtIwLLVv8uN3V5oHopQr668KL1PjJnYMQuogiYZWbz2w9aKWvWORldfrYzp4IGbBpvmKbUU2PxzQ9Vp9g6MaVuyaFapWYAatd8cl0o1vfb2nQlhOsYUrCTwGA0PO7grZCScIrvUdbWir2IJr4p9/RA1D1Ge1ou/zD+P6MGp4DIsAU31KmLjQrFhEsfS9JyVGNTZf+ankt0GyfGcK/XTrUZXb3F/gQ8J7ntMq7QvaiY4Z/zBoYDZPkKIGlnEuG+RfNo4vvwIGur7b6jHKyTVyltLBmPFilfAYhpgcAiCR6l7AGRncIf4Uy4nG+oTvUmQ0NlVlzPMOAePB2ZddYCHXbu7FZjrTr0n1L7gCYkS/hvGABzcxUQiSXhF+DXkoSKvkHHmWzWl3cd/T+QXlp+vLA5qYW4yg4+zZ9eHyqJZFR0C75/fl1rRY9u2rAaNDpfA1Q= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
lib/interval_tree: add some test cases and cleanup
|
expand
|
diff --git a/include/linux/interval_tree_generic.h b/include/linux/interval_tree_generic.h index aaa8a0767aa3..1b400f26f63d 100644 --- a/include/linux/interval_tree_generic.h +++ b/include/linux/interval_tree_generic.h @@ -104,12 +104,8 @@ ITPREFIX ## _subtree_search(ITSTRUCT *node, ITTYPE start, ITTYPE last) \ if (ITSTART(node) <= last) { /* Cond1 */ \ if (start <= ITLAST(node)) /* Cond2 */ \ return node; /* node is leftmost match */ \ - if (node->ITRB.rb_right) { \ - node = rb_entry(node->ITRB.rb_right, \ - ITSTRUCT, ITRB); \ - if (start <= node->ITSUBTREE) \ - continue; \ - } \ + node = rb_entry(node->ITRB.rb_right, ITSTRUCT, ITRB); \ + continue; \ } \ return NULL; /* No match */ \ } \
The interval_tree_subtree_search() holds the loop invariant: start <= node->ITSUBTREE Let's say we have a following tree: node / \ left right So we know node->ITSUBTREE is contributed by one of the following: * left->ITSUBTREE * ITLAST(node) * right->ITSUBTREE When we come to the right node, we are sure the first two don't contribute to node->ITSUBTREE and it must be the right node does the job. So skip the check before go to the right subtree. Signed-off-by: Wei Yang <richard.weiyang@gmail.com> CC: Matthew Wilcox <willy@infradead.org> CC: Michel Lespinasse <michel@lespinasse.org> --- include/linux/interval_tree_generic.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)