From patchwork Wed Feb 12 22:23:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 13972515 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 30516C021A0 for ; Wed, 12 Feb 2025 22:24:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 83FF16B0082; Wed, 12 Feb 2025 17:24:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7EF856B0083; Wed, 12 Feb 2025 17:24:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B6BA6B0085; Wed, 12 Feb 2025 17:24:31 -0500 (EST) 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 4DEE66B0082 for ; Wed, 12 Feb 2025 17:24:31 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2FA161C8D91 for ; Wed, 12 Feb 2025 22:24:25 +0000 (UTC) X-FDA: 83112722490.05.37CA7DB Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf14.hostedemail.com (Postfix) with ESMTP id 0636810000A for ; Wed, 12 Feb 2025 22:24:21 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Bbffjb2n; spf=pass (imf14.hostedemail.com: domain of dhowells@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739399063; a=rsa-sha256; cv=none; b=56VYYYY4SjcQiyQia/Lp+jmeTLZAUJ+K4gNSfgd3wbSNoca/kxqKScl7+Rl4GAlalcJGSU J5kPWlw1DakvRycElHIFdW6GCzoaSmZ7Y3qARR0+LHLVahYCwtXHbvwUVhowwXWA8+6y6p iOKG3xYADAQEoLvt80qbhAAbauzkGm4= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Bbffjb2n; spf=pass (imf14.hostedemail.com: domain of dhowells@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhowells@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739399063; 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:references:dkim-signature; bh=j/hFCuHm3dQy3yCXNlW7/z5EXWgYM+xOP2nJGIBn15Q=; b=Pw/4pzLjUXSh5dUKT8Rc6YngUbZxoGKoGiPafI3UERLdMmpSJVprTQSv811AYKPTmKcxZl ZpIUE0vdGeLt+cCrrBvqIMiW6ftAR6dRLICe0OEjqJQcBg3+eOSFFSbPdHcT/kS+ZDp4KW F9cNm7e1lFCZFxp5AWTzYZZPm9EVTDY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1739399061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=j/hFCuHm3dQy3yCXNlW7/z5EXWgYM+xOP2nJGIBn15Q=; b=Bbffjb2n20i4wPWH+dKTMaVn1FDC9OT2iRVuwDF+EMneJbYRg0l3R/G/qO8PULdBJM1dnt qQebRsM5Nn8v4j2el7msZfiHKmwPbCEOn9+ZxIX99vk1eLASMZOruesMh5lzFvHVvmyjvI HOQ9B8E/UUlosxW9zhFHKIrhvgwHLI0= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-605-iPLvlH5hPsCaSV9rKTnwgQ-1; Wed, 12 Feb 2025 17:24:18 -0500 X-MC-Unique: iPLvlH5hPsCaSV9rKTnwgQ-1 X-Mimecast-MFC-AGG-ID: iPLvlH5hPsCaSV9rKTnwgQ Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 25E25180087B; Wed, 12 Feb 2025 22:24:13 +0000 (UTC) Received: from warthog.procyon.org.com (unknown [10.42.28.92]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id CBFAE19560A3; Wed, 12 Feb 2025 22:24:05 +0000 (UTC) From: David Howells To: Christian Brauner Cc: David Howells , Ihor Solodrai , Max Kellermann , Steve French , Marc Dionne , Jeff Layton , Paulo Alcantara , Tom Talpey , Eric Van Hensbergen , Dominique Martinet , netfs@lists.linux.dev, linux-afs@lists.infradead.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, ceph-devel@vger.kernel.org, v9fs@lists.linux.dev, linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/3] netfs: Miscellaneous fixes Date: Wed, 12 Feb 2025 22:23:58 +0000 Message-ID: <20250212222402.3618494-1-dhowells@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Rspamd-Queue-Id: 0636810000A X-Stat-Signature: 4x7jmrwpu6fpmxeuuzcik5fj9dchhg7p X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1739399061-408406 X-HE-Meta: U2FsdGVkX1/5FbXg01uxmN2rvzFMjkt3FrG+PTdvdBn/wh6dV8CGgL/mv3hWp5nCUxRGfRmePjZ+gkPs/eTvm06SR/It9bwF+ypLPSssz+4z8OT9Xk0EW0Vw8EtHpmHY1P7HGFa3e03QcNj6DJ8+g0xu+4etiLMMFl+CHh1gPEDqzNE612mfTXx17zlr3hASHSCXx49gDdCqWzczbcPzdNMVMGQRjjotsiSfYVLgEoVZzTT64CcwemZervbFjBhOQDmUCyJnUQGQhf2H5feTrWO6HBZ1jh0TsZWVtwO5dTHNbpsTzh7Kt2MlJ8r/KS5gNfaJvLlOpu/tQjY0EwGJM7ozhrmVSNoigl87+OMP/4Zy7jgNWoEO3I9nSnIbqArSa2ApKI5liWwfwQTvfhzx8LHZ5wFdIJEFCTMDffdPfTVFrHTWaM1Bq0JFReFRpTES6ldjOpuE5JEHmfF8/CKJVtyP0OxIFSuTMPJ9DTRDpV0JgVxwKGUwrmSzL+nkniUrM5SzDvzv+lN4PS9XWjjO61ui9+t7xIQZrhmlgn3BiIV6J+Najx8sdL2odWKvQSx2t0/duDE8ABYg5DWcRrh8MACSoB2DrwvDJLivYno6F1gxtlM0s7a99rCUsIUT97EoSoC77mJm3Unz27OW0eGFY9HgCRni9el6Z2aLagFVU1+2ZgBrCkimiyeivg89tm0ikG9XBrxU7B8xkvLDuY+EIg61seDeIMouJe43NvS7+PQagiALOr+fOISFGODGFH+toVZyGPQ+xx8nBoB3v9VOqiW8KnL3L5oNinQlTFnd0bMrLS2j2MbUi6F/lXo7J1KKowaklNH0c232EQEZGbDqEzvsHKiYSnzfyRKyZY7CGbvPkyidaa4A5sx+hkm5LRCiiTEY5eoygYyCLU6q3huaRy2pDKxWr41Zk2vZhWfHdgzV7gB9LLErOOAcncLOcx8pqS2lXRYMTo63bhPjW3u QrhOOhYo cHphh5+6DbihBVFy5eCjq7t7qb/199Qh9FRWc+IdGPJwrHiKyV9wvsIud0AKzZhL38Y2Ck9mqOQqqFbFpxjOcGHFrnwCpB8S2sE7Qwpm9aYYh/Hfs0esuuNcBlctpr41NoQziczjcAOVLyQZA5rMZqdWs/2ZC4zqjkecOufYPdNA/eLFc6QqfmVrxOsEMr0x2HrtJ8In60G1m6d0//xqYprYXwXp2kAnlY96Fc4FXQXesJzUnncJvCr+UrFDn3juynP7hDxR3kZ1rioQTyNJ/uuirmR9oOJjRNiTvl8HQvWtwWiq/RCxYKGZvFqQJMCxijK2XmVDGi3jMz04= 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: List-Subscribe: List-Unsubscribe: Hi Christian, Here are some miscellaneous fixes and changes for netfslib, if you could pull them: (1) Fix a number of read-retry hangs, including: (a) Incorrect getting/putting of references on subreqs as we retry them. (b) Failure to track whether a last old subrequest in a retried set is superfluous. (c) Inconsistency in the usage of wait queues used for subrequests (ie. using clear_and_wake_up_bit() whilst waiting on a private waitqueue). (Note that waitqueue consistency also needs looking at for netfs_io_request structs.) (2) Add stats counters for retries and publish in /proc/fs/netfs/stats. This is not a fix per se, but is useful in debugging and shouldn't otherwise change the operation of the code. (3) Fix the ordering of queuing subrequests with respect to setting the request flag that says we've now queued them all. The patches can also be found here: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=netfs-fixes Thanks, David David Howells (3): netfs: Fix a number of read-retry hangs netfs: Add retry stat counters netfs: Fix setting NETFS_RREQ_ALL_QUEUED to be after all subreqs queued fs/netfs/buffered_read.c | 19 +++++++++++----- fs/netfs/internal.h | 4 ++++ fs/netfs/read_collect.c | 6 +++-- fs/netfs/read_retry.c | 43 +++++++++++++++++++++++++++--------- fs/netfs/stats.c | 9 ++++++++ fs/netfs/write_issue.c | 1 + fs/netfs/write_retry.c | 2 ++ include/linux/netfs.h | 2 +- include/trace/events/netfs.h | 4 +++- 9 files changed, 70 insertions(+), 20 deletions(-)