From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH] eal: simplify RTE_PMD_DEBUG_TRACE Date: Fri, 21 Dec 2018 16:17:59 +0000 Message-ID: <48fc67a6-a1ca-47a4-3838-92e6b112044e@intel.com> References: <20181214163827.9403-1-jeffrey.b.shaw@intel.com> <20181214190713.GB9964@ae13-28.jf.intel.com> <3a573b56-6ea0-812c-4641-830fbd3c59cc@ericsson.com> <20181214125055.1153c38c@xeon-e3> <20181214212007.GA6612@ae13-28.jf.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: =?UTF-8?Q?Mattias_R=c3=b6nnblom?= , dev@dpdk.org To: Jeff Shaw , Stephen Hemminger Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 5F0255F1F for ; Fri, 21 Dec 2018 17:18:03 +0100 (CET) In-Reply-To: <20181214212007.GA6612@ae13-28.jf.intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/14/2018 9:20 PM, Jeff Shaw wrote: > On Fri, Dec 14, 2018 at 12:50:55PM -0800, Stephen Hemminger wrote: >> Use rte_log directly, eliminating no longer used rte_pmd_dev_trace >> function. This removes variable length array which is problem on >> Windows and other compilers not doing C99. >> >> Also, drop unused RTE_PROC_PRIMARY macros. >> >> Reported-by: Jeff Shaw >> Signed-off-by: Stephen Hemminger >> --- >> lib/librte_eal/common/include/rte_dev.h | 43 ++----------------------- >> 1 file changed, 3 insertions(+), 40 deletions(-) >> >> diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h >> index a9724dc9181c..e496da440028 100644 >> --- a/lib/librte_eal/common/include/rte_dev.h >> +++ b/lib/librte_eal/common/include/rte_dev.h >> @@ -43,54 +43,17 @@ typedef void (*rte_dev_event_cb_fn)(const char *device_name, >> enum rte_dev_event_type event, >> void *cb_arg); >> >> -__attribute__((format(printf, 2, 0))) >> -static inline void >> -rte_pmd_debug_trace(const char *func_name, const char *fmt, ...) >> -{ >> - va_list ap; >> - >> - va_start(ap, fmt); >> - >> - { >> - char buffer[vsnprintf(NULL, 0, fmt, ap) + 1]; >> - >> - va_end(ap); >> - >> - va_start(ap, fmt); >> - vsnprintf(buffer, sizeof(buffer), fmt, ap); >> - va_end(ap); >> - >> - rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s: %s", >> - func_name, buffer); >> - } >> -} >> - > > Will this break applications that try to use this function? Because it is not > a documented function, is there no guarantee it will be present? > >> /* >> * Enable RTE_PMD_DEBUG_TRACE() when at least one component relying on the >> * RTE_*_RET() macros defined below is compiled in debug mode. >> */ >> #if defined(RTE_LIBRTE_EVENTDEV_DEBUG) >> -#define RTE_PMD_DEBUG_TRACE(...) \ >> - rte_pmd_debug_trace(__func__, __VA_ARGS__) >> +#define RTE_PMD_DEBUG_TRACE(fmt, args...) \ >> + rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s():" fmt, __func__, ## args) > > Actually, MSVC does not support named variable arguments either. I think this > will work instead: > > #define RTE_PMD_DEBUG_TRACE(fmt, ...) \ > rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s():" fmt, __func__, __VA_ARGS__) > > The previous behavior was "%s: ..." not "%s():". I'm not sure if you meant to > change how the messages are displayed. I don't care either way, but maybe > users of the function would prefer the same format. > +1 to remove "rte_pmd_debug_trace()" option, but I guess a new version is required, to switch to '__VA_ARGS__' and perhaps to keep the format same, %s vs %s(). Who can send a new version? Jeff?