Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp224886pxj; Wed, 23 Jun 2021 20:29:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmb4rhtxhM6kDK7PU0MBjdX4X/LKKry6f4U0YkSeTjBIPjnYTD3BceShTQAhleNO9/ozyP X-Received: by 2002:a92:d781:: with SMTP id d1mr1947737iln.162.1624505371249; Wed, 23 Jun 2021 20:29:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624505371; cv=none; d=google.com; s=arc-20160816; b=KKVPPuacpDInHrd92nKK8YFfGMuWNtvHqEDZ14KCSzk7r4kXVmCrycR4zFKJmn2pOI pJWrA2j8R0kGJg/eGBxh7CEVV/ZEwj1ZTvKAyA/Q4sZZz3IIuyINd0uZJDlvF1GVPEF5 32ywp/n+UujDdnvYE+UT+ai0H4rewmc6NiaWTdbHcWBFUC0Ytp6fJvgcpIxHJwrKfQ23 PSVM8e7Ke+RobAN7TX/MscMYvwnFXu8/l7S9Y+8DUf7EFVKVMG1oP7sJF1DjkzbZwumq IuV6Ut9OlJPo8WiMBGLwK+Y35dtd0aR8UUyDyAT+EyCMz1ebcqL9d8HjTc1fdBkLXR8i VqJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=CyiaKFagLBAklqwpiHgbvnvD0KzlBMKBb++MCDTnBg4=; b=xpDJWaZEd8sTdMY9ty8RbXv97NM4r77FDQJxn+ex8R0HRSPQ6cNSCvX1gcLx/T0+BP TfJbpA+zFeJT/Nvx8SmYXm+1xG/T+is7yTZhnhPnqpcKLgOY1Y+y/bF4WeR0JZuemnIY QC6gAeDzUv9NdTtgBOtF+9YlY8Y8aqD0Pn/fhlZZCBlGoOa8EWD6yyQlyOxbyTF8+8SD Wpoqbal+eGQbD7Squ8D0xQtslt4fUM/O7XzBFKe2CPCWzHMOvpSQXoRihF/eTNz8Imrm Z/cx4YIblXnn/8ArxkZmnMAhXOjMH3nDcQFJBndn+dpMiUT9kCrpAAr7YEM0zBJ6UMSo DHOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=G5hd+8+8; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-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 i19si2211093jav.94.2021.06.23.20.29.09; Wed, 23 Jun 2021 20:29:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-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=G5hd+8+8; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-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 S230004AbhFXDbQ (ORCPT + 99 others); Wed, 23 Jun 2021 23:31:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36162 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229822AbhFXDbP (ORCPT ); Wed, 23 Jun 2021 23:31:15 -0400 Received: from mail-il1-x134.google.com (mail-il1-x134.google.com [IPv6:2607:f8b0:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C4176C061574 for ; Wed, 23 Jun 2021 20:28:56 -0700 (PDT) Received: by mail-il1-x134.google.com with SMTP id i13so486836ilu.4 for ; Wed, 23 Jun 2021 20:28:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=CyiaKFagLBAklqwpiHgbvnvD0KzlBMKBb++MCDTnBg4=; b=G5hd+8+80RAwJ4ZVJLGcl+Q9zmi2raxR46qaE0T28BVNi9p2w0EIRsSRwWpZcedCtK 4tik+W3Jn+bMP+bZDWqVXzcJyvTLlhuFoXiuOE7M1cp8w/S+ICnVVhy75tKu1xttJIwk tjCgQMlAf5NgF9ekJZKaJWdaMob4LpA9dXE2KFLnNrDtrJ9LkO3mvJVdsrtqGRlkTPdM t4/sp3kW6nvspMAMLqJyZycClSpjxvravhhcQzMOEi101HjRQOaY7A5PvSySo5PUKiX1 Nx5PuC/QGqfeMue+L1vKZrcAmZ1io+3wxSlBIeOunqnrO9sdQ4luHQMsL1JP58ALIL/i sZ/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=CyiaKFagLBAklqwpiHgbvnvD0KzlBMKBb++MCDTnBg4=; b=KKpqALHM9Ldks/EedF14u5InAD6t6lZYgCiTejVNaQXva44OWDsHOhvYtHVNKnjnAI K/JVIr0dZeMY4Wjwme4uDEqHnqoku1yoS86pbD7MppxruSW6WXmWvCdzBplrfMH2Oizv HE6GqSPgWE4g184ulVEg0p8Jeubtd/mq8A4LZBvYnA0Bp0IB7IKfRofmREfitXXxK2TF 7UDqPe27SCmyLi97snxNlu9xjhvWojbTd2g1mGjYS88u2kpDptrtoUCVMuiCnXkCoaV5 dlZlZWCbOvUsTSWlacni9bcwPRkOgLF/ZLiJRKS3lqsf2RpAvk9opWl5sHactaOf8JMx xohQ== X-Gm-Message-State: AOAM530Wt/NjXFgpx1lJ21buOPArg1WHdN+BgH/6Qi/2NK2ZvLhXeamb +yKgkYxzaiXibz4ajwW4yMU= X-Received: by 2002:a92:dcc5:: with SMTP id b5mr2068181ilr.306.1624505336196; Wed, 23 Jun 2021 20:28:56 -0700 (PDT) Received: from kolga-mac-1.attlocal.net ([2600:1700:6a10:2e90:fd18:15dc:e0e4:e39e]) by smtp.gmail.com with ESMTPSA id g4sm1026780ilk.37.2021.06.23.20.28.54 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 23 Jun 2021 20:28:55 -0700 (PDT) From: Olga Kornievskaia To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org Subject: [PATCH v2 0/8] allow for offlining/removing xprt via sysfs Date: Wed, 23 Jun 2021 23:28:45 -0400 Message-Id: <20210624032853.4776-1-olga.kornievskaia@gmail.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Olga Kornievskaia In this patch series, I propose to add ability to offline a transport so that it's no longer available for tasks with ability to either bring it back online (if this transport recovers) or it can be removed all together. When a transport is begin removed, all the moveable tasks that have been assigned to this transport but didn't complete will be retried on a different transport. Note, that if a transport has stuck, un-moveable tasks, it can't be removed. in v2 of this patch series: -- able to online an offlined transport -- for the getattr, to mark it moveable, use presense of session instead of the minorversion -- added things to the xprt_info displayed via sysfs: (1) whether or not this is a main transport, in hopes to prevent to offline/remove a main transport. (2) display source port of the TCP transport, as it makes it easier to make transports to the network trace. (2) display xprt's queuelen which keeps track of tasks that have been assigned to this xprt. Olga Kornievskaia (8): SUNRPC mark the first transport SUNRPC display xprt's main value in sysfs's xprt_info SUNRPC query transport's source port SUNRPC for TCP display xprt's source port in sysfs xprt_info SUNRPC: take a xprt offline using sysfs NFSv4.1 identify and mark RPC tasks that can move between transports sunrpc: display xprt's queuelen of assigned tasks via sysfs sunrpc: remove an offlined xprt using sysfs fs/nfs/nfs4proc.c | 38 +++++++++++-- fs/nfs/pagelist.c | 8 ++- fs/nfs/write.c | 6 +- include/linux/sunrpc/sched.h | 2 + include/linux/sunrpc/xprt.h | 3 + include/linux/sunrpc/xprtsock.h | 1 + net/sunrpc/clnt.c | 25 +++++++++ net/sunrpc/sysfs.c | 98 ++++++++++++++++++++++++++++++--- net/sunrpc/sysfs.h | 1 + net/sunrpc/xprtmultipath.c | 6 +- net/sunrpc/xprtsock.c | 7 +++ 11 files changed, 177 insertions(+), 18 deletions(-) -- 2.27.0