Hi Alexander, Thanks for submitting this patch. Few comments below.
On Wed, Oct 27, 2021 at 07:11:18AM -0400, Alexander Bechikov wrote: > mbuf: Improved error message. Added check if shared memory already allocated I suggest another title: mbuf: fix dump of dynamic fields and flags Indeed, it appears that the dump is currently broken. We can see it in the unit tests: RTE>>mbuf_autotest ... MBUF: Failed to get mbuf dyn shared memory As the function returns void, we failure is not detected by the test. Can you add a small commit log? I suppose this issue is introduced by d4902ed31c63 ("mbuf: check shared memory before dumping dynamic space"). Do you confirm? Can you please also add: Cc: sta...@dpdk.org Fixes: d4902ed31c63 ("mbuf: check shared memory before dumping dynamic space") > Signed-off-by: Alexander Bechikov <asb.t...@gmail.com> > --- > lib/mbuf/rte_mbuf_dyn.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/lib/mbuf/rte_mbuf_dyn.c b/lib/mbuf/rte_mbuf_dyn.c > index db8e020665..a3bc9b66d2 100644 > --- a/lib/mbuf/rte_mbuf_dyn.c > +++ b/lib/mbuf/rte_mbuf_dyn.c > @@ -116,7 +116,8 @@ init_shared_mem(void) > mz = rte_memzone_lookup(RTE_MBUF_DYN_MZNAME); > } > if (mz == NULL) { > - RTE_LOG(ERR, MBUF, "Failed to get mbuf dyn shared memory\n"); > + RTE_LOG(ERR, MBUF, "Failed to get mbuf dyn shared memory: %s > (%d)\n", > + rte_strerror(rte_errno), rte_errno); > return -1; > } > I think rte_errno is not set when rte_memzone_lookup() returns NULL (this happens when init_shared_mem() is called from a secondary process). You can set it in this function to ENOENT, or just drop this change. > @@ -531,7 +532,7 @@ void rte_mbuf_dyn_dump(FILE *out) > size_t i; > > rte_mcfg_tailq_write_lock(); > - if (init_shared_mem() < 0) { > + if (shm == NULL && init_shared_mem() < 0) { > rte_mcfg_tailq_write_unlock(); > return; > } > -- > 2.30.2 > Thanks, Olivier