From patchwork Fri Oct 22 20:55:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579047 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C1B0C433F5 for ; Fri, 22 Oct 2021 20:56:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8130E60EDF for ; Fri, 22 Oct 2021 20:56:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234309AbhJVU62 (ORCPT ); Fri, 22 Oct 2021 16:58:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234153AbhJVU61 (ORCPT ); Fri, 22 Oct 2021 16:58:27 -0400 Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com [IPv6:2607:f8b0:4864:20::72b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E4DAC061766 for ; Fri, 22 Oct 2021 13:56:09 -0700 (PDT) Received: by mail-qk1-x72b.google.com with SMTP id bl14so5897352qkb.4 for ; Fri, 22 Oct 2021 13:56:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xQz+ReTvhOjs/+Zs9d2cBF8l0RxupR0A14Vhyg4nYbc=; b=R+z4VR06zi1sYrHmAmYAbEW7Pznv/Cj7Xt23P6U/N0kwuN+6DxCHrbhUIEDWxcycfe 95/WAqSuJyV2G+UymsvTBVwVumjWc14CJQ1zEFDeSOtrqNTIeNHRP/18Fh9/BeixCSw+ UeO+MBx790fnVP6zeJ9gPwAfZf6gQTVbeGYHu/BPAl42+M3UNQs/OTvZ5U7JdTO3wxXE oUDtOuzVGCnV1ZVhXY4Sz5hSzAdLcHOJMMFxkZZlElnV2xEpakYzfJllL5UUmvCoM1vE M0s+soE3w9dH00Ia5vh8Tp06RlizWCVo7bjO6Jgh5SUf4DVeMq4OvPx4sk1SIeQy0+t8 EgtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=xQz+ReTvhOjs/+Zs9d2cBF8l0RxupR0A14Vhyg4nYbc=; b=w2EnPACpE4hgGh+M9KIuo1RcFyhrzlS4hScnJzPWGgm8oSCmi+V8bcZIyVMDKWpa82 UkXZXPkALa6Rr/PQdw+WTxHz7mNJpdDYQByCuAOlmPeWAxitj3jCfBinztcxx8aJSzTt zAJbX4crZHSK185DvYGko0o8kKah+f9HQWi2RbIpL9wxxM5K5OdYQ5esmCElyffp+SFO 6C165IRB8ZdEdF14qI9d0btqx/braeugUGEpEfuNkSYSpWmZyuWWcMYIHNKOlqiaLCnQ 96MUetQPghTQAc7zjI7llZd/n00A5R1woNaVE0HwnSHXPHLz3pa42rYVut59+gLisu0O C+Tw== X-Gm-Message-State: AOAM533E2lvZl/ZRj+aLl22HFUaXXXJ4KFl2JmEyddG5W2S8jy9RhZ3f AdVqTcDVJNyyy3OTYeicbTk= X-Google-Smtp-Source: ABdhPJzhSfm1t71Byk8w16g2XHBsPyRRWa5pBlrkE7TJebEP+YUmstEdBQXRR7BcadtehAIksv5l1Q== X-Received: by 2002:a05:620a:f0b:: with SMTP id v11mr1916659qkl.429.1634936168508; Fri, 22 Oct 2021 13:56:08 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:08 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 1/9] rpcsys: Add a rpcsys.py tool Date: Fri, 22 Oct 2021 16:55:58 -0400 Message-Id: <20211022205606.66392-2-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker This will be used to print and manipulate the sunrpc sysfs directory files. Running without arguments prints both usage information and the location of the sunrpc sysfs directory. Signed-off-by: Anna Schumaker --- .gitignore | 2 ++ tools/rpcsys/rpcsys.py | 13 +++++++++++++ tools/rpcsys/sysfs.py | 19 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100755 tools/rpcsys/rpcsys.py create mode 100644 tools/rpcsys/sysfs.py diff --git a/.gitignore b/.gitignore index c89d1cd2583d..a476bd20bc3b 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,5 @@ systemd/rpc-gssd.service cscope.* # generic editor backup et al *~ +# python bytecode +__pycache__ diff --git a/tools/rpcsys/rpcsys.py b/tools/rpcsys/rpcsys.py new file mode 100755 index 000000000000..8ff59ea9e81b --- /dev/null +++ b/tools/rpcsys/rpcsys.py @@ -0,0 +1,13 @@ +#!/usr/bin/python +import argparse +import sysfs + +parser = argparse.ArgumentParser() + +def show_small_help(args): + parser.print_usage() + print("sunrpc dir:", sysfs.SUNRPC) +parser.set_defaults(func=show_small_help) + +args = parser.parse_args() +args.func(args) diff --git a/tools/rpcsys/sysfs.py b/tools/rpcsys/sysfs.py new file mode 100644 index 000000000000..c9d477063585 --- /dev/null +++ b/tools/rpcsys/sysfs.py @@ -0,0 +1,19 @@ +import pathlib +import re +import sys + +MOUNT = None +with open("/proc/mounts", 'r') as f: + for line in f: + if re.search("^sys ", line): + MOUNT = line.split()[1] + break + +if MOUNT == None: + print("ERROR: sysfs is not mounted") + sys.exit(1) + +SUNRPC = pathlib.Path(MOUNT) / "kernel" / "sunrpc" +if not SUNRPC.is_dir(): + print("ERROR: sysfs does not have sunrpc directory") + sys.exit(1) From patchwork Fri Oct 22 20:55:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579053 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33FE9C433FE for ; Fri, 22 Oct 2021 20:56:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 163AF60EDF for ; Fri, 22 Oct 2021 20:56:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234153AbhJVU62 (ORCPT ); Fri, 22 Oct 2021 16:58:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234190AbhJVU62 (ORCPT ); Fri, 22 Oct 2021 16:58:28 -0400 Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 19A02C061764 for ; Fri, 22 Oct 2021 13:56:10 -0700 (PDT) Received: by mail-qk1-x735.google.com with SMTP id a13so5728874qkg.11 for ; Fri, 22 Oct 2021 13:56:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OpGx2h5N8nhRRTXLkKQvc2iaqAi/XhbAVvpt49qrdz8=; b=FpxddA26RaU770bh3d843f1eFbvbHhYUZap6CGEx0lDXKPWbSQy6X2ZhPgB8GkyiDP gSlYIGo5MeYcWkp9TcRoGNplI5XUgRBa7Zq+PZFDaOPSPi257dTrn80g/Uz2LKRss1/i yMFmyBRiVGoYWo0+J1qYHwaR77KqSECQgeQ3m03m6Xjf29OSfdV46qm5PCFWCZOhM2p2 vRC6A0ozCq/3ssxR/xtQIiHWo3TaSxjZXyuz4Eh8XkGPN5dNIe64IOn/8Zhyu5U2qKL1 Pi1TDe9/PAu+XuAtv1X2bbx1ub83T0EkD/Nemt6Q/H/FtyLOWGUPX3KTibnU+7Ekd7qF Y0+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=OpGx2h5N8nhRRTXLkKQvc2iaqAi/XhbAVvpt49qrdz8=; b=CkaADLG5aQ6GVg99Mo7gUlkXZvrpmX474WOyFDORqG2QpVOkWpM9mfGSrNQGBCdnlI QPaNkjVuUK534+z4T5En97Bre5RbvJpdcfn9yfyWg90s6zs/TZmDv7MeQI/BDY30pu0x iDRMt7oTMe1FyJWXdwcH+OV6qr0zmHqKJwJ4smKj8GGaeNIapglDULqwlhaKlyyBB8XW hbj0kWJ3zPlrKstKWZce6YPXkiY6ErN7Lx8tZ1jx7uHqSXpfr/ZayJTk/BI7OXPAaO5m ZXb94/2PadDxP8MyD9skWbopVZLx0QJMWnIM0GhiqSIkFIMsJacyXlHQ8elDBB53tL8k 1mIg== X-Gm-Message-State: AOAM532uVFx+bWvzLB+HF3RN+39K7ds1OrLUnjTBe5jTz+y3tJ6WwdU7 Pjdx0kr9Y+1mtuHU8SraXSHCq25RsMk= X-Google-Smtp-Source: ABdhPJyh8+ZFg3ORckuBOievTKbMujPSQfZPrmcNro+ZI7AqkhZIb7CUXK4jFkXV94ORcNnZh/FXNw== X-Received: by 2002:a37:b7c2:: with SMTP id h185mr1992179qkf.311.1634936169078; Fri, 22 Oct 2021 13:56:09 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:08 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 2/9] rpcsys: Add a command for printing xprt switch information Date: Fri, 22 Oct 2021 16:55:59 -0400 Message-Id: <20211022205606.66392-3-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker This combines the information found in xprt_switch_info with a subset of the information found in each xprt subdirectory Signed-off-by: Anna Schumaker --- tools/rpcsys/rpcsys.py | 6 ++++++ tools/rpcsys/switch.py | 35 +++++++++++++++++++++++++++++++++++ tools/rpcsys/sysfs.py | 10 ++++++++++ tools/rpcsys/xprt.py | 12 ++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 tools/rpcsys/switch.py create mode 100644 tools/rpcsys/xprt.py diff --git a/tools/rpcsys/rpcsys.py b/tools/rpcsys/rpcsys.py index 8ff59ea9e81b..90efcbed7ac8 100755 --- a/tools/rpcsys/rpcsys.py +++ b/tools/rpcsys/rpcsys.py @@ -9,5 +9,11 @@ def show_small_help(args): print("sunrpc dir:", sysfs.SUNRPC) parser.set_defaults(func=show_small_help) + +import switch +subparser = parser.add_subparsers(title="commands") +switch.add_command(subparser) + + args = parser.parse_args() args.func(args) diff --git a/tools/rpcsys/switch.py b/tools/rpcsys/switch.py new file mode 100644 index 000000000000..afb6963a0a1f --- /dev/null +++ b/tools/rpcsys/switch.py @@ -0,0 +1,35 @@ +import sysfs +import xprt + +class XprtSwitch: + def __init__(self, path): + self.path = path + self.id = int(str(path).rsplit("-", 1)[1]) + + self.xprts = [ xprt.Xprt(p) for p in self.path.iterdir() if p.is_dir() ] + self.xprts.sort() + + self.__dict__.update(sysfs.read_info_file(path / "xprt_switch_info")) + + def __lt__(self, rhs): + return self.path < rhs.path + + def __str__(self): + line = "switch %s: num_xprts %s, num_active %s, queue_len %s" % \ + (self.id, self.num_xprts, self.num_active, self.queue_len) + for x in self.xprts: + line += "\n %s" % x.small_str() + return line + + +def list_xprt_switches(args): + switches = [ XprtSwitch(f) for f in (sysfs.SUNRPC / "xprt-switches").iterdir() ] + switches.sort() + for xs in switches: + if args.id == None or xs.id == args.id[0]: + print(xs) + +def add_command(subparser): + parser = subparser.add_parser("xprt-switch", help="Commands for xprt switches") + parser.add_argument("--id", metavar="ID", nargs=1, type=int, help="Id of a specific xprt-switch to show") + parser.set_defaults(func=list_xprt_switches) diff --git a/tools/rpcsys/sysfs.py b/tools/rpcsys/sysfs.py index c9d477063585..79f844af34a6 100644 --- a/tools/rpcsys/sysfs.py +++ b/tools/rpcsys/sysfs.py @@ -17,3 +17,13 @@ SUNRPC = pathlib.Path(MOUNT) / "kernel" / "sunrpc" if not SUNRPC.is_dir(): print("ERROR: sysfs does not have sunrpc directory") sys.exit(1) + + +def read_info_file(path): + res = dict() + with open(path) as info: + for line in info: + if "=" in line: + (key, val) = line.strip().split("=") + res[key] = int(val) + return res diff --git a/tools/rpcsys/xprt.py b/tools/rpcsys/xprt.py new file mode 100644 index 000000000000..d37537771c1d --- /dev/null +++ b/tools/rpcsys/xprt.py @@ -0,0 +1,12 @@ +class Xprt: + def __init__(self, path): + self.path = path + self.id = int(str(path).rsplit("-", 2)[1]) + self.type = str(path).rsplit("-", 2)[2] + self.dstaddr = open(path / "dstaddr", 'r').readline().strip() + + def __lt__(self, rhs): + return self.id < rhs.id + + def small_str(self): + return "xprt %s: %s, %s" % (self.id, self.type, self.dstaddr) From patchwork Fri Oct 22 20:56:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579051 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22ADFC4332F for ; Fri, 22 Oct 2021 20:56:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0405F60EDF for ; Fri, 22 Oct 2021 20:56:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233732AbhJVU63 (ORCPT ); Fri, 22 Oct 2021 16:58:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234315AbhJVU62 (ORCPT ); Fri, 22 Oct 2021 16:58:28 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8A31C061764 for ; Fri, 22 Oct 2021 13:56:10 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id y10so5771032qkp.9 for ; Fri, 22 Oct 2021 13:56:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g/R0jC4P7O+0dIMXzLoTAUYHx0dn5Ru5svPDv4bWJWA=; b=GlkHJ6knG+Qc42m/9Mkl1Kj8+XU2JVMfweB1xCENVLAtjg64kaOOUhx0pdeKFc+a0g 9dlhEaqm166/SnO5xqZqXyrhJ1MMiPUqfSoEF7DjTF7c6oJPcQg7IEcRDCjqjbimnYIB tROw2l09bjawBjYuPVDfjie38BRf9d5EJt+hN2BV3HDftpSByxKqzmYQhAN/8v75CNFH Tym5mPT4Vfuw5+uV0ljG76oxUl7Q9C98Ut1NC6a3vhrGomy9KsApZsx56YBB1r3HIU9h iNtDgTvwFht2UbDGLefWqaSKxXZqSRoFleNfyC8K1jUlgpLcZO8YNnTmug3nhihf8v36 Sxlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=g/R0jC4P7O+0dIMXzLoTAUYHx0dn5Ru5svPDv4bWJWA=; b=s6K3VAMSzUR+Yg2pxa66h1CcQHTEm8aKPAmv/Se+XSLK9AWLHYTN7dK0iBtH5mqAVT bsglkbA6iLOjutYhhr80XuSdGdEu/tVgfyEhloZAyqEc16pcY/OIw6qa6jBwSF+SQBrn yQWfBOV+RfIuO0YVbY5JKNdqaAE6cwKJg8APijU/sSjsxXj4dw5coCTEasMe3WzI3oMD XcxIoAJ231JftCwippxar2A+rIOPJnb6bhGF04fUj9XJXSFE0FA8P49AOjZ74hgHZO5Y MJfcibDnwa3QzUey8fCDBNFFhT6zziq9rLY/dyrq2HrSZew/e2e3OVyFUDKTxMfPQE0+ Yecg== X-Gm-Message-State: AOAM5338rUKXkGty3p2Q3IsJos9fq0eR+nwHmvsqyqBVXVk8TcbSkgbn d6yo5w4bRqEoiMAwfcC4cFU= X-Google-Smtp-Source: ABdhPJxafIsXYEtO3xZttDqU3ZM7BA0gdLaJ/Yx8t3rZ0Qs7J3QLQaeYBwXgOcjjubKnaM/YJzpabw== X-Received: by 2002:a05:620a:541:: with SMTP id o1mr2043556qko.41.1634936169867; Fri, 22 Oct 2021 13:56:09 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:09 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 3/9] rpcsys: Add a command for printing individual xprts Date: Fri, 22 Oct 2021 16:56:00 -0400 Message-Id: <20211022205606.66392-4-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker This shows more detailed information than what is presented with xprt switches. I take the chance to add a main-export indicator to the small_str() used when printing out xprt-switches. Signed-off-by: Anna Schumaker --- tools/rpcsys/rpcsys.py | 2 ++ tools/rpcsys/xprt.py | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/tools/rpcsys/rpcsys.py b/tools/rpcsys/rpcsys.py index 90efcbed7ac8..dfad6ac08fa0 100755 --- a/tools/rpcsys/rpcsys.py +++ b/tools/rpcsys/rpcsys.py @@ -11,8 +11,10 @@ parser.set_defaults(func=show_small_help) import switch +import xprt subparser = parser.add_subparsers(title="commands") switch.add_command(subparser) +xprt.add_command(subparser) args = parser.parse_args() diff --git a/tools/rpcsys/xprt.py b/tools/rpcsys/xprt.py index d37537771c1d..fbdd9bfc9375 100644 --- a/tools/rpcsys/xprt.py +++ b/tools/rpcsys/xprt.py @@ -1,12 +1,48 @@ +import sysfs + class Xprt: def __init__(self, path): self.path = path self.id = int(str(path).rsplit("-", 2)[1]) self.type = str(path).rsplit("-", 2)[2] self.dstaddr = open(path / "dstaddr", 'r').readline().strip() + self.srcaddr = open(path / "srcaddr", 'r').readline().strip() + + with open(path / "xprt_state") as f: + self.state = ','.join(f.readline().split()[1:]) + self.__dict__.update(sysfs.read_info_file(path / "xprt_info")) def __lt__(self, rhs): return self.id < rhs.id + def __str__(self): + state = self.state + if self.main_xprt: + state = "MAIN," + self.state + + line = "xprt %s: %s, %s, port %s, state <%s>" % \ + (self.id, self.type, self.dstaddr, self.dst_port, state) + line += "\n Source: %s, port %s, Requests: %s" % \ + (self.srcaddr, self.src_port, self.num_reqs) + line += "\n Congestion: cur %s, win %s, Slots: min %s, max %s" % \ + (self.cur_cong, self.cong_win, self.min_num_slots, self.max_num_slots) + line += "\n Queues: binding %s, sending %s, pending %s, backlog %s, tasks %s" % \ + (self.binding_q_len, self.sending_q_len, self.pending_q_len, self.backlog_q_len, self.tasks_queuelen) + return line + def small_str(self): - return "xprt %s: %s, %s" % (self.id, self.type, self.dstaddr) + return "xprt %s: %s, %s%s" % (self.id, self.type, self.dstaddr, + f" [main]" if self.main_xprt else "" ) + + +def list_xprts(args): + xprts = [ Xprt(f) for f in (sysfs.SUNRPC / "xprt-switches").glob("**/xprt-*") ] + xprts.sort() + for xprt in xprts: + if args.id == None or xprt.id == args.id[0]: + print(xprt) + +def add_command(subparser): + parser = subparser.add_parser("xprt", help="Commands for individual xprts") + parser.add_argument("--id", metavar="ID", nargs=1, type=int, help="Id of a specific xprt to show") + parser.set_defaults(func=list_xprts) From patchwork Fri Oct 22 20:56:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579059 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88921C433F5 for ; Fri, 22 Oct 2021 20:56:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 748BC60EDF for ; Fri, 22 Oct 2021 20:56:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234328AbhJVU6a (ORCPT ); Fri, 22 Oct 2021 16:58:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234190AbhJVU63 (ORCPT ); Fri, 22 Oct 2021 16:58:29 -0400 Received: from mail-qt1-x82c.google.com (mail-qt1-x82c.google.com [IPv6:2607:f8b0:4864:20::82c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6EBFFC061766 for ; Fri, 22 Oct 2021 13:56:11 -0700 (PDT) Received: by mail-qt1-x82c.google.com with SMTP id r17so4656778qtx.10 for ; Fri, 22 Oct 2021 13:56:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Kb6sz5NU2w3wY8Uj3W+ORmwjW8uJ0z9LSlhatxIurXA=; b=jV9/xcdG6CSzQmgL4ZZln23s/4+erFjXwlVL/dWK0CYIsffbBFoc78iPjBWzAyOWa4 9u2OgPgHvgs9ZnfLZqFxs6MTkDVgsVezlqQnTKNvCzQ9XqtBI/oDSVspJpuDNZ4P2cql B0pBoDFOKei4XS3xYmouCL/mtmchIPcsrHbqBOe6KtUADsQEKUNMHUOTpeGkMYJOl2cU zwkw4D25mkZz0aFvd+IRrb7cdC0AgKJU6jG38iuoTNHdYIMG84Ht6xiCDvHvFLpB0nO9 dSwIB6LEGYg/oEMeDFeZY5vNXpY8RBHYbuaNiH7dvBhoPaADFqf+7VObqqT8QANcdbRM GLuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Kb6sz5NU2w3wY8Uj3W+ORmwjW8uJ0z9LSlhatxIurXA=; b=ONs49oz1zWzKq7opaHdyFspsobulRd0hHJKvArNdUUGjJVpr/tLZZdHT9/zReeIg1e xbDDvuC3L/7+ofrs1JT73SwhM9o60K35O0+GHW3lyo7w9H+5GeEw60us1rDtRUOEBshs V6bx20yUg7XIwEOIIOGY6ord3KPf+urWzieN7MAMwBcjLPvTPJqQ+YGzNGV37qis9lmz RVrzRe7quOKyX+k2voTBZYbPMKcmsqiuZVusdWVNeKnI+s0b4Alt9FVbWfUGnx7DJ3RO rQ4lSum1ORebtU9g5pGVbLbocRnK+0nuSUTap9gZ1tRZb55t9ERPdD7WNpZ7OGNKByMG 3DDQ== X-Gm-Message-State: AOAM533G+LT2IfjhGtRwYn9Bqav2oCBkTSsPqlhuNFnZHdDVbJZ3ESmE 5VhhGaaOvxA2gxQpm5tviPk= X-Google-Smtp-Source: ABdhPJyyxlQXPnH1nTDJ3wwM+yZaPxuwBtOV3Ghpjk2nskE+2wz9e6VChDIVdOI53ARiTdQXyemnHA== X-Received: by 2002:ac8:57c3:: with SMTP id w3mr2427721qta.132.1634936170516; Fri, 22 Oct 2021 13:56:10 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:10 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 4/9] rpcsys: Add a command for printing rpc-client information Date: Fri, 22 Oct 2021 16:56:01 -0400 Message-Id: <20211022205606.66392-5-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker It's mostly the same information as with xprt-switches, except with rpc-client id prepended to the first line. Signed-off-by: Anna Schumaker --- tools/rpcsys/client.py | 27 +++++++++++++++++++++++++++ tools/rpcsys/rpcsys.py | 2 ++ tools/rpcsys/switch.py | 7 ++++--- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 tools/rpcsys/client.py diff --git a/tools/rpcsys/client.py b/tools/rpcsys/client.py new file mode 100644 index 000000000000..5192cc226aed --- /dev/null +++ b/tools/rpcsys/client.py @@ -0,0 +1,27 @@ +import sysfs +import switch + +class RpcClient: + def __init__(self, path): + self.path = path + self.id = int(str(path).rsplit("-", 1)[1]) + self.switch = switch.XprtSwitch(path / (path / "switch").readlink(), sep=",") + + def __lt__(self, rhs): + return self.id < rhs.id + + def __str__(self): + return "client %s: %s" % (self.id, self.switch) + + +def list_rpc_clients(args): + clients = [ RpcClient(f) for f in (sysfs.SUNRPC / "rpc-clients").iterdir() ] + clients.sort() + for client in clients: + if args.id == None or client.id == args.id[0]: + print(client) + +def add_command(subparser): + parser = subparser.add_parser("rpc-client", help="Commands for rpc clients") + parser.add_argument("--id", metavar="ID", nargs=1, type=int, help="Id of a specific client to show") + parser.set_defaults(func=list_rpc_clients) diff --git a/tools/rpcsys/rpcsys.py b/tools/rpcsys/rpcsys.py index dfad6ac08fa0..e2172cdfa4c1 100755 --- a/tools/rpcsys/rpcsys.py +++ b/tools/rpcsys/rpcsys.py @@ -10,9 +10,11 @@ def show_small_help(args): parser.set_defaults(func=show_small_help) +import client import switch import xprt subparser = parser.add_subparsers(title="commands") +client.add_command(subparser) switch.add_command(subparser) xprt.add_command(subparser) diff --git a/tools/rpcsys/switch.py b/tools/rpcsys/switch.py index afb6963a0a1f..5384f970235c 100644 --- a/tools/rpcsys/switch.py +++ b/tools/rpcsys/switch.py @@ -2,9 +2,10 @@ import sysfs import xprt class XprtSwitch: - def __init__(self, path): + def __init__(self, path, sep=":"): self.path = path self.id = int(str(path).rsplit("-", 1)[1]) + self.sep = sep self.xprts = [ xprt.Xprt(p) for p in self.path.iterdir() if p.is_dir() ] self.xprts.sort() @@ -15,8 +16,8 @@ class XprtSwitch: return self.path < rhs.path def __str__(self): - line = "switch %s: num_xprts %s, num_active %s, queue_len %s" % \ - (self.id, self.num_xprts, self.num_active, self.queue_len) + line = "switch %s%s num_xprts %s, num_active %s, queue_len %s" % \ + (self.id, self.sep, self.num_xprts, self.num_active, self.queue_len) for x in self.xprts: line += "\n %s" % x.small_str() return line From patchwork Fri Oct 22 20:56:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579055 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4EC87C43217 for ; Fri, 22 Oct 2021 20:56:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 39B7E60EDF for ; Fri, 22 Oct 2021 20:56:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234336AbhJVU6a (ORCPT ); Fri, 22 Oct 2021 16:58:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234315AbhJVU6a (ORCPT ); Fri, 22 Oct 2021 16:58:30 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A280C061764 for ; Fri, 22 Oct 2021 13:56:12 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id d15so5743389qkj.10 for ; Fri, 22 Oct 2021 13:56:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=M6Bz2yh540ccVCkW2g9qTFRjAM0OD1xmVMddS3dX4po=; b=cLn/X3j5hFahZZZo9yC/O8AP/HQSjwcSItBCeakgVfqyU7Ev0LXPtjpg1ee8mx8Yzd VuCWNA/SMSq1t4mfHWCuL2h1JlPPcoOeicqMYZyfIh+nzgQ2UviBDV5Q5t1HfLF1LaEa PTcqXGFRFi86tl5BmgI/f93tiO1N9ObYG9k5OF4IELjLQj6KlVToxppu34VX59WAL00D dC24g/13Py2XC7n3+nHwUwvl5NSoAEKQN4EbyAjCj9QhXmU/i/ybYCPyISoJFXMj4Krr UQFhz0lyXLv36FPremCY6DQVFFZkbGe6cWJ+p+N/MF/INqbwmT3otETIs6VG2JVF0kAp J6Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=M6Bz2yh540ccVCkW2g9qTFRjAM0OD1xmVMddS3dX4po=; b=oqRHZMSmLRI8vjd8FDnUYLDBMo0ck28Cdcf2JC3joXZpL8AYTo6wVtcrDwDDTIDihx fhbp1ezewiZyz8JPJaF4rGWS+kmOq7CBILaSid0IsAE+RrjLlhWhn8s0ZfXjfUfbdhdc 4NrY7s4EHe8Z8hAeu140KpAyTRl9DCvU8/At6UcM2VweeLyYX5UJgxWtgDqS/ZRdzmFR tosP5q5Oay2nmPEGYAQe2v6zDkTLjzFtvRE1bLZl8WhOrt5sx/1EIPw36vX73Uc0CGUw AbAkjJf5jfRREfql3RDMLmOXFWyYiY8YUVFOBBZg/cQBy0exOrbPEJpdSNY8/WaamazM Ik9A== X-Gm-Message-State: AOAM530aWUQuZMCudr9LW3g0x0zLTzLaHf9IdkEYTU6LtPotAUXr+Odm 0MNW8WHdgMn48O24oruOkqM= X-Google-Smtp-Source: ABdhPJy5guhYj1RPkkJ0lmFgb07XRDbcDD1RYWQCmaDLSP0MGDP6j5txrAiV4Y+W/X56T8Yoq2PEOg== X-Received: by 2002:a37:6215:: with SMTP id w21mr2028254qkb.42.1634936171205; Fri, 22 Oct 2021 13:56:11 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:10 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 5/9] rpcsys: Add a command for changing xprt dstaddr Date: Fri, 22 Oct 2021 16:56:02 -0400 Message-Id: <20211022205606.66392-6-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker Using the socket module for dns resolution Signed-off-by: Anna Schumaker --- tools/rpcsys/xprt.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tools/rpcsys/xprt.py b/tools/rpcsys/xprt.py index fbdd9bfc9375..2160cb0a9575 100644 --- a/tools/rpcsys/xprt.py +++ b/tools/rpcsys/xprt.py @@ -1,3 +1,4 @@ +import socket import sysfs class Xprt: @@ -34,6 +35,12 @@ class Xprt: return "xprt %s: %s, %s%s" % (self.id, self.type, self.dstaddr, f" [main]" if self.main_xprt else "" ) + def set_dstaddr(self, newaddr): + resolved = socket.gethostbyname(newaddr) + with open(self.path / "dstaddr", 'w') as f: + f.write(resolved) + self.dstaddr = open(self.path / "dstaddr", 'r').readline().strip() + def list_xprts(args): xprts = [ Xprt(f) for f in (sysfs.SUNRPC / "xprt-switches").glob("**/xprt-*") ] @@ -42,7 +49,28 @@ def list_xprts(args): if args.id == None or xprt.id == args.id[0]: print(xprt) +def get_xprt(id): + xprts = [ Xprt(f) for f in (sysfs.SUNRPC / "xprt-switches").glob("**/xprt-*") ] + for xprt in xprts: + if xprt.id == id: + return xprt + +def set_xprt_property(args): + xprt = get_xprt(args.id[0]) + try: + if args.dstaddr != None: + xprt.set_dstaddr(args.dstaddr[0]) + print(xprt) + except Exception as e: + print(e) + def add_command(subparser): parser = subparser.add_parser("xprt", help="Commands for individual xprts") parser.add_argument("--id", metavar="ID", nargs=1, type=int, help="Id of a specific xprt to show") parser.set_defaults(func=list_xprts) + + subparser = parser.add_subparsers() + parser = subparser.add_parser("set", help="Set an xprt property") + parser.add_argument("--id", metavar="ID", nargs=1, type=int, required=True, help="Id of a specific xprt to modify") + parser.add_argument("--dstaddr", metavar="dstaddr", nargs=1, type=str, help="New dstaddr to set") + parser.set_defaults(func=set_xprt_property) From patchwork Fri Oct 22 20:56:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579057 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD016C433EF for ; Fri, 22 Oct 2021 20:56:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A28D1610C8 for ; Fri, 22 Oct 2021 20:56:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234337AbhJVU6b (ORCPT ); Fri, 22 Oct 2021 16:58:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234190AbhJVU6a (ORCPT ); Fri, 22 Oct 2021 16:58:30 -0400 Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9EFA1C061766 for ; Fri, 22 Oct 2021 13:56:12 -0700 (PDT) Received: by mail-qk1-x734.google.com with SMTP id 77so5836980qkh.6 for ; Fri, 22 Oct 2021 13:56:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/Pg9Cg2bw610qpt+ZbBxtZuR3ZaWjfMwreSmpnGnoeQ=; b=aA9xTKZ/7/cxiafImaXsr8tqHgnnI1PqCBN0okYAndp0GTaNqR4Nx1lju127DGnTgQ hHFBeHHATAc/CbriA776qUVUGwZknkuMMSVRZw/D0n98pY225/6nk8DLnv9wNsNBPT35 DWemhuuP/kEm9wGvKtkm+NHx0gseqVermoKO+Gc7V0sqmu0jGPa4EO42SPkBmcJaA/nw 3sAhopDlTk6udyW97dHL4OddDayeHngmffy/Uwb3MegqiV0mRAIwQBlkRlLKfR/Ekucm 6ZVMqCViuUpdzUmm6HFh9SwK9D6PVFyS8GyKtP7add2+Omm5P+h+0AYadxkuoNWsQ3xL exYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=/Pg9Cg2bw610qpt+ZbBxtZuR3ZaWjfMwreSmpnGnoeQ=; b=ltBYw5UFfuOfluiWlJzhy6K8aj3+H2r5TevKLAq3PpEAlfEYqNRhcZI3tTC0h8AyvX DH4VY7524z5QMI0W6ne4N7G4d0IWQP2Na7rLYxSSGNY5Rb0vbv3rIqbPkxrV5Ssp2aZb 63rKyhiBndlZNg9MZ89N82n/unmGqtQwphoc0ioXLplGzy9HPe62CF77s4MLLUHen3TS TvtQmCXIUS/ZgRvG/ahE7jqbzPkWErviZqUTP+/HfhF3QC7iNyvrZzmxnD+kdcRN4xX7 zuHyAurjkMI6O3k8rpqO8zmLXEog5Qb4OzaK523qvqPnZgj5k4nvelbzgSSt+RIPW2iJ 2XyA== X-Gm-Message-State: AOAM530koQh5pjxDjoYUxM1hT7smV4pGoGP4Hrpn2dX4N382Ke6at0D+ eZM3RvGCCr6CkPA3faXAXKk= X-Google-Smtp-Source: ABdhPJyz617DeMXAHFR9VcmYWsu5MjAkF8u1Im0Yspqkz1SvWH9cYEydYfBL/5COVI/I6N3wH1fkqg== X-Received: by 2002:a37:9f0e:: with SMTP id i14mr2099722qke.21.1634936171763; Fri, 22 Oct 2021 13:56:11 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:11 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 6/9] rpcsys: Add a command for changing xprt-switch dstaddrs Date: Fri, 22 Oct 2021 16:56:03 -0400 Message-Id: <20211022205606.66392-7-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker This is basically the same as for xprts, but it iterates through all xprts attached to the switch to apply the new address. Signed-off-by: Anna Schumaker --- tools/rpcsys/switch.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/rpcsys/switch.py b/tools/rpcsys/switch.py index 5384f970235c..859b82e07895 100644 --- a/tools/rpcsys/switch.py +++ b/tools/rpcsys/switch.py @@ -30,7 +30,22 @@ def list_xprt_switches(args): if args.id == None or xs.id == args.id[0]: print(xs) +def set_xprt_switch_property(args): + switch = XprtSwitch(sysfs.SUNRPC / "xprt-switches" / f"switch-{args.id[0]}") + try: + for xprt in switch.xprts: + xprt.set_dstaddr(args.dstaddr[0]) + print(switch) + except Exception as e: + print(e) + def add_command(subparser): parser = subparser.add_parser("xprt-switch", help="Commands for xprt switches") parser.add_argument("--id", metavar="ID", nargs=1, type=int, help="Id of a specific xprt-switch to show") parser.set_defaults(func=list_xprt_switches) + + subparser = parser.add_subparsers() + parser = subparser.add_parser("set", help="Set an xprt switch property") + parser.add_argument("--id", metavar="ID", nargs=1, type=int, required=True, help="Id of an xprt-switch to modify") + parser.add_argument("--dstaddr", metavar="dstaddr", nargs=1, type=str, help="New dstaddr to set") + parser.set_defaults(func=set_xprt_switch_property) From patchwork Fri Oct 22 20:56:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579061 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3398FC433FE for ; Fri, 22 Oct 2021 20:56:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1C13760EDF for ; Fri, 22 Oct 2021 20:56:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234190AbhJVU6c (ORCPT ); Fri, 22 Oct 2021 16:58:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234315AbhJVU6b (ORCPT ); Fri, 22 Oct 2021 16:58:31 -0400 Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D625C061764 for ; Fri, 22 Oct 2021 13:56:13 -0700 (PDT) Received: by mail-qk1-x735.google.com with SMTP id g20so5951976qka.1 for ; Fri, 22 Oct 2021 13:56:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EbjeUo61Z/sdKXb9bGRqmA2PDU0uib8xLroHBEERW8E=; b=MAyXEbW/iKRmJ4vo1lOcFLv7Khmk1PyR7ICt3BIyAjaY5qLuR8RW6bvMSfz9celP4x 9kn43SM93RxYhmZoX9SpFr+vkzpXRCEifMf6GKJzU/iIZiP2Rx5dtJifQwIGoZE9Dm1+ X9ZX+tAiksXApzemXcf7gL08efHmGvk0oW7T0uweg/2ST7coCsRA3veYKs4d+7Ti34gn MptYTg11B2/jzy+CikbiJLpLsDW0T396Chz8ceuRbW+837UwqoFcqMDwZaMZCnacpP/J tQTwi5Yloxm0eBjJY6+NFuAmZ7O2zeQzEHecSGPsH8NbQvY6CjKzoAhX3MxnKLeFnSgr BIcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=EbjeUo61Z/sdKXb9bGRqmA2PDU0uib8xLroHBEERW8E=; b=3Atn+YlhnyXMbaHsslK23m3RR4RcJ1p5RLJSpL0dpjeIBz48k9lq+M0eWhlRg4Hifp MPUfcXxWlHtwpdQeg2XbTRS92zt7IDtLn4gKB75NxWx+gGVjF/aA7IjMc6Ade/2mTy9n 7LjgxbsOnXs9oY45Zf09awI2slzhKY2WL9SGFX5QQTHxRPxf+AtjL+jMKWxhCCNztnyD qo3tZOZ1Rk8Z3GRGZhORCpVAWl0v0YaDhswLHXJLq3OlHGWn2D5ugsg+QeQQFFlzQz+d e2z+6cjEG9t9y0DyuwYtWxRPWbqmQd4IIzqrbQBziPPvZO52lYCjICZP4trWIGxxUePu ghyQ== X-Gm-Message-State: AOAM5336MPGxGu+02VI7L4c+mYWp3zeBu+fwmJ+F/R+qZW7h/hXno0LL oNHsLEw42Msw86/FE7ARBDPtNZV8cP0= X-Google-Smtp-Source: ABdhPJyEgzViXrMwN3uztMkRhmCiMdKHjx7p7+fJaOxfALSHfFhWzqM9hUrbKYRQfPz7w5s8SiJB7A== X-Received: by 2002:a37:b4c2:: with SMTP id d185mr2018692qkf.504.1634936172314; Fri, 22 Oct 2021 13:56:12 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:12 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 7/9] rpcsys: Add a command for changing xprt state Date: Fri, 22 Oct 2021 16:56:04 -0400 Message-Id: <20211022205606.66392-8-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker We can set it offline or online, or we can remove an xprt. The kernel only supports removing offlined transports, so we make sure to set the state to "offline" before sending the remove command. Signed-off-by: Anna Schumaker --- tools/rpcsys/xprt.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/tools/rpcsys/xprt.py b/tools/rpcsys/xprt.py index 2160cb0a9575..9426c99dae2b 100644 --- a/tools/rpcsys/xprt.py +++ b/tools/rpcsys/xprt.py @@ -8,15 +8,18 @@ class Xprt: self.type = str(path).rsplit("-", 2)[2] self.dstaddr = open(path / "dstaddr", 'r').readline().strip() self.srcaddr = open(path / "srcaddr", 'r').readline().strip() + self.exists = True - with open(path / "xprt_state") as f: - self.state = ','.join(f.readline().split()[1:]) + self.read_state() self.__dict__.update(sysfs.read_info_file(path / "xprt_info")) def __lt__(self, rhs): return self.id < rhs.id def __str__(self): + if not self.exists: + return "xprt %s: has been removed" % self.id + state = self.state if self.main_xprt: state = "MAIN," + self.state @@ -31,6 +34,13 @@ class Xprt: (self.binding_q_len, self.sending_q_len, self.pending_q_len, self.backlog_q_len, self.tasks_queuelen) return line + def read_state(self): + if not self.path.exists(): + self.exists = False + return + with open(self.path / "xprt_state") as f: + self.state = ','.join(f.readline().split()[1:]) + def small_str(self): return "xprt %s: %s, %s%s" % (self.id, self.type, self.dstaddr, f" [main]" if self.main_xprt else "" ) @@ -41,6 +51,11 @@ class Xprt: f.write(resolved) self.dstaddr = open(self.path / "dstaddr", 'r').readline().strip() + def set_state(self, state): + with open(self.path / "xprt_state", 'w') as f: + f.write(state) + self.read_state() + def list_xprts(args): xprts = [ Xprt(f) for f in (sysfs.SUNRPC / "xprt-switches").glob("**/xprt-*") ] @@ -60,6 +75,13 @@ def set_xprt_property(args): try: if args.dstaddr != None: xprt.set_dstaddr(args.dstaddr[0]) + if args.offline: + xprt.set_state("offline") + elif args.online: + xprt.set_state("online") + elif args.remove: + xprt.set_state("offline") + xprt.set_state("remove") print(xprt) except Exception as e: print(e) @@ -73,4 +95,7 @@ def add_command(subparser): parser = subparser.add_parser("set", help="Set an xprt property") parser.add_argument("--id", metavar="ID", nargs=1, type=int, required=True, help="Id of a specific xprt to modify") parser.add_argument("--dstaddr", metavar="dstaddr", nargs=1, type=str, help="New dstaddr to set") + parser.add_argument("--offline", action="store_true", help="Set an xprt offline") + parser.add_argument("--online", action="store_true", help="Set an offline xprt back online") + parser.add_argument("--remove", action="store_true", help="Remove an xprt") parser.set_defaults(func=set_xprt_property) From patchwork Fri Oct 22 20:56:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579063 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8801FC4332F for ; Fri, 22 Oct 2021 20:56:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7286E60EDF for ; Fri, 22 Oct 2021 20:56:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234348AbhJVU6c (ORCPT ); Fri, 22 Oct 2021 16:58:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234342AbhJVU6b (ORCPT ); Fri, 22 Oct 2021 16:58:31 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C6992C061766 for ; Fri, 22 Oct 2021 13:56:13 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id g20so5952000qka.1 for ; Fri, 22 Oct 2021 13:56:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hVO7REIp76+2qFpicM+1QVQpZOFHk4LHxdLNe0xZGvE=; b=dmedx2CbN2rD5Y+ntf92J01tP1uAfUznPVnqWCVIOdo4YQJ3NaRyOmwqESkomPWrlQ AxvvqXJErsNRnOp7/0dn0cQ8d0I9w86vZ2TCEXlOiLcfgXSazZUAqV1iBBsgRuEE40B9 Qh1OcBR+4GTTO06BaHeoHKgAkGdjaGPlMd2yXTLKu8vu3DqjtuVMRaMe56vISK5RZa6D /TCmxWjBO68/EFnnFfGeNpmOApt6Sq+l3elNQaarXEk6w2AFHGCdyRUwT+FRS0Odrd6z damYMf7MFMAqkxZVREM9+ATJMp9zsv3rfyyeWNygRjcBe1+VjZyhFRDO6JAHe8+2kPwY gVmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=hVO7REIp76+2qFpicM+1QVQpZOFHk4LHxdLNe0xZGvE=; b=mvLFIJI77PJ5oS8i5BTRTXMCbAlkitJo+QWGy0Kcrp1i3lLljf5liproEXufD4ofOq fhaukMbOjOM+T+WeYNacp+HcH+MfowiNJTAMlT1WQjDJB3dMGmb7ehDL2JGSvLNYBe62 bYAtUOHWujubHTPQZDyrCrdRnr1zHV8GGBQHEqQnmP2MHQa7RMCE+68XahOSHF1EgHyW wmv2hVjsyXMyXt7cOe/khPKsI03oBTk2LfP69ayo9YN8GBXR+IA5P1FX5F11AMqlxcGF 7Qd8YGGPbyCY6Kq28UXDsjvVIRovfFREwZWd5QJ5Na/hXpOBzVZ14mfDtHLYTWW7kAmT 118g== X-Gm-Message-State: AOAM530bhROMWQ7V+dn8wEjy45NLwqdnGwIaTQdOnKysj8WkVj77RbUo T+OcpDKGg/x+CrK/QTgUF4E= X-Google-Smtp-Source: ABdhPJwfRQFYwVpKT6W7nOeRq4sYsmi0bi2Ev32sVcFVtvIZiom6STXSN4Kn1H2Y5ot6IDWaxm8tjQ== X-Received: by 2002:a37:6309:: with SMTP id x9mr2013606qkb.414.1634936172924; Fri, 22 Oct 2021 13:56:12 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:12 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 8/9] rpcsys: Add a man page Date: Fri, 22 Oct 2021 16:56:05 -0400 Message-Id: <20211022205606.66392-9-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker Signed-off-by: Anna Schumaker --- tools/rpcsys/rpcsys.man | 88 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 tools/rpcsys/rpcsys.man diff --git a/tools/rpcsys/rpcsys.man b/tools/rpcsys/rpcsys.man new file mode 100644 index 000000000000..ce58d290f9ff --- /dev/null +++ b/tools/rpcsys/rpcsys.man @@ -0,0 +1,88 @@ +.\" +.\" rpcsys(8) +.\" +.TH rpcsys 8 "22 Oct 2021" +.SH NAME +rpcsys \- Displays SunRPC connection information +.SH SYNOPSIS +.B rpcsys +.RB [ \-h | \-\-help ] +.P +.B rpcsys rpc-client +.RB [ \-h | \-\-help ] +.RB [ \--id +.IR ID ] +.P +.B rpcsys xprt-switch +.RB [ \-h | \-\-help ] +.RB [ \--id +.IR ID ] +.P +.B rpcsys xprt-switch set +.RB [ \-h | \-\-help ] +.RB [ \--id +.IR ID ] +.RB [ \--dstaddr +.IR dstaddr] +.P +.B rpcsys xprt +.RB [ \-h | \-\-help ] +.RB [ \--id +.IR ID ] +.P +.B rpcsys xprt set +.RB [ \-h | \-\-help ] +.RB [ \--id +.IR ID ] +.RB [ \--dstaddr +.IR dstaddr] +.RB [ --offline ] +.RB [ --online ] +.RB [ --remove ] +.P +.SH DESCRIPTION +.RB "The " rpcsys " command displays information collected in the SunRPC sysfs files about the system's SunRPC objects. +.P +.SS Objects +Valid +.BR rpcsys (8) +objects are: +.IP "\fBrpc-client\fP" +Display information about this system's RPC clients. +.IP "\fBxprt-switch\fP" +Display information about groups of transports. +.IP "\fBxprt\fP" +Display detailed information about each transport that exists on the system. +.SH OPTIONS +.SS Options valid for all objects +.TP +.B \-h, \-\-help +Show the help message and exit +.TP +.B \-\-id \fIID +Set or display properties for the object with the given +.IR ID. +This option is mandatory for setting properties. +.SS Options specific to the `xprt-switch set` sub-command +.TP +.B \-\-dstaddr \fIdstaddr +Change the destination address of all transports in the xprt-switch to +.IR dstaddr +.SS Options specific to the `xprt set` sub-command +.TP +.B \-\-dstaddr \fIdstaddr +Change the destination address of this specific transport to +.TP +.B \-\-offline +Change the transport state from online to offline +.TP +.B \-\-online +Change the transport state from offline to online +.TP +.B \-\-remove +Removes the transport from the xprt-switch. Note that "main" transports cannot be removed. +.SH DIRECTORY +.TP +.B /sys/kernel/sunrpc/ +.SH AUTHOR +Anna Schumaker From patchwork Fri Oct 22 20:56:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12579065 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EEA57C4321E for ; Fri, 22 Oct 2021 20:56:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D8F2D60EDF for ; Fri, 22 Oct 2021 20:56:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234342AbhJVU6c (ORCPT ); Fri, 22 Oct 2021 16:58:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57336 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234315AbhJVU6c (ORCPT ); Fri, 22 Oct 2021 16:58:32 -0400 Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 612D0C061764 for ; Fri, 22 Oct 2021 13:56:14 -0700 (PDT) Received: by mail-qk1-x732.google.com with SMTP id r15so5788534qkp.8 for ; Fri, 22 Oct 2021 13:56:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1ujyHcIwqKN6zdaapwS5pbzFVukho+8cIHzt2DF+UzE=; b=FC0v/Qrrc4yzyr5vk+mZ6T4nZhn6i/xX5jV2UmZ5cr6P345JCigVhJc5udp9UPTe8c BDZKmuK2QtLCDr9MHcWaurFUtnOh7X/6uT+CbJb0Mv7WgRTAJhs/WL9qhPjcVXRjIrif P840NgGqBAvajQn2vhbLRHpCNhFUAG0JM0ujslsj2oDHtoNc802TtM4P8d/ZBH7dIXpL 8qksyEU8S9qmB1yPiZD0drqRE/5FJEWDGgdy4JvWUBTGh/lSRnDvVR7+7wGFP67sLuO/ 59/TfVUkK9dztoVYsYYJoI+w5A+Zi3eLfJH6Rgx22BSF8qE6KikKgp7Kd/JpuL5n9Noy xlfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=1ujyHcIwqKN6zdaapwS5pbzFVukho+8cIHzt2DF+UzE=; b=xFov1Y6gdVqZtCV+mxLFeyTQf0fIOE/WEZseuF/hj6BOsKXqhDpQMR5FMehd3T9ftw 6A8b9rntF8Xlp3q6KD19LgLoEL9PbTWZq6+gKC8OXA5ONw/QdeAgrStzkqOYIjEdbRez HK+ys874/dfKYrLiqnkVKVVRiVqSbdVmAWM94f2OOBA1ze+YgT+2pmDELVH6hyUyZxAJ tshhfR+EF4qImn9uUNpHYa1adUtXVDCxKTEwphDG+tggK3+0WhOJYG56MHCm95DcLuje f7fi97Iy34kBOmpNvRguxpeEctXW25Jch6BUToyWS6286oKHd5Rg5ED8a0kmPsGaqtul mz6w== X-Gm-Message-State: AOAM532U9uVIiTxiRjQ74Zmx/WXhw6bMGYCUU0dfqCMXwE1dfBqRAFNw QKPrM8R5nvPXZqwC6ItBNhk= X-Google-Smtp-Source: ABdhPJzxX/8rylzgiH0sUyci4cfRxmwlXo6UjiyHSwchCB1NH9ADE4rGezyPlMG0hbasznSfE4XaRg== X-Received: by 2002:a05:620a:4612:: with SMTP id br18mr1920367qkb.405.1634936173515; Fri, 22 Oct 2021 13:56:13 -0700 (PDT) Received: from gouda.nowheycreamery.com ([2601:401:100:a3a:aa6d:aaff:fe2e:8a6a]) by smtp.gmail.com with ESMTPSA id p9sm4576279qki.51.2021.10.22.13.56.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Oct 2021 13:56:13 -0700 (PDT) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: steved@redhat.com, linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v4 9/9] rpcsys: Add installation to the Makefile Date: Fri, 22 Oct 2021 16:56:06 -0400 Message-Id: <20211022205606.66392-10-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> References: <20211022205606.66392-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker And create a shell script that launches the python program from the $(libdir) Signed-off-by: Anna Schumaker --- configure.ac | 1 + tools/Makefile.am | 2 +- tools/rpcsys/Makefile.am | 20 ++++++++++++++++++++ tools/rpcsys/rpcsys | 5 +++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 tools/rpcsys/Makefile.am create mode 100644 tools/rpcsys/rpcsys diff --git a/configure.ac b/configure.ac index bc2d0f02979c..4df87a22166a 100644 --- a/configure.ac +++ b/configure.ac @@ -731,6 +731,7 @@ AC_CONFIG_FILES([ tools/rpcgen/Makefile tools/mountstats/Makefile tools/nfs-iostat/Makefile + tools/rpcsys/Makefile tools/nfsdclnts/Makefile tools/nfsconf/Makefile tools/nfsdclddb/Makefile diff --git a/tools/Makefile.am b/tools/Makefile.am index 9b4b0803db39..29e5249a2158 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -12,6 +12,6 @@ if CONFIG_NFSDCLD OPTDIRS += nfsdclddb endif -SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat nfsdclnts $(OPTDIRS) +SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat rpcsys nfsdclnts $(OPTDIRS) MAINTAINERCLEANFILES = Makefile.in diff --git a/tools/rpcsys/Makefile.am b/tools/rpcsys/Makefile.am new file mode 100644 index 000000000000..9e29977c3d11 --- /dev/null +++ b/tools/rpcsys/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in +PYTHON_FILES = rpcsys.py client.py switch.py sysfs.py xprt.py +tooldir = $(DESTDIR)$(libdir)/rpcsys + +man8_MANS = rpcsys.man + +all-local: $(PYTHON_FILES) + +install-data-hook: + mkdir -p $(tooldir) + for f in $(PYTHON_FILES) ; do \ + $(INSTALL) -m 644 $$f $(tooldir)/$$f ; \ + done + chmod +x $(tooldir)/rpcsys.py + $(INSTALL) -m 755 rpcsys $(DESTDIR)$(sbindir)/rpcsys + sed -i "s|LIBDIR=.|LIBDIR=$(tooldir)|" $(DESTDIR)$(sbindir)/rpcsys + + + +MAINTAINERCLEANFILES=Makefile.in diff --git a/tools/rpcsys/rpcsys b/tools/rpcsys/rpcsys new file mode 100644 index 000000000000..a3f860081a26 --- /dev/null +++ b/tools/rpcsys/rpcsys @@ -0,0 +1,5 @@ +#!/bin/bash +LIBDIR=. +PYTHON3=/usr/bin/python + +exec $PYTHON3 $LIBDIR/rpcsys.py $*