From patchwork Thu Oct 14 10:49:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 101604 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 910F2A0C47; Thu, 14 Oct 2021 12:50:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4E0D541248; Thu, 14 Oct 2021 12:50:03 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id D323341244 for ; Thu, 14 Oct 2021 12:50:01 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10136"; a="227609286" X-IronPort-AV: E=Sophos;i="5.85,372,1624345200"; d="scan'208";a="227609286" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2021 03:50:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,372,1624345200"; d="scan'208";a="481214314" Received: from silpixa00399126.ir.intel.com ([10.237.223.151]) by orsmga007.jf.intel.com with ESMTP; 14 Oct 2021 03:49:59 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Ciara Power , David Marchand , Anatoly Burakov , Kevin Traynor , Bruce Richardson , Conor Walsh Date: Thu, 14 Oct 2021 11:49:06 +0100 Message-Id: <20211014104907.856490-4-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211014104907.856490-1-bruce.richardson@intel.com> References: <20210915141030.23514-1-bruce.richardson@intel.com> <20211014104907.856490-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v9 3/4] usertools/dpdk-telemetry: connect to separate instances X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" For processes run using "in-memory" mode sharing the same runtime dir, we add support for connecting to the separate instance sockets created using ":1", ":2" etc. via new "-i" or "--instance" argument. Add details on connecting to separate instances to the telemetry howto document. Signed-off-by: Bruce Richardson Acked-by: Ciara Power Tested-by: Conor Walsh --- doc/guides/howto/telemetry.rst | 41 ++++++++++++++++++++++++++++++++++ usertools/dpdk-telemetry.py | 7 +++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/doc/guides/howto/telemetry.rst b/doc/guides/howto/telemetry.rst index 8f4fa1a510..e4edb53fa4 100644 --- a/doc/guides/howto/telemetry.rst +++ b/doc/guides/howto/telemetry.rst @@ -87,3 +87,44 @@ and query information using the telemetry client python script. --> /help,/ethdev/xstats {"/help": {"/ethdev/xstats": "Returns the extended stats for a port. Parameters: int port_id"}} + + +Connecting to Different DPDK Processes +-------------------------------------- + +When multiple DPDK process instances are running on a system, the user will +naturally wish to be able to select the instance to which the connection is +being made. The method to select the instance depends on how the individual +instances are run: + +* For DPDK processes run using a non-default file-prefix, + i.e. using the `--file-prefix` EAL option flag, + the file-prefix for the process should be passed via the `-f` or `--file-prefix` script flag. + + For example, to connect to testpmd run as:: + + $ ./build/app/dpdk-testpmd -l 2,3 --file-prefix="tpmd" + + One would use the telemetry script command:: + + $ ./usertools/dpdk-telemetry -f "tpmd" + +* For the case where multiple processes are run using the `--in-memory` EAL flag, + but no `-file-prefix` flag, or the same `-file-prefix` flag, + those processes will all share the same runtime directory. + In this case, + each process after the first will add an increasing count suffix to the telemetry socket name, + with each one taking the first available free socket name. + This suffix count can be passed to the telemetry script using the `-i` or `--instance` flag. + + For example, if the following two applications are run in separate terminals:: + + $ ./build/app/dpdk-testpmd -l 2,3 --in-memory # will use socket "dpdk_telemetry.v2" + + $ ./build/app/test/dpdk-test -l 4,5 --in-memory # will use "dpdk_telemetry.v2:1" + + The following telemetry script commands would allow one to connect to each binary:: + + $ ./usertools/dpdk-telemetry.py # will connect to testpmd + + $ ./usertools/dpdk-telemetry.py -i 1 # will connect to test binary diff --git a/usertools/dpdk-telemetry.py b/usertools/dpdk-telemetry.py index 2974a64732..ce27548c3e 100755 --- a/usertools/dpdk-telemetry.py +++ b/usertools/dpdk-telemetry.py @@ -112,6 +112,11 @@ def get_dpdk_runtime_dir(fp): parser = argparse.ArgumentParser() parser.add_argument('-f', '--file-prefix', default='rte', help='Provide file-prefix for DPDK runtime directory') +parser.add_argument('-i', '--instance', default='0', type=int, + help='Provide file-prefix for DPDK runtime directory') args = parser.parse_args() rd = get_dpdk_runtime_dir(args.file_prefix) -handle_socket(os.path.join(rd, 'dpdk_telemetry.{}'.format(TELEMETRY_VERSION))) +sock_path = os.path.join(rd, 'dpdk_telemetry.{}'.format(TELEMETRY_VERSION)) +if args.instance > 0: + sock_path += ":{}".format(args.instance) +handle_socket(sock_path)