From: Olivier MATZ <olivier.matz@6wind.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>, dev@dpdk.org
Subject: Re: [PATCH 01/11] avp: implement dynamic logging
Date: Fri, 22 Dec 2017 14:45:41 +0100 [thread overview]
Message-ID: <20171222134540.d2bhumpw63apdvkd@platinum> (raw)
In-Reply-To: <b8f7c945-5290-35f1-7006-b16072182552@intel.com>
On Thu, Dec 21, 2017 at 10:02:14AM -0800, Ferruh Yigit wrote:
> On 12/20/2017 10:58 AM, Stephen Hemminger wrote:
> >> [1] something like:
> >> #define INIT_LOG_VAR_NAME(pmd, type) logtype_ ## pmd ## _ ## type
> >> #define INIT_LOG_FUNC_NAME(pmd, type) log_ ## pmd ## _ ## type
> >>
> >> #define PMD_INIT_LOG(pmd, type, level) \
> >> int INIT_LOG_VAR_NAME(pmd, type); \
> >> RTE_INIT(INIT_LOG_FUNC_NAME(pmd, type)); \
> >> static void INIT_LOG_FUNC_NAME(pmd, type)(void) \
> >> { \
> >> INIT_LOG_VAR_NAME(pmd, type) = rte_log_register("pmd."
> >> RTE_STR(pmd) "." RTE_STR(type)); \
> >> if (INIT_LOG_VAR_NAME(pmd, type) > 0) \
> >> rte_log_set_level(INIT_LOG_VAR_NAME(pmd, type),
> >> RTE_LOG_##level); \
> >> }
> >
> > That macro is a little complex. Also, for better or worse, the current
> > logging is done on a per driver basis. If we want to do something fancier
> > it should be in common EAL core.
>
> Of course, my intention was putting it into rte_log.h so updates in each driver
> will be minimal. But this can be done better to cover library updates as well.
It's a good idea.
Below is another proposition (untested) that panics if
rte_log_register() fails, and that defines a static variable with a
predefined name.
#define RTE_LOG_TYPE_REGISTER(name, level) \
static int name##_log_type; \
__attribute__((constructor, used)) \
static void rte_log_register_##name(void) \
{ \
name##_log_type = rte_log_register(#name); \
RTE_VERIFY(name##_log_type >= 0); \
rte_log_set_level(name##_log_type, level); \
}
next prev parent reply other threads:[~2017-12-22 13:45 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-19 6:38 [PATCH 00/11] Dynamic logging (just do it) Stephen Hemminger
2017-12-19 6:38 ` [PATCH 01/11] avp: implement dynamic logging Stephen Hemminger
2017-12-20 1:53 ` Ferruh Yigit
2017-12-20 18:58 ` Stephen Hemminger
2017-12-21 18:02 ` Ferruh Yigit
2017-12-22 13:45 ` Olivier MATZ [this message]
2017-12-19 6:38 ` [PATCH 02/11] bnx2x: " Stephen Hemminger
2017-12-20 1:51 ` Ferruh Yigit
2017-12-20 18:58 ` Stephen Hemminger
2017-12-19 6:38 ` [PATCH 03/11] vmxnet3: " Stephen Hemminger
2017-12-19 6:38 ` [PATCH 04/11] ixgbe: " Stephen Hemminger
2017-12-19 6:38 ` [PATCH 05/11] e1000: " Stephen Hemminger
2017-12-19 6:38 ` [PATCH 06/11] virtio: " Stephen Hemminger
2018-01-09 9:18 ` Maxime Coquelin
2017-12-19 6:38 ` [PATCH 07/11] nfp: " Stephen Hemminger
2017-12-20 1:52 ` Ferruh Yigit
2017-12-19 6:38 ` [PATCH 08/11] fm10k: " Stephen Hemminger
2017-12-19 6:38 ` [PATCH 09/11] ena: " Stephen Hemminger
2017-12-19 6:38 ` [PATCH 10/11] qede: " Stephen Hemminger
2017-12-19 6:38 ` [PATCH 11/11] lio: " Stephen Hemminger
2017-12-20 1:51 ` [PATCH 00/11] Dynamic logging (just do it) Ferruh Yigit
2017-12-20 18:59 ` Stephen Hemminger
2018-01-09 12:10 ` [PATCH v2 01/12] net/avp: implement dynamic logging Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 02/12] net/bnx2x: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 03/12] net/vmxnet3: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 04/12] net/ixgbe: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 05/12] net/e1000: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 06/12] net/virtio: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 07/12] net/nfp: fix build when debug enabled Ferruh Yigit
2018-01-10 12:09 ` Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 08/12] net/nfp: implement dynamic logging Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 09/12] net/fm10k: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 10/12] net/ena: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 11/12] net/qede: " Ferruh Yigit
2018-01-09 12:10 ` [PATCH v2 12/12] net/liquidio: " Ferruh Yigit
2018-01-09 12:23 ` [PATCH v2 01/12] net/avp: " Ferruh Yigit
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=20171222134540.d2bhumpw63apdvkd@platinum \
--to=olivier.matz@6wind.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=stephen@networkplumber.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.