From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 095E0A0C47; Tue, 12 Oct 2021 18:39:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 20A3F4115B; Tue, 12 Oct 2021 18:39:25 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id F369B41135 for ; Tue, 12 Oct 2021 18:39:22 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10135"; a="208005962" X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="208005962" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2021 09:39:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,368,1624345200"; d="scan'208";a="659173725" Received: from silpixa00399126.ir.intel.com ([10.237.223.151]) by orsmga005.jf.intel.com with ESMTP; 12 Oct 2021 09:39:21 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Ciara Power , David Marchand , Anatoly Burakov , Kevin Traynor , Bruce Richardson Date: Tue, 12 Oct 2021 17:39:07 +0100 Message-Id: <20211012163908.758767-4-bruce.richardson@intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211012163908.758767-1-bruce.richardson@intel.com> References: <20210915141030.23514-1-bruce.richardson@intel.com> <20211012163908.758767-1-bruce.richardson@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v8 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 --- 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) -- 2.30.2