* [PATCH] eventdev: fix symbol export for port maintenance @ 2023-10-10 14:00 David Marchand 2023-10-11 6:46 ` Mattias Rönnblom 2023-10-11 6:51 ` Jerin Jacob 0 siblings, 2 replies; 8+ messages in thread From: David Marchand @ 2023-10-10 14:00 UTC (permalink / raw) To: dev; +Cc: stable, Jerin Jacob, Mattias Rönnblom Trying to call rte_event_maintain out of the eventdev library triggers a link failure, as the tracepoint symbol associated to this inline helper was not exported. Fixes: 54f17843a887 ("eventdev: add port maintenance API") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> --- Caught by the CI when testing the dispatcher library. See for example: https://github.com/ovsrobot/dpdk/actions/runs/6460514355/job/17538348529#step:19:5506 --- lib/eventdev/version.map | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map index b03c10d99f..249eb115b1 100644 --- a/lib/eventdev/version.map +++ b/lib/eventdev/version.map @@ -5,6 +5,7 @@ DPDK_24 { __rte_eventdev_trace_deq_burst; __rte_eventdev_trace_enq_burst; __rte_eventdev_trace_eth_tx_adapter_enqueue; + __rte_eventdev_trace_maintain; __rte_eventdev_trace_timer_arm_burst; __rte_eventdev_trace_timer_arm_tmo_tick_burst; __rte_eventdev_trace_timer_cancel_burst; -- 2.41.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-10 14:00 [PATCH] eventdev: fix symbol export for port maintenance David Marchand @ 2023-10-11 6:46 ` Mattias Rönnblom 2023-10-11 7:03 ` David Marchand 2023-10-11 6:51 ` Jerin Jacob 1 sibling, 1 reply; 8+ messages in thread From: Mattias Rönnblom @ 2023-10-11 6:46 UTC (permalink / raw) To: David Marchand, dev; +Cc: stable, Jerin Jacob, Mattias Rönnblom On 2023-10-10 16:00, David Marchand wrote: > Trying to call rte_event_maintain out of the eventdev library triggers > a link failure, as the tracepoint symbol associated to this inline > helper was not exported. > > Fixes: 54f17843a887 ("eventdev: add port maintenance API") > Cc: stable@dpdk.org > > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > Caught by the CI when testing the dispatcher library. > See for example: > https://github.com/ovsrobot/dpdk/actions/runs/6460514355/job/17538348529#step:19:5506 > > --- > lib/eventdev/version.map | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map > index b03c10d99f..249eb115b1 100644 > --- a/lib/eventdev/version.map > +++ b/lib/eventdev/version.map > @@ -5,6 +5,7 @@ DPDK_24 { > __rte_eventdev_trace_deq_burst; > __rte_eventdev_trace_enq_burst; > __rte_eventdev_trace_eth_tx_adapter_enqueue; > + __rte_eventdev_trace_maintain; > __rte_eventdev_trace_timer_arm_burst; > __rte_eventdev_trace_timer_arm_tmo_tick_burst; > __rte_eventdev_trace_timer_cancel_burst; I can't say I know why it's needed, but the change seems consistent with other Eventdev trace points. Maybe Jerin can comment on this? If not, I can dig into the details. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-11 6:46 ` Mattias Rönnblom @ 2023-10-11 7:03 ` David Marchand 2023-10-11 7:21 ` David Marchand 0 siblings, 1 reply; 8+ messages in thread From: David Marchand @ 2023-10-11 7:03 UTC (permalink / raw) To: Mattias Rönnblom; +Cc: dev, stable, Jerin Jacob, Mattias Rönnblom On Wed, Oct 11, 2023 at 8:47 AM Mattias Rönnblom <hofors@lysator.liu.se> wrote: > > On 2023-10-10 16:00, David Marchand wrote: > > Trying to call rte_event_maintain out of the eventdev library triggers > > a link failure, as the tracepoint symbol associated to this inline > > helper was not exported. > > > > Fixes: 54f17843a887 ("eventdev: add port maintenance API") > > Cc: stable@dpdk.org > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > --- > > Caught by the CI when testing the dispatcher library. > > See for example: > > https://github.com/ovsrobot/dpdk/actions/runs/6460514355/job/17538348529#step:19:5506 > > > > --- > > lib/eventdev/version.map | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map > > index b03c10d99f..249eb115b1 100644 > > --- a/lib/eventdev/version.map > > +++ b/lib/eventdev/version.map > > @@ -5,6 +5,7 @@ DPDK_24 { > > __rte_eventdev_trace_deq_burst; > > __rte_eventdev_trace_enq_burst; > > __rte_eventdev_trace_eth_tx_adapter_enqueue; > > + __rte_eventdev_trace_maintain; > > __rte_eventdev_trace_timer_arm_burst; > > __rte_eventdev_trace_timer_arm_tmo_tick_burst; > > __rte_eventdev_trace_timer_cancel_burst; > > I can't say I know why it's needed, but the change seems consistent with > other Eventdev trace points. The trace point framework in DPDK relies on a per trace point global variable (whose name is __<trace point name>): #define __RTE_TRACE_POINT(_mode, _tp, _args, ...) \ extern rte_trace_point_t __##_tp; \ static __rte_always_inline void \ _tp _args \ { \ __rte_trace_point_emit_header_##_mode(&__##_tp); \ __VA_ARGS__ \ } When tracepoints are called from within a shared library code, and because all symbols of a group of objects are visible, the tracepoint symbols are resolved by the linker. But when this tracepoint is called via an inline helper from some code out of the shared library, this symbol must be exported in the shared library map or it won't be visible to "external" users. -- David Marchand ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-11 7:03 ` David Marchand @ 2023-10-11 7:21 ` David Marchand 2023-10-12 12:32 ` Jerin Jacob 0 siblings, 1 reply; 8+ messages in thread From: David Marchand @ 2023-10-11 7:21 UTC (permalink / raw) To: Mattias Rönnblom, Jerin Jacob; +Cc: dev, stable, Mattias Rönnblom Jerin, On Wed, Oct 11, 2023 at 9:03 AM David Marchand <david.marchand@redhat.com> wrote: > > On Wed, Oct 11, 2023 at 8:47 AM Mattias Rönnblom <hofors@lysator.liu.se> wrote: > > > > On 2023-10-10 16:00, David Marchand wrote: > > > Trying to call rte_event_maintain out of the eventdev library triggers > > > a link failure, as the tracepoint symbol associated to this inline > > > helper was not exported. > > > > > > Fixes: 54f17843a887 ("eventdev: add port maintenance API") > > > Cc: stable@dpdk.org > > > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > > --- > > > Caught by the CI when testing the dispatcher library. > > > See for example: > > > https://github.com/ovsrobot/dpdk/actions/runs/6460514355/job/17538348529#step:19:5506 > > > > > > --- > > > lib/eventdev/version.map | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map > > > index b03c10d99f..249eb115b1 100644 > > > --- a/lib/eventdev/version.map > > > +++ b/lib/eventdev/version.map > > > @@ -5,6 +5,7 @@ DPDK_24 { > > > __rte_eventdev_trace_deq_burst; > > > __rte_eventdev_trace_enq_burst; > > > __rte_eventdev_trace_eth_tx_adapter_enqueue; > > > + __rte_eventdev_trace_maintain; > > > __rte_eventdev_trace_timer_arm_burst; > > > __rte_eventdev_trace_timer_arm_tmo_tick_burst; > > > __rte_eventdev_trace_timer_cancel_burst; > > > > I can't say I know why it's needed, but the change seems consistent with > > other Eventdev trace points. > > The trace point framework in DPDK relies on a per trace point global > variable (whose name is __<trace point name>): > > #define __RTE_TRACE_POINT(_mode, _tp, _args, ...) \ > extern rte_trace_point_t __##_tp; \ > static __rte_always_inline void \ > _tp _args \ > { \ > __rte_trace_point_emit_header_##_mode(&__##_tp); \ > __VA_ARGS__ \ > } > > When tracepoints are called from within a shared library code, and > because all symbols of a group of objects are visible, the tracepoint > symbols are resolved by the linker. > But when this tracepoint is called via an inline helper from some code > out of the shared library, this symbol must be exported in the shared > library map or it won't be visible to "external" users. Could we describe / mention this in the trace point library doc? Or maybe I read too quickly and there is already something but it was not obvious to me. -- David Marchand ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-11 7:21 ` David Marchand @ 2023-10-12 12:32 ` Jerin Jacob 0 siblings, 0 replies; 8+ messages in thread From: Jerin Jacob @ 2023-10-12 12:32 UTC (permalink / raw) To: David Marchand Cc: Mattias Rönnblom, Jerin Jacob, dev, stable, Mattias Rönnblom > > > > > > I can't say I know why it's needed, but the change seems consistent with > > > other Eventdev trace points. > > > > The trace point framework in DPDK relies on a per trace point global > > variable (whose name is __<trace point name>): > > > > #define __RTE_TRACE_POINT(_mode, _tp, _args, ...) \ > > extern rte_trace_point_t __##_tp; \ > > static __rte_always_inline void \ > > _tp _args \ > > { \ > > __rte_trace_point_emit_header_##_mode(&__##_tp); \ > > __VA_ARGS__ \ > > } > > > > When tracepoints are called from within a shared library code, and > > because all symbols of a group of objects are visible, the tracepoint > > symbols are resolved by the linker. > > But when this tracepoint is called via an inline helper from some code > > out of the shared library, this symbol must be exported in the shared > > library map or it won't be visible to "external" users. > > Could we describe / mention this in the trace point library doc? > Or maybe I read too quickly and there is already something but it was > not obvious to me. Following text is available in https://doc.dpdk.org/guides/prog_guide/trace_lib.html as NOTE. We may need to update to very specific on FP trace points. The RTE_TRACE_POINT_REGISTER defines the placeholder for the rte_trace_point_t tracepoint object. For generic tracepoint or for tracepoint used in public header files, the user must export a __<trace_function_name> symbol in the library .map file for this tracepoint to be used out of the library, in shared builds. For example, __app_trace_string will be the exported symbol in the above example. > > > -- > David Marchand > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-10 14:00 [PATCH] eventdev: fix symbol export for port maintenance David Marchand 2023-10-11 6:46 ` Mattias Rönnblom @ 2023-10-11 6:51 ` Jerin Jacob 2023-10-11 7:03 ` David Marchand 2023-10-11 12:11 ` David Marchand 1 sibling, 2 replies; 8+ messages in thread From: Jerin Jacob @ 2023-10-11 6:51 UTC (permalink / raw) To: David Marchand; +Cc: dev, stable, Jerin Jacob, Mattias Rönnblom On Tue, Oct 10, 2023 at 7:30 PM David Marchand <david.marchand@redhat.com> wrote: > > Trying to call rte_event_maintain out of the eventdev library triggers > a link failure, as the tracepoint symbol associated to this inline > helper was not exported. > > Fixes: 54f17843a887 ("eventdev: add port maintenance API") > Cc: stable@dpdk.org > > Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Jerin Jacob <jerinj@marvell.com> David, If it is stopping dispatcher library integration, please take this patch through main tree, if not, I will add through event tree for rc2. > --- > Caught by the CI when testing the dispatcher library. > See for example: > https://github.com/ovsrobot/dpdk/actions/runs/6460514355/job/17538348529#step:19:5506 > > --- > lib/eventdev/version.map | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map > index b03c10d99f..249eb115b1 100644 > --- a/lib/eventdev/version.map > +++ b/lib/eventdev/version.map > @@ -5,6 +5,7 @@ DPDK_24 { > __rte_eventdev_trace_deq_burst; > __rte_eventdev_trace_enq_burst; > __rte_eventdev_trace_eth_tx_adapter_enqueue; > + __rte_eventdev_trace_maintain; > __rte_eventdev_trace_timer_arm_burst; > __rte_eventdev_trace_timer_arm_tmo_tick_burst; > __rte_eventdev_trace_timer_cancel_burst; > -- > 2.41.0 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-11 6:51 ` Jerin Jacob @ 2023-10-11 7:03 ` David Marchand 2023-10-11 12:11 ` David Marchand 1 sibling, 0 replies; 8+ messages in thread From: David Marchand @ 2023-10-11 7:03 UTC (permalink / raw) To: Jerin Jacob; +Cc: dev, stable, Jerin Jacob, Mattias Rönnblom Hello Jerin, On Wed, Oct 11, 2023 at 8:51 AM Jerin Jacob <jerinjacobk@gmail.com> wrote: > > On Tue, Oct 10, 2023 at 7:30 PM David Marchand > <david.marchand@redhat.com> wrote: > > > > Trying to call rte_event_maintain out of the eventdev library triggers > > a link failure, as the tracepoint symbol associated to this inline > > helper was not exported. > > > > Fixes: 54f17843a887 ("eventdev: add port maintenance API") > > Cc: stable@dpdk.org > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > Acked-by: Jerin Jacob <jerinj@marvell.com> > > David, If it is stopping dispatcher library integration, please take > this patch through main tree, if not, I will add through event tree > for rc2. I was going to suggest merging directly in main :-). I will delegate it to me in patchwork. Thanks. -- David Marchand ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] eventdev: fix symbol export for port maintenance 2023-10-11 6:51 ` Jerin Jacob 2023-10-11 7:03 ` David Marchand @ 2023-10-11 12:11 ` David Marchand 1 sibling, 0 replies; 8+ messages in thread From: David Marchand @ 2023-10-11 12:11 UTC (permalink / raw) To: Jerin Jacob; +Cc: dev, stable, Jerin Jacob, Mattias Rönnblom On Wed, Oct 11, 2023 at 8:51 AM Jerin Jacob <jerinjacobk@gmail.com> wrote: > On Tue, Oct 10, 2023 at 7:30 PM David Marchand > <david.marchand@redhat.com> wrote: > > > > Trying to call rte_event_maintain out of the eventdev library triggers > > a link failure, as the tracepoint symbol associated to this inline > > helper was not exported. > > > > Fixes: 54f17843a887 ("eventdev: add port maintenance API") > > Cc: stable@dpdk.org > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > Acked-by: Jerin Jacob <jerinj@marvell.com> Applied thanks. -- David Marchand ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-10-12 12:32 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-10-10 14:00 [PATCH] eventdev: fix symbol export for port maintenance David Marchand 2023-10-11 6:46 ` Mattias Rönnblom 2023-10-11 7:03 ` David Marchand 2023-10-11 7:21 ` David Marchand 2023-10-12 12:32 ` Jerin Jacob 2023-10-11 6:51 ` Jerin Jacob 2023-10-11 7:03 ` David Marchand 2023-10-11 12:11 ` David Marchand
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).