DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH v5 00/10] support reinit flow
@ 2023-08-17  4:28 okaya
  2023-08-17  4:28 ` [PATCH v5 01/10] eal: cleanup plugins data okaya
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: okaya @ 2023-08-17  4:28 UTC (permalink / raw)
  Cc: dev, Sinan Kaya

From: Sinan Kaya <okaya@kernel.org>

We want to be able to call rte_eal_init() and rte_eal_cleanup()
APIs back to back for maintanance reasons.

Here is a summary of the code we have seen so far:

1. some code support getting called multiple times by keeping
a static variable.
2. some code initializes once but never clean up after them and
don't have a cleanup API.
3. some code assumes that they only get called once during the
lifecycle of the process.

Most changes in this patch center around following the #1 design
principle.

Why?

It is not always ideal to reinitialize a DPDK process. Memory needs
to be reinitialized, hugetables need to warm up etc.

Limitations:

This sequence could only be done by main lcore, and never ever in a signal handler.
Do not try and trap signals like abort, bus error, illegal instruction and try to
use this for recovery. It is a recipe for failure.


Changed from

v1:
Fix checkpatch warnings

v2:
rebase to most recent DPDK.

v3:
pick up Stephen's "eal: cleanup plugins data" as a pre-requisite
patch.

v4:
fix windows build
rename variables to run_once where possible
move run_once inside the functions where possible

Graham Whyte (1):
  eal: fixes for re-initialization issues

Sinan Kaya (8):
  tailq: skip init if already initialized
  eal_memzone: bail out on initialized
  memseg: init once
  eal_memory: skip initialization
  eal_interrupts: don't reinitialize threads
  eal: initialize worker threads once
  eal: declare the reinit via cleanup/init feature unsupported
  test: remove double registration check

Stephen Hemminger (1):
  eal: cleanup plugins data

 app/test/test_tailq.c               |  5 ---
 lib/eal/common/eal_common_memory.c  |  6 +++
 lib/eal/common/eal_common_memzone.c |  6 +++
 lib/eal/common/eal_common_options.c | 21 +++++++++
 lib/eal/common/eal_common_tailqs.c  | 20 ++++++---
 lib/eal/common/eal_options.h        |  1 +
 lib/eal/common/malloc_heap.c        |  7 +++
 lib/eal/include/rte_eal.h           |  5 +++
 lib/eal/linux/eal.c                 | 66 ++++++++++++++++-------------
 lib/eal/linux/eal_interrupts.c      |  6 +++
 lib/eal/linux/eal_memory.c          | 12 +++++-
 11 files changed, 113 insertions(+), 42 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-09-25 21:08 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-17  4:28 [PATCH v5 00/10] support reinit flow okaya
2023-08-17  4:28 ` [PATCH v5 01/10] eal: cleanup plugins data okaya
2023-08-17  4:28 ` [PATCH v5 02/10] eal: fixes for re-initialization issues okaya
2023-08-17  4:28 ` [PATCH v5 03/10] tailq: skip init if already initialized okaya
2023-08-17  4:28 ` [PATCH v5 04/10] eal_memzone: bail out on initialized okaya
2023-08-17  4:28 ` [PATCH v5 05/10] memseg: init once okaya
2023-08-17  4:28 ` [PATCH v5 06/10] eal_memory: skip initialization okaya
2023-08-17  4:28 ` [PATCH v5 07/10] eal_interrupts: don't reinitialize threads okaya
2023-08-17  4:28 ` [PATCH v5 08/10] eal: initialize worker threads once okaya
2023-08-17  4:28 ` [PATCH v5 09/10] eal: declare the reinit via cleanup/init feature unsupported okaya
2023-08-17 13:59   ` Stephen Hemminger
2024-09-25 21:08 ` [PATCH v5 00/10] support reinit flow Stephen Hemminger

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).