Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp276363pxb; Wed, 14 Apr 2021 15:19:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzh/QYHBobvYOU0Mq12txA5/7/MaV8rLlby6BV+/CHH6WBqmAOfp6E8YOam0pS2YGNU7hNq X-Received: by 2002:a17:90a:bb85:: with SMTP id v5mr347296pjr.106.1618438763297; Wed, 14 Apr 2021 15:19:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618438763; cv=none; d=google.com; s=arc-20160816; b=aFPdMknLk5jD3aXFuaoQU8wDhm2b0EJ9twVNZkn7HylbLJE3v3c9H9N3XHRzrPsPSi bqfTyZB37fh11M/cz7GypYbylfKQ6TDQYPjzJQpWVl3RuW+KzUg5qcuCisqWWheqkCt0 4EJr+pbWqEqqMEZ3hhpy9aklRccAaahgO17PK/1rLh44imloeUsRykuxDKWjWFSmkgOd eGmgxvIB1EmV6eWEo+cHlFH8+5FCjFTDC0ILFF/YZAmTgO+d4A84sAJAWN1wq0wd5UB+ AMCYcy/76RsFCsMyw9OFpcxASPFDVCw3+M6NnlzDbZIR8Lqj8u5Jtt9WsrRMpcaOOrNm Mbyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=ve208t/RK2O5KKA1Tytd/3SnK5wVjxvj8UwjAFmW0A4=; b=etB2dV1t17ybNz4aX6qeeigGWn5zeAGZDYXw4tG88bNrmMoEjq2MFyqwtlJMyQcfB0 5U1JOUkq2YT+Hvw8U6L75MROMw9PvzSFRUf2WWXVOwS+dvfR16k6egdXvZGxVWmT6W23 phWtWYaYBMQv1QPYcOsSu3hspasXC7DVS/zx3lyTBVDyclEuJ9aD2oih703FE8zqHyPI FL/JOp3HLBW0Veh8BQqFRAugXbbndgrqXIte5epaeCY5qJYeyErs+RxwIq/OkiisVB/D wvKUxOZp9+uRL072re/EmQMO/SOl8ljcM8OI2nyB4i2sxBT5DuXD4nY1U0z51V/wIJPh ghYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=PP+vQbwk; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p185si838405pgp.320.2021.04.14.15.18.20; Wed, 14 Apr 2021 15:19:23 -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=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=PP+vQbwk; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343970AbhDNJDF (ORCPT + 99 others); Wed, 14 Apr 2021 05:03:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232397AbhDNJDD (ORCPT ); Wed, 14 Apr 2021 05:03:03 -0400 Received: from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com [IPv6:2607:f8b0:4864:20::e33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA465C061756 for ; Wed, 14 Apr 2021 02:02:42 -0700 (PDT) Received: by mail-vs1-xe33.google.com with SMTP id l11so1492854vsr.10 for ; Wed, 14 Apr 2021 02:02:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ve208t/RK2O5KKA1Tytd/3SnK5wVjxvj8UwjAFmW0A4=; b=PP+vQbwka8RkOrkMB+NhaqUGiWztFql/zPxeSR5HtPBJcqExUKf+kRnJg0jn/jHCWQ yT+BPzbnZlqaszEiNmIifyyMUPkADCZDBxV40m6ViFnyalFPs1AVq/zaig81R2kq/rhP J2qGcnekVuX9VSo6oH3Crg8BzN7Lnc2T28CI8= 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=ve208t/RK2O5KKA1Tytd/3SnK5wVjxvj8UwjAFmW0A4=; b=uCH5txSPz2B5Yk3/8t5afwlv04oLFQ5ovMclQjJrKDTVGFG4Aar8QACZkS5Z4FeIzt jRs8I4j3O3AsjdrGxLKZCyq/sq6yGHK1KF3gccKrGMAlxQKVHiBMvEO0NBJ1UFqfvcAj ep2HROGpc2/1edhoHKYH8EcjPcV0oIdPQ/qqCladbl3IgVZPi0IbwskHRCV1b8/ABVtA IH1+YH4uaaKnkN/Ntn887fbSmD0KoK5k+Eq9gqBpycb7QBk+O6HXS7zG5GvkY0GK8Io9 P1tNT0hW9afPgsXsC4JAcGNLiH4if4c2oQJVVFK1cLGbuMzqONN+KPbZYlS5ncPxZ1fD cHXQ== X-Gm-Message-State: AOAM532jHYSCCOK+m4a+eQubp046znhAHK76jc7peHhoKjQVCfvdINzd 4BUiWZpAXLOj8DBEkifJGg6qp9xyhNRkcSu6OxiaAQ== X-Received: by 2002:a67:1643:: with SMTP id 64mr11142777vsw.0.1618390962045; Wed, 14 Apr 2021 02:02:42 -0700 (PDT) MIME-Version: 1.0 References: <807bb470f90bae5dcd80a29020d38f6b5dd6ef8e.1616826872.git.baolin.wang@linux.alibaba.com> In-Reply-To: From: Miklos Szeredi Date: Wed, 14 Apr 2021 11:02:31 +0200 Message-ID: Subject: Re: [PATCH v2 1/2] fuse: Fix possible deadlock when writing back dirty pages To: Baolin Wang Cc: Peng Tao , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 14, 2021 at 10:42 AM Baolin Wang wrote: > Sorry I missed this patch before, and I've tested this patch, it seems > can solve the deadlock issue I met before. Great, thanks for testing. > But look at this patch in detail, I think this patch only reduced the > deadlock window, but did not remove the possible deadlock scenario > completely like I explained in the commit log. > > Since the fuse_fill_write_pages() can still lock the partitail page in > your patch, and will be wait for the partitail page waritehack is > completed if writeback is set in fuse_send_write_pages(). > > But at the same time, a writeback worker thread may be waiting for > trying to lock the partitail page to write a bunch of dirty pages by > fuse_writepages(). As you say, fuse_fill_write_pages() will lock a partial page. This page cannot become dirty, only after being read completely, which first requires the page lock. So dirtying this page can only happen after the writeback of the fragment was completed. I don't see how this could lead to a deadlock. Thanks, Miklos