Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp170118ybi; Tue, 2 Jul 2019 18:26:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqzMTdtIiR9qru3oDPf963J8P2QhNaL+HBRebAs03aqRyGiPDdBELn6P8G0fM8fqKnZXfAOw X-Received: by 2002:a17:90a:cd04:: with SMTP id d4mr9225127pju.128.1562117204941; Tue, 02 Jul 2019 18:26:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562117204; cv=none; d=google.com; s=arc-20160816; b=qMKcRI7AkhU1DpbsCcbaLw44GOmXsDAccbWbNAbNmSPL3Q4psq9xWFRfiL8vwOFmUo JnvIjuRwHPPrX6cfI4dz5qcsfGTuKQKsslcJ1zKJHdp7N4n0zQLqmgfyAlfSRZn3iZYq FjePaGlAkaqwZxBs1Rk5L5+wrZNbU8RvIZiyIrfFl2D8bYwRk/ONBrW4HIas6dKEi5QP o2wvuCjpX5pMShl8+2uVms4+v6DUkwMtqQcvtnbaj3At1hAFSXhifGJSl6r1YBKVgR3k GCqHF6t4Il4YpVrfjOPoxGBdcql6ldKhvYVVYENOniwPh75yvMuTVzvB5HhMUPpftSkc 62/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=iwz65avk0f/RVYyKHLQjdNvxMZcgy+RzsGyBsM/m87E=; b=lfiw/QhDxY/luqCBbH2kMVbtbKWyLmreQ+Y4hkZ9n0WP57Njkweey2n/NTqDVMr1K5 37OpRaytlZ3X2Mr2H2jbLlJvp2WXsbXbNCBFaqvt5PpEKe12/fDBYzadD5NZF8rgfLMg 1hHGDax19EbbpEuRpx3ZT/olzaWATB3K5y2XBTuOPM3hQBwJp8h+0eWYsKvIH9lmZt6C rRNHre/gpTd8QPLhaAUIgAiaLOie2fjCX14qGjmtaOK3+sZ70W5KFbcaSuwe1Fg3NKjT TPetRK60DEg8ZANXKWsrmA7q0JDOq8J4v9X4G63h+RUIcfscxRtEAw8fG+ZbjBOmskxk OnzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Jc6n7jBm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id t5si409159plr.124.2019.07.02.18.26.28; Tue, 02 Jul 2019 18:26:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Jc6n7jBm; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727464AbfGCBZ7 (ORCPT + 99 others); Tue, 2 Jul 2019 21:25:59 -0400 Received: from mail-ed1-f50.google.com ([209.85.208.50]:42922 "EHLO mail-ed1-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727101AbfGCBZ6 (ORCPT ); Tue, 2 Jul 2019 21:25:58 -0400 Received: by mail-ed1-f50.google.com with SMTP id z25so371283edq.9; Tue, 02 Jul 2019 18:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=iwz65avk0f/RVYyKHLQjdNvxMZcgy+RzsGyBsM/m87E=; b=Jc6n7jBm97mAvshr0fb/+jJV51H5AJKiJiMbjM/ReftdwufEfb70lK4ZkkbRHUK216 rJ5wVZAiPoVRmFxAc/XYVurtEZCjyjKkBCmrOJeVVdKO/B2t2YFzIiNdnROpXW4o/95b SO6+9K/mNErFkxKTr28/Z+4vRwYT0yFsh1QGdl/zj892xmNC+xrEuJH71Q9ogPqxk/6V xrIJHfFep+3lpyhmV7N8d/ni0rEzdl6EP75/kHFINZqep674pizWO3MpAmdOoc54OgEX e2ot/13DMG1Wtu+VZpVYkBwoK8GZw2BdTuSs5XJEeN/r6lJzHwJQQCMT5+za8g4VO7Yu 3c+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=iwz65avk0f/RVYyKHLQjdNvxMZcgy+RzsGyBsM/m87E=; b=Sm1h4SZlRtgeHXGx7MjEdZqUQthIQBZh+4tAjq4GgNNT4vr33CadPPZdRsvrRR/Zvj vr8h0e+CtIbn2SYuC/JUehpJxUJOB6b6K/KWZ9OEOy8GI9ouYB6gr9m95dVK0/cEl0Ji V+C7VVMrIEY28NyP2D2ZX/WUZ4OXRzZxxnvTJ07USInGg7gEoZbFoIdQlC/cvX5U/zRG fUJWv/jBW560liyWsBxO/QaLTLxiVNm1p9mb0qmLKrdYMUIMNyI6hSlJCSqlJZwMYLzd jKYC8J280qYzZrlUx8nAlyA5jG96PWOE63lQ9rUj20bRfHW0/Dt+AfyJS3TQkZgqSr3N MHlQ== X-Gm-Message-State: APjAAAVVS1n4F4qgNgHHfsnIiEg44anFN0E7kAyMdVO44LLHtBZBLyiO pNhqnQoI+IDttVtLXa0Cm1s= X-Received: by 2002:a50:a5b7:: with SMTP id a52mr39299193edc.237.1562117156841; Tue, 02 Jul 2019 18:25:56 -0700 (PDT) Received: from [10.68.217.182] ([217.70.211.18]) by smtp.gmail.com with ESMTPSA id 43sm204196edz.87.2019.07.02.18.25.54 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Tue, 02 Jul 2019 18:25:56 -0700 (PDT) Subject: Re: pagecache locking To: Patrick Farrell , Dave Chinner , Jan Kara Cc: Amir Goldstein , Linus Torvalds , Kent Overstreet , Dave Chinner , "Darrick J . Wong" , Christoph Hellwig , Matthew Wilcox , Linux List Kernel Mailing , linux-xfs , linux-fsdevel , Josef Bacik , Alexander Viro , Andrew Morton References: <20190612162144.GA7619@kmo-pixel> <20190612230224.GJ14308@dread.disaster.area> <20190613183625.GA28171@kmo-pixel> <20190613235524.GK14363@dread.disaster.area> <20190617224714.GR14363@dread.disaster.area> <20190619103838.GB32409@quack2.suse.cz> <20190619223756.GC26375@dread.disaster.area> <3f394239-f532-23eb-9ff1-465f7d1f3cb4@gmail.com> From: Boaz Harrosh Message-ID: <9bc50b26-d424-d48a-16db-6fd7e0e88f79@gmail.com> Date: Wed, 3 Jul 2019 04:25:53 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-MW Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/07/2019 04:07, Patrick Farrell wrote: > Recursively read locking is generally unsafe, that’s why lockdep > complains about it. The common RW lock primitives are queued in > their implementation, meaning this recursive read lock sequence: > P1 - read (gets lock) > P2 - write > P1 - read > > Results not in a successful read lock, but P1 blocking behind P2, > which is blocked behind P1. > Readers are not allowed to jump past waiting writers. OK thanks that makes sense. I did not know about that last part. Its a kind of a lock fairness I did not know we have. So I guess I'll keep my two locks than. The write_locker is the SLOW path for me anyway, right? [if we are already at the subject, Do mutexes have the same lock fairness as above? Do the write_lock side of rw_sem have same fairness? Something I never figured out] Thanks Boaz > > - Patrick