DPDK patches and discussions
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org, Ciara Power <ciara.power@intel.com>,
	David Marchand <david.marchand@redhat.com>,
	Anatoly Burakov <anatoly.burakov@intel.com>
Subject: Re: [dpdk-dev] [PATCH v6 3/5] telemetry: use unique socket paths for in-memory mode
Date: Tue, 5 Oct 2021 16:14:45 +0100	[thread overview]
Message-ID: <03495416-205a-f181-adf2-52e9455e0b73@redhat.com> (raw)
In-Reply-To: <YVxmuYBv6P0hOMaG@bricha3-MOBL.ger.corp.intel.com>

On 05/10/2021 15:52, Bruce Richardson wrote:
> On Tue, Oct 05, 2021 at 03:41:17PM +0100, Kevin Traynor wrote:
>> Hi Bruce, I started reviewing v5 before v6 was pushed, so these are just
>> comments from v5,
>>
> 
> No problem. Changes V6-v5 are fairly small anyway. Thanks for the review.
> 
>> On 05/10/2021 14:59, Bruce Richardson wrote:
>>> When DPDK is run using "in-memory" flag, multiple processes can be run
>>> using the same file-prefix and hence the same runtime directory. To
>>> avoid problems with conflicting telemetry unix socket paths, we can
>>> put the pid of the process into the socket name. As with the existing
>>> telemetry socket files, these sockets are removed on normal program
>>> exit.
>>>
>>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
>>> ---
>>>    doc/guides/howto/telemetry.rst     | 17 ++++++++++++++++-
>>>    lib/eal/freebsd/eal.c              |  1 +
>>>    lib/eal/linux/eal.c                |  1 +
>>>    lib/telemetry/telemetry.c          | 15 ++++++++++++---
>>>    lib/telemetry/telemetry_internal.h |  3 ++-
>>>    5 files changed, 32 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/doc/guides/howto/telemetry.rst b/doc/guides/howto/telemetry.rst
>>> index 8f4fa1a510..8a61302459 100644
>>> --- a/doc/guides/howto/telemetry.rst
>>> +++ b/doc/guides/howto/telemetry.rst
>>> @@ -13,12 +13,27 @@ ethdev port list, and eal parameters.
>>>    Telemetry Interface
>>>    -------------------
>>> -The :doc:`../prog_guide/telemetry_lib` opens a socket with path
>>> +For applications run normally, i.e. without the `--in-memory` EAL flag,
>>> +the :doc:`../prog_guide/telemetry_lib` opens a socket with path
>>>    *<runtime_directory>/dpdk_telemetry.<version>*. The version represents the
>>>    telemetry version, the latest is v2. For example, a client would connect to a
>>>    socket with path  */var/run/dpdk/\*/dpdk_telemetry.v2* (when the primary process
>>>    is run by a root user).
>>> +For applications run with the `--in-memory` EAL flag,
>>> +the socket file is created with an additional suffix of the process PID.
>>> +This is because multiple independent DPDK processes can be run simultaneously
>>> +using the same runtime directory when *in-memory* mode is used.
>>> +For example, when a user with UID 1000 runs processes with in-memory mode,
>>> +we would find sockets available such as::
>>> +
>>> +  /run/user/1000/dpdk/rte/dpdk_telemetry.v2.1982
>>> +  /run/user/1000/dpdk/rte/dpdk_telemetry.v2.1935
>>> +
>>
>> It seems an unnecessary step unless there is multiple process. As a
>> suggestion, how about "simplifying" by always adding a check for an active
>> socket with the default name. If it is not found, create it with the default
>> (pre patches) name. If it is found and active, create a new one with process
>> id appended. e.g.
>>
>> First:
>> /run/user/1000/dpdk/rte/dpdk_telemetry.v2
>>
>> Next:
>> /run/user/1000/dpdk/rte/dpdk_telemetry.v2.1982
>> /run/user/1000/dpdk/rte/dpdk_telemetry.v2.1935
>>
>> It means that existing socket can still be used by anything using telemetry.
>> I think it is a nice default to keep as it doesn't require any changes for
>> anything that will connect (e.g. collectd?)
>>
>> The downside is that one will have a different name but it seems an
>> acceptable trade-off to keep compatibility for single process case.
>>
>> WDYT?
>>
> 
> Yes, that is an interesting idea, and probably not a bad one.
> 
> Taking things further, I wonder if using the pid is the best choice for a
> suffix for the non-single-process case. If we used .1, .2 etc. it would
> make things more predictable, perhaps easing integration for other tools.
> Each process starting up would use the lowest free suffix, and any
> external monitoring tools could just be set up to monitor the
> first/second/third instance, with reproducable names across process
> restarts.
> 

ok, cool - that sounds better again. Probably you can post and see if 
anyone else finds a hole in it or has a better idea for the next few days.

>>> +Where `/run/user/<uid>` is the runtime directory for the user given by the
>>> +`$XDG_RUNTIME_DIR` environment variable,
>>> +and `rte` is the default DPDK file prefix used for a runtime directory.
>>> +
>>>    Telemetry Initialization
>>>    ------------------------
>>> diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
>>> index b06a2c1662..ed39d10b4e 100644
>>> --- a/lib/eal/freebsd/eal.c
>>> +++ b/lib/eal/freebsd/eal.c
>>> @@ -952,6 +952,7 @@ rte_eal_init(int argc, char **argv)
>>>    		if (tlog < 0)
>>>    			tlog = RTE_LOGTYPE_EAL;
>>>    		if (rte_telemetry_init(rte_eal_get_runtime_dir(),
>>> +				internal_conf->in_memory | internal_conf->no_shconf,
>>>    				rte_version(),
>>>    				&internal_conf->ctrl_cpuset, rte_log, tlog) != 0)
>>>    			return -1;
>>> diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
>>> index 0d0fc66668..9db4eb7913 100644
>>> --- a/lib/eal/linux/eal.c
>>> +++ b/lib/eal/linux/eal.c
>>> @@ -1326,6 +1326,7 @@ rte_eal_init(int argc, char **argv)
>>>    		if (tlog < 0)
>>>    			tlog = RTE_LOGTYPE_EAL;
>>>    		if (rte_telemetry_init(rte_eal_get_runtime_dir(),
>>> +				internal_conf->in_memory | internal_conf->no_shconf,
>>
>> should be logical OR
>>
> 
> I don't think it actually matters since any non-zero value will come
> through as "true". However, will change it in v7.
> 

It was just a nit-pick, I admit it :-)

> /Bruce
> 


  reply	other threads:[~2021-10-05 15:14 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-15 14:10 [dpdk-dev] [PATCH] telemetry: fix "in-memory" process socket conflicts Bruce Richardson
2021-09-22  8:43 ` Power, Ciara
2021-09-24 16:18 ` [dpdk-dev] [PATCH v2] " Bruce Richardson
2021-09-29  8:50   ` Power, Ciara
2021-09-29 12:28   ` Kevin Traynor
2021-09-29 13:32     ` Bruce Richardson
2021-09-29 13:51       ` Bruce Richardson
2021-09-29 14:54       ` Kevin Traynor
2021-09-29 15:24         ` Bruce Richardson
2021-09-29 15:31           ` Bruce Richardson
2021-09-29 16:01             ` Kevin Traynor
2021-09-29 13:54 ` [dpdk-dev] [PATCH v3] " Bruce Richardson
2021-10-05 11:47   ` Ferruh Yigit
2021-10-01 11:15 ` [dpdk-dev] [PATCH v4 0/5] improve telemetry support with in-memory mode Bruce Richardson
2021-10-01 11:15   ` [dpdk-dev] [PATCH v4 1/5] eal: limit telemetry to primary processes Bruce Richardson
2021-10-01 11:15   ` [dpdk-dev] [PATCH v4 2/5] telemetry: fix deletion of active sockets Bruce Richardson
2021-10-01 11:15   ` [dpdk-dev] [PATCH v4 3/5] telemetry: use unique socket paths for in-memory mode Bruce Richardson
2021-10-01 11:15   ` [dpdk-dev] [PATCH v4 4/5] usertools/dpdk-telemetry: connect to in-memory processes Bruce Richardson
2021-10-01 11:15   ` [dpdk-dev] [PATCH v4 5/5] usertools/dpdk-telemetry: provide info on available sockets Bruce Richardson
2021-10-01 16:22 ` [dpdk-dev] [PATCH v5 0/5] improve telemetry support with in-memory mode Bruce Richardson
2021-10-01 16:22   ` [dpdk-dev] [PATCH v5 1/5] eal: limit telemetry to primary processes Bruce Richardson
2021-10-01 16:22   ` [dpdk-dev] [PATCH v5 2/5] telemetry: fix deletion of active sockets Bruce Richardson
2021-10-01 16:22   ` [dpdk-dev] [PATCH v5 3/5] telemetry: use unique socket paths for in-memory mode Bruce Richardson
2021-10-01 16:22   ` [dpdk-dev] [PATCH v5 4/5] usertools/dpdk-telemetry: connect to in-memory processes Bruce Richardson
2021-10-01 16:22   ` [dpdk-dev] [PATCH v5 5/5] usertools/dpdk-telemetry: provide info on available sockets Bruce Richardson
2021-10-05 13:59 ` [dpdk-dev] [PATCH v6 0/5] improve telemetry support with in-memory mode Bruce Richardson
2021-10-05 13:59   ` [dpdk-dev] [PATCH v6 1/5] eal: limit telemetry to primary processes Bruce Richardson
2021-10-07 13:11     ` Power, Ciara
2021-10-05 13:59   ` [dpdk-dev] [PATCH v6 2/5] telemetry: fix deletion of active sockets Bruce Richardson
2021-10-05 15:18     ` Conor Walsh
2021-10-05 13:59   ` [dpdk-dev] [PATCH v6 3/5] telemetry: use unique socket paths for in-memory mode Bruce Richardson
2021-10-05 14:41     ` Kevin Traynor
2021-10-05 14:52       ` Bruce Richardson
2021-10-05 15:14         ` Kevin Traynor [this message]
2021-10-07 13:39           ` Power, Ciara
2021-10-05 15:19         ` Conor Walsh
2021-10-05 13:59   ` [dpdk-dev] [PATCH v6 4/5] usertools/dpdk-telemetry: connect to in-memory processes Bruce Richardson
2021-10-05 15:19     ` Conor Walsh
2021-10-05 13:59   ` [dpdk-dev] [PATCH v6 5/5] usertools/dpdk-telemetry: provide info on available sockets Bruce Richardson
2021-10-05 15:19     ` Conor Walsh
2021-10-08 17:18 ` [dpdk-dev] [PATCH v7 0/5] improve telemetry support with in-memory mode Bruce Richardson
2021-10-08 17:18   ` [dpdk-dev] [PATCH v7 1/5] eal: limit telemetry to primary processes Bruce Richardson
2021-10-08 17:18   ` [dpdk-dev] [PATCH v7 2/5] telemetry: fix deletion of active sockets Bruce Richardson
2021-10-08 17:18   ` [dpdk-dev] [PATCH v7 3/5] telemetry: use unique socket paths for in-memory mode Bruce Richardson
2021-10-12 15:37     ` Power, Ciara
2021-10-12 15:40       ` Bruce Richardson
2021-10-12 15:47         ` Power, Ciara
2021-10-08 17:18   ` [dpdk-dev] [PATCH v7 4/5] usertools/dpdk-telemetry: connect to separate instances Bruce Richardson
2021-10-12 15:37     ` Power, Ciara
2021-10-08 17:18   ` [dpdk-dev] [PATCH v7 5/5] usertools/dpdk-telemetry: provide info on available sockets Bruce Richardson
2021-10-12 15:37     ` Power, Ciara
2021-10-12 16:39 ` [dpdk-dev] [PATCH v8 0/4] improve telemetry support with in-memory mode Bruce Richardson
2021-10-12 16:39   ` [dpdk-dev] [PATCH v8 1/4] eal: limit telemetry to primary processes Bruce Richardson
2021-10-13 13:15     ` Walsh, Conor
2021-10-12 16:39   ` [dpdk-dev] [PATCH v8 2/4] telemetry: fix socket path conflicts for in-memory mode Bruce Richardson
2021-10-13 13:15     ` Walsh, Conor
2021-10-14  9:40     ` Kevin Traynor
2021-10-12 16:39   ` [dpdk-dev] [PATCH v8 3/4] usertools/dpdk-telemetry: connect to separate instances Bruce Richardson
2021-10-13 13:15     ` Walsh, Conor
2021-10-12 16:39   ` [dpdk-dev] [PATCH v8 4/4] usertools/dpdk-telemetry: provide info on available sockets Bruce Richardson
2021-10-13 13:15     ` Walsh, Conor
2021-10-14 10:49 ` [dpdk-dev] [PATCH v9 0/4] improve telemetry support with in-memory mode Bruce Richardson
2021-10-14 10:49   ` [dpdk-dev] [PATCH v9 1/4] eal: limit telemetry to primary processes Bruce Richardson
2021-10-14 10:49   ` [dpdk-dev] [PATCH v9 2/4] telemetry: fix socket path conflicts for in-memory mode Bruce Richardson
2021-10-14 10:49   ` [dpdk-dev] [PATCH v9 3/4] usertools/dpdk-telemetry: connect to separate instances Bruce Richardson
2021-10-14 10:49   ` [dpdk-dev] [PATCH v9 4/4] usertools/dpdk-telemetry: provide info on available sockets Bruce Richardson
2021-10-14 19:00   ` [dpdk-dev] [PATCH v9 0/4] improve telemetry support with in-memory mode David Marchand
2021-10-15  8:18     ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=03495416-205a-f181-adf2-52e9455e0b73@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=ciara.power@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).