Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1027096ybk; Fri, 15 May 2020 21:57:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHVRpd3S8zf/25BqBPMnI1Eon66jDRlX4aN8MZSH12XHQM6bG4G5eFY+MoPdOr2LzHrrLW X-Received: by 2002:a17:907:43bf:: with SMTP id ok23mr5931492ejb.68.1589605069995; Fri, 15 May 2020 21:57:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589605069; cv=none; d=google.com; s=arc-20160816; b=YsuhEZxICG8y8fn8zSICHqexWUKRp4EVe2dl1lhp7FwlZIr4QxFsgQLsc0ihIIelKF yvUPGUDX3vhwGI5o5sIeSxITNYCIO1wW2h3QyldMGDWOJbhYgUFN9rw0WRr9FEznnTRg 9dcpWS8FuD2UkmMT1nkbiJbE2DPrh1Zbte/hqIA8zl30d44znSxKwFhkKBkzLEZuZRnz gTgCsbILRbLoxUIB7QM0GzLhJ9Ej1EuL+z3/hQtU21aCLVlMFYW0SYYlBn6HMzIpEzP7 9B9wmzT32wETpVjOOM2S69buBUpdEQ87xjT3l5pHgdwAeBdtUlVFOpqoKauTTDB3GLvm 2HvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=93TbX2lkjB8K+Ei3cAmwENlMqxtrV35xuDT4xtUKL8A=; b=B2F8nQ0Ds5tH4t/UCOFmYjE9ZWQ0v59iNBjQcMsJTmk0ZGE+iZY2/BUk0obSctCmhz UlLAZs5a79F68uepLaYMQyt252sKiiA1Si3H19BugnlJ7Tg3IARzLvmnGSmnZ3Mt0NCV 6iyfR4mHmliZqNiZuhJEwM5I5XsK+mfwrRufIo55r5Z8C0lK/Kzrj4/b8FA7wwoN2aej aH05dSHWnZbqKt0AJPqMJiejvW44kLH0w33LnWdJ1gZqAehAz+Y2Vodzenxv20heA5PY eFN7/l9SMykOpMJ6vwvaYJe+gG+3gwXGIPNkGcoQ3FhxMIMKIvouoYomDm1UiVo8fGOL nn1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=prZEkPzb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a24si2302768ejt.128.2020.05.15.21.56.49; Fri, 15 May 2020 21:57:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=prZEkPzb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726270AbgEPExA (ORCPT + 99 others); Sat, 16 May 2020 00:53:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725803AbgEPEw7 (ORCPT ); Sat, 16 May 2020 00:52:59 -0400 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8575DC061A0C for ; Fri, 15 May 2020 21:52:59 -0700 (PDT) Received: by mail-io1-xd42.google.com with SMTP id f3so4979921ioj.1 for ; Fri, 15 May 2020 21:52:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=93TbX2lkjB8K+Ei3cAmwENlMqxtrV35xuDT4xtUKL8A=; b=prZEkPzbzg1rWpEFs5E9u7ygp0ADIdxtxLqNu9YjuOlxDf5X60bMessaWgAPsc/5Gd yy9sUJJYKoOxQiqK+jnpUaE2FK6zMkLrJr9VzPi3Of0Li/ad68SqnMwSVbmlxLp8PHEa tlunFa6ysceNjAsoMadWMe3Sp8xuh92DtXOIRyHFdzx7aRloW+Kq8sVFh9OZfHLsJ/fT KR2sAEykoTT/R3Orx2ugQzZrbWyZSuTUXcrSRMX9VCx+yF82iIfCVmdBqeCo2vkfPrnx D1PjkmO5dN3dGu1u/qppQCLzxrIt7ClX+s1ZaKswKcYRnzgYSEJRoVIAKvIzZCR3L9dg 16Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=93TbX2lkjB8K+Ei3cAmwENlMqxtrV35xuDT4xtUKL8A=; b=dwh+etSMLXDW8myXlDyvlId92OpAVUHYlN01FEgxWn41sShPwpDJvzWaRTlDQ65eQy dOzt08VaHVKGRFX6Lzy84I0yv3YXTmgPrUrQXr8zhbEJUCS3B05XbAJ/2vfSFyeGb5Ko yGvvHLvnKoK/4Xhs0I/5bYJ74TzjjI6BmE0HwF+DOv9FmnwGbhj+P5A+JSRDOmoWCIa7 goMv1hkY4NChOt+4pFQLN5d+q/oVJmFmoqvjDhRROrwQcHI2tb2nPcA/ovO+I7ryo6MB Wa8M6Ix8gvYI4//n6ETJ+767qtH3pFsr+rY/XeqW+l9PEjrcEYg8KeJ6jKumTMiUHR9r Jq2g== X-Gm-Message-State: AOAM530rcC2zp5v3zHbvrEkrN24Ff7pP2RborlIEU53r8sb+QNcFG9Jh uQ+Cdfmkoh48wg53dOIhhtsVCBMFdGiczNiSFRc= X-Received: by 2002:a02:ac1:: with SMTP id 184mr6362721jaw.137.1589604778464; Fri, 15 May 2020 21:52:58 -0700 (PDT) MIME-Version: 1.0 References: <20200515150122.GY2957@hirez.programming.kicks-ass.net> <20200515155912.1713-1-laijs@linux.alibaba.com> <20200515155912.1713-2-laijs@linux.alibaba.com> <20200516042705.GA82414@google.com> In-Reply-To: <20200516042705.GA82414@google.com> From: Lai Jiangshan Date: Sat, 16 May 2020 12:52:47 +0800 Message-ID: Subject: Re: [PATCH V2 2/2] rbtree_latch: don't need to check seq when it found a node To: Michel Lespinasse Cc: Lai Jiangshan , LKML , "Paul E . McKenney" , Oleg Nesterov , Andrea Arcangeli , Rik van Riel , Mathieu Desnoyers , Peter Zijlstra Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, May 16, 2020 at 12:28 PM Michel Lespinasse wrote: > > On Fri, May 15, 2020 at 03:59:09PM +0000, Lai Jiangshan wrote: > > latch_tree_find() should be protected by caller via RCU or so. > > When it find a node in an attempt, the node must be a valid one > > in RCU's point's of view even the tree is (being) updated with a > > new node with the same key which is entirely subject to timing > > anyway. > > I'm not sure I buy this. Even if we get a valid node, is it the one we > were searching for ? I don't see how this could be guaranteed if the > read raced with a tree rebalancing. It is valid because ops->comp() returns 0 and it should be the one we were searching for unless ops->comp() is wrong. The searched one could be possible just deleted, but it is still a legitimate searched result in RCU's point's of view. A tree rebalancing can cause a searching fails to find an existing target. This is the job of read_seqcount_retry() to tell you to retry. > > -- > Michel "Walken" Lespinasse > A program is never fully debugged until the last user dies.