All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Marchand <david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: [PATCH 00/10] eal: rte_tailq api cleanup
Date: Wed,  4 Mar 2015 22:50:00 +0100	[thread overview]
Message-ID: <1425505810-9269-1-git-send-email-david.marchand@6wind.com> (raw)

This is a first cleanup at trying to remove references to other dpdk libraries
from eal.

This cleanup is focused on rte_tailq api which has been marked as "for internal
use" for quite some time now.
Rather than have a static list in eal for all users of rte_tailq, a new register
system is introduced.
This register system uses constructors which have no access to dpdk shared
memory, so a two step registration is done: first step inserts the requested
tailq in a local list ("local" in multi process context), then in second step,
eal init allocates/looks up for a real tailq from shared memory for all elements
of this local list.

I have tried to think of different cases (libraries loaded before/after eal
init...). The unit tests have been updated accordingly.


-- 
David Marchand

David Marchand (10):
  eal: remove yet another remaining reference to pm
  pci: use lookup tailq api
  tailq: remove unneeded inclusion of rte_tailq.h
  tailq: use a single cast macro
  tailq: get rid of broken "reserve" api
  tailq: remove unused RTE_EAL_TAILQ_* macros
  tailq: introduce dynamic register system
  tailq: move to dynamic tailq
  tailq: remove static slots
  eal: no need for E_RTE_NO_TAILQ anymore

 app/test-pipeline/config.c                         |    1 -
 app/test-pipeline/init.c                           |    1 -
 app/test-pipeline/main.c                           |    1 -
 app/test-pipeline/runtime.c                        |    1 -
 app/test-pmd/cmdline.c                             |    1 -
 app/test-pmd/config.c                              |    1 -
 app/test-pmd/csumonly.c                            |    1 -
 app/test-pmd/flowgen.c                             |    1 -
 app/test-pmd/ieee1588fwd.c                         |    1 -
 app/test-pmd/iofwd.c                               |    1 -
 app/test-pmd/macfwd-retry.c                        |    1 -
 app/test-pmd/macfwd.c                              |    1 -
 app/test-pmd/macswap.c                             |    1 -
 app/test-pmd/parameters.c                          |    1 -
 app/test-pmd/rxonly.c                              |    1 -
 app/test-pmd/testpmd.c                             |    1 -
 app/test-pmd/txonly.c                              |    1 -
 app/test/commands.c                                |    1 -
 app/test/test.c                                    |    1 -
 app/test/test_atomic.c                             |    1 -
 app/test/test_errno.c                              |    2 +-
 app/test/test_func_reentrancy.c                    |    1 -
 app/test/test_hash.c                               |    1 -
 app/test/test_hash_perf.c                          |    1 -
 app/test/test_logs.c                               |    1 -
 app/test/test_malloc.c                             |    1 -
 app/test/test_mbuf.c                               |    1 -
 app/test/test_mempool.c                            |    1 -
 app/test/test_mempool_perf.c                       |    1 -
 app/test/test_memzone.c                            |    1 -
 app/test/test_mp_secondary.c                       |    1 -
 app/test/test_per_lcore.c                          |    1 -
 app/test/test_ring.c                               |    1 -
 app/test/test_rwlock.c                             |    1 -
 app/test/test_spinlock.c                           |    1 -
 app/test/test_tailq.c                              |  125 ++++++++--------
 app/test/test_timer.c                              |    1 -
 examples/bond/main.c                               |    1 -
 examples/cmdline/main.c                            |    1 -
 examples/dpdk_qat/crypto.c                         |    1 -
 examples/dpdk_qat/main.c                           |    1 -
 examples/exception_path/main.c                     |    1 -
 examples/helloworld/main.c                         |    1 -
 examples/ip_fragmentation/main.c                   |    1 -
 examples/ip_pipeline/config.c                      |    1 -
 examples/ip_pipeline/init.c                        |    1 -
 examples/ip_pipeline/main.c                        |    1 -
 examples/ip_reassembly/main.c                      |    1 -
 examples/ipv4_multicast/main.c                     |    1 -
 examples/kni/main.c                                |    1 -
 examples/l2fwd-ivshmem/guest/guest.c               |    1 -
 examples/l2fwd-jobstats/main.c                     |    1 -
 examples/l2fwd/main.c                              |    1 -
 examples/l3fwd-acl/main.c                          |    1 -
 examples/l3fwd-power/main.c                        |    1 -
 examples/l3fwd-vf/main.c                           |    1 -
 examples/l3fwd/main.c                              |    1 -
 examples/link_status_interrupt/main.c              |    1 -
 examples/load_balancer/config.c                    |    1 -
 examples/load_balancer/init.c                      |    1 -
 examples/load_balancer/main.c                      |    1 -
 examples/load_balancer/runtime.c                   |    1 -
 .../client_server_mp/mp_client/client.c            |    1 -
 .../client_server_mp/mp_server/init.c              |    1 -
 .../client_server_mp/mp_server/main.c              |    1 -
 examples/multi_process/l2fwd_fork/flib.c           |    1 -
 examples/multi_process/l2fwd_fork/main.c           |    1 -
 examples/multi_process/simple_mp/main.c            |    1 -
 examples/multi_process/simple_mp/mp_commands.c     |    1 -
 examples/multi_process/symmetric_mp/main.c         |    1 -
 examples/timer/main.c                              |    1 -
 examples/vhost_xen/xen_vhost.h                     |    1 -
 examples/vhost_xen/xenstore_parse.c                |    1 -
 examples/vmdq/main.c                               |    1 -
 examples/vmdq_dcb/main.c                           |    1 -
 lib/librte_acl/rte_acl.c                           |   33 ++---
 lib/librte_acl/rte_acl.h                           |    1 -
 lib/librte_acl/rte_acl_osdep.h                     |    1 -
 lib/librte_distributor/rte_distributor.c           |   17 ++-
 lib/librte_eal/bsdapp/eal/eal.c                    |    1 -
 lib/librte_eal/bsdapp/eal/eal_pci.c                |    8 +-
 lib/librte_eal/bsdapp/eal/eal_thread.c             |    1 -
 lib/librte_eal/bsdapp/eal/eal_timer.c              |    1 -
 lib/librte_eal/bsdapp/eal/rte_eal_version.map      |    4 +-
 lib/librte_eal/common/Makefile                     |    2 +-
 lib/librte_eal/common/eal_common_errno.c           |    2 -
 lib/librte_eal/common/eal_common_launch.c          |    1 -
 lib/librte_eal/common/eal_common_log.c             |    1 -
 lib/librte_eal/common/eal_common_memory.c          |    1 -
 lib/librte_eal/common/eal_common_memzone.c         |    1 -
 lib/librte_eal/common/eal_common_pci.c             |    1 -
 lib/librte_eal/common/eal_common_tailqs.c          |  152 +++++++++++++-------
 lib/librte_eal/common/include/rte_eal.h            |   58 --------
 lib/librte_eal/common/include/rte_eal_memconfig.h  |    9 --
 lib/librte_eal/common/include/rte_errno.h          |    1 -
 lib/librte_eal/common/include/rte_tailq.h          |  133 ++++++-----------
 lib/librte_eal/common/include/rte_tailq_elem.h     |   92 ------------
 lib/librte_eal/linuxapp/eal/eal.c                  |    1 -
 lib/librte_eal/linuxapp/eal/eal_alarm.c            |    1 -
 lib/librte_eal/linuxapp/eal/eal_hugepage_info.c    |    1 -
 lib/librte_eal/linuxapp/eal/eal_interrupts.c       |    1 -
 lib/librte_eal/linuxapp/eal/eal_ivshmem.c          |    5 +-
 lib/librte_eal/linuxapp/eal/eal_log.c              |    1 -
 lib/librte_eal/linuxapp/eal/eal_memory.c           |    1 -
 lib/librte_eal/linuxapp/eal/eal_pci.c              |    9 +-
 lib/librte_eal/linuxapp/eal/eal_pci_uio.c          |    1 -
 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c         |    1 -
 lib/librte_eal/linuxapp/eal/eal_pci_vfio_mp_sync.c |    1 -
 lib/librte_eal/linuxapp/eal/eal_thread.c           |    1 -
 lib/librte_eal/linuxapp/eal/eal_timer.c            |    1 -
 lib/librte_eal/linuxapp/eal/eal_xen_memory.c       |    1 -
 lib/librte_eal/linuxapp/eal/rte_eal_version.map    |    4 +-
 lib/librte_ether/rte_ethdev.c                      |    1 -
 lib/librte_hash/rte_fbk_hash.c                     |   33 ++---
 lib/librte_hash/rte_fbk_hash.h                     |    1 -
 lib/librte_hash/rte_hash.c                         |   28 ++--
 lib/librte_hash/rte_hash.h                         |    1 -
 lib/librte_ip_frag/rte_ipv4_reassembly.c           |    1 -
 lib/librte_lpm/rte_lpm.c                           |   35 ++---
 lib/librte_lpm/rte_lpm.h                           |    1 -
 lib/librte_lpm/rte_lpm6.c                          |   27 ++--
 lib/librte_lpm/rte_lpm6.h                          |    1 -
 lib/librte_malloc/malloc_elem.c                    |    1 -
 lib/librte_malloc/malloc_heap.c                    |    1 -
 lib/librte_malloc/rte_malloc.c                     |    1 -
 lib/librte_mbuf/rte_mbuf.c                         |    1 -
 lib/librte_mempool/rte_dom0_mempool.c              |    1 -
 lib/librte_mempool/rte_mempool.c                   |   37 ++---
 lib/librte_mempool/rte_mempool.h                   |    3 -
 lib/librte_pmd_e1000/em_ethdev.c                   |    1 -
 lib/librte_pmd_e1000/em_rxtx.c                     |    1 -
 lib/librte_pmd_e1000/igb_ethdev.c                  |    1 -
 lib/librte_pmd_e1000/igb_rxtx.c                    |    1 -
 lib/librte_pmd_i40e/i40e_ethdev_vf.c               |    1 -
 lib/librte_pmd_ixgbe/ixgbe_ethdev.c                |    1 -
 lib/librte_pmd_ixgbe/ixgbe_rxtx.c                  |    1 -
 lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c            |    1 -
 lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c              |    1 -
 lib/librte_reorder/rte_reorder.c                   |   27 ++--
 lib/librte_reorder/rte_reorder.h                   |    1 -
 lib/librte_ring/rte_ring.c                         |   28 ++--
 lib/librte_ring/rte_ring.h                         |    3 +-
 lib/librte_timer/rte_timer.c                       |    2 +-
 143 files changed, 310 insertions(+), 685 deletions(-)
 delete mode 100644 lib/librte_eal/common/include/rte_tailq_elem.h

-- 
1.7.10.4

             reply	other threads:[~2015-03-04 21:50 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-04 21:50 David Marchand [this message]
     [not found] ` <1425505810-9269-1-git-send-email-david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2015-03-04 21:50   ` [PATCH 01/10] eal: remove yet another remaining reference to pm David Marchand
2015-03-04 21:50   ` [PATCH 02/10] pci: use lookup tailq api David Marchand
2015-03-04 21:50   ` [PATCH 03/10] tailq: remove unneeded inclusion of rte_tailq.h David Marchand
2015-03-04 21:50   ` [PATCH 04/10] tailq: use a single cast macro David Marchand
2015-03-04 21:50   ` [PATCH 05/10] tailq: get rid of broken "reserve" api David Marchand
2015-03-04 21:50   ` [PATCH 06/10] tailq: remove unused RTE_EAL_TAILQ_* macros David Marchand
2015-03-04 21:50   ` [PATCH 07/10] tailq: introduce dynamic register system David Marchand
2015-03-04 21:50   ` [PATCH 08/10] tailq: move to dynamic tailq David Marchand
2015-03-04 21:50   ` [PATCH 09/10] tailq: remove static slots David Marchand
2015-03-04 21:50   ` [PATCH 10/10] eal: no need for E_RTE_NO_TAILQ anymore David Marchand
2015-03-04 22:55   ` [PATCH 00/10] eal: rte_tailq api cleanup Thomas Monjalon
2015-03-06  0:26   ` Neil Horman
     [not found]     ` <20150306002636.GA6785-0o1r3XBGOEbbgkc5XkKeNuvMHUBZFtU3YPYVAmT7z5s@public.gmane.org>
2015-03-10 11:20       ` Thomas Monjalon
2015-03-11  7:44         ` Tetsuya Mukawa
     [not found]           ` <54FFF261.9030407-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-03-11  8:47             ` David Marchand
     [not found]               ` <CALwxeUsVUXU2MW1_DvvQzZ_4H9MSJxUWAq50u_vSRBci5O4sjQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-11 17:28                 ` David Marchand
     [not found]                   ` <CALwxeUu+vJCuuPxMDQuCk6KWQhBA8bemLNbVuOT1BY5KL_Z+9A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-11 20:24                     ` Mcnamara, John
     [not found]                       ` <B27915DBBA3421428155699D51E4CFE2ECD890-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-03-11 21:29                         ` David Marchand
     [not found]                           ` <CALwxeUuDQqLwqFH-4Y9W0fZPxY1_39kgwmxtnn9yxL7AnNfCzg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-11 22:25                             ` Mcnamara, John
     [not found]                               ` <B27915DBBA3421428155699D51E4CFE2ECD92D-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-03-12  2:05                                 ` Tetsuya Mukawa
     [not found]                                   ` <5500F46F.8020107-AlSX/UN32fvPDbFq/vQRIQ@public.gmane.org>
2015-03-12  2:12                                     ` Tetsuya Mukawa
2015-03-12  5:44                                     ` David Marchand
     [not found]                                       ` <CALwxeUsoD3HZ2g4DfWD6A+ccVbpLEcvNaa7w8EewUmK=VDuxHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-03-12  8:38                                         ` Liu, Yong

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=1425505810-9269-1-git-send-email-david.marchand@6wind.com \
    --to=david.marchand-pdr9zngts4eavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.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.