usertools/telemetry: connect to separate instances
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 <bruce.richardson@intel.com> Acked-by: Ciara Power <ciara.power@intel.com> Tested-by: Conor Walsh <conor.walsh@intel.com>
This commit is contained in:
parent
85e21b77d8
commit
11435aae20
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user