From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 1BE371B555 for ; Thu, 4 Oct 2018 17:53:57 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 7615221FDA; Thu, 4 Oct 2018 11:53:56 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Thu, 04 Oct 2018 11:53:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=mesmtp; bh=kbQjpcGlQuZ+j3mLZoplrlbX0iw82i/pX6Nz24ksuOM=; b=bg25STJ07zma V59lg2U468UKAhdAkkhUeO0heq3QlHgH9aHcJvuDuCR9rVutObCLzfKP/+9UQD9H WFBFS4sWyCd8GJi9GQkwcXUr/TRluD7SDuHS6+VMTh1OKgFeGWHagGP4GgVQe9RX +2mnzosQ27ZebyH0VrHAPMyUM00uCY0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=kbQjpcGlQuZ+j3mLZoplrlbX0iw82i/pX6Nz24ksu OM=; b=wMypDTK4nJcNH1+FZeh1JeM67SA4cKc6z8+Pj5IA3jC+7Slv46wfL2qlz nJBJS60BLOu9B+go/pf6mrCViLZxwElGvQQH8PCfzN/RWSI1w52Q7Od5d5j26Kif 91QcjHKlAXz67mO2i+gvTGDNT4DGKZiGc8RJEQQhNbX+8srXjyGSRk55RkuKg6mJ OG7q08hV5s2mFtlgDwvv8MLuq/9BiYVqmdIE7UOdKrhIjlg7tFWJVH1EZNYd8Z9Z 1PnI/I8RD9X1emOhrXMK/Fi+YombjFCqlVqysoiz5SX9XmTgOjrCpZuptgrwPYGO Ccj0BfdRBP6GvOXP7IK3bWiwaAAIw== X-ME-Sender: X-ME-Proxy: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 98492E49E9; Thu, 4 Oct 2018 11:53:54 -0400 (EDT) From: Thomas Monjalon To: "Van Haaren, Harry" Cc: "Laatz, Kevin" , "dev@dpdk.org" , "stephen@networkplumber.org" , "gaetan.rivet@6wind.com" , "shreyansh.jain@nxp.com" , "Richardson, Bruce" Date: Thu, 04 Oct 2018 17:53:53 +0200 Message-ID: <4034734.dNxXkqf0MS@xps> In-Reply-To: References: <1535026093-101872-1-git-send-email-ciara.power@intel.com> <20181003173612.67101-1-kevin.laatz@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v2 00/10] introduce telemetry library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Oct 2018 15:53:57 -0000 04/10/2018 15:25, Van Haaren, Harry: > From: Van Haaren, Harry > > From: Laatz, Kevin > > > > > > This patchset introduces a Telemetry library for DPDK Service Assurance. > > > This library provides an easy way to query DPDK Ethdev metrics. > > > > > > > > > Note: We are aware that the --telemetry flag is not working for meson > > > builds, we are working on it for a future patch. Despite opterr being set > > > to 0, --telemetry said to be 'unrecognized' as a startup print. This is a > > > cosmetic issue and will also be addressed. > > > > > > --- > > > v2: > > > - Reworked telemetry as part of EAL instead of using vdev (Gaetan) > > > - Refactored rte_telemetry_command (Gaetan) > > > - Added MAINTAINERS file entry (Stephen) > > > - Updated docs to reflect vdev to eal rework > > > - Removed collectd patch from patchset (Thomas) > > > - General code clean up from v1 feedback > > > > > > Hi Gaetan, Thomas, Stephen and Shreyansh! > > > > > > goto TL_DR; // if time is short :) > > > > > > In this v2 patchset, we've reworked the Telemetry to no longer use the vdev > > infrastructure, instead having EAL enable it directly. This was requested as > > feedback to the v1 patchset. I'll detail the approach below, and highlight > > some issues we identified while implementing it. > > > > Currently, EAL does not depend on any "DPDK" libraries (ignore kvargs etc > > for a minute). > > Telemetry is a DPDK library, so it depends on EAL. In order to have EAL > > initialize > > Telemetry, it must depend on it - this causes a circular dependency. > > > > This patchset resolves that circular dependency by using a "weak" symbol for > > telemetry init, and then the "strong" version of telemetry init will replace > > it when the library is compiled in. > > Correction: we attempted this approach - but ended up adding a TAILQ of library > initializers functions to EAL, which was then iterated during rte_eal_init(). > This also resolved the circular-dependency, but the same linking issue as > described below still exists. > > So - the same question still stands - what is the best solution for 18.11? > > > > Although this *technically* works, it > > requires > > that applications *LINK* against Telemetry library explicitly - as EAL won't > > pull > > in the Telemetry .so automatically... This means application-level build- > > system > > changes to enable --telemetry on the DPDK EAL command line. > > > > Given the complexity in enabling EAL to handle the Telemetry init() and its > > dependencies, I'd like to ask you folks for input on how to better solve > > this? First, the telemetry feature must be enabled via a public function (API). The application can decide to enable the feature at any time, right? If the application wants to enable the feature at initialization (and considers user input from the command line), then the init function has a dependency on telemetry. Your dependency concern is that the init function (which is high level) is in EAL (which is the lowest layer in DPDK). I think the command line should not be managed directly by EAL. My suggestion in last summit was to move this code in a different library. We should also move the init function(s) to a new high level library. This is my proposal to solve cyclic dependency: move rte_eal_init in a lib which depends on everything. About the linking issue, I don't understand the problem. If you use the DPDK makefiles, rte.app.mk should manage it. If you use the DPDK meson, all libs are linked. If you use your own system, of course you need to add telemetry lib.