DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Subject: [dpdk-dev] [RFC] Include what you use
Date: Wed, 6 Sep 2017 09:58:14 -0700	[thread overview]
Message-ID: <20170906095814.7fc16530@xeon-e3> (raw)

I tried running iwyu on DPDK source and discovered lots of extra includes (not surprising).
 https://github.com/include-what-you-use/include-what-you-use/blob/master/README.md

Some example output:

/home/shemminger/dpdk/base/lib/librte_eal/linuxapp/eal/eal.c should remove these lines:
- #include <getopt.h>  // lines 43-43
- #include <malloc_heap.h>  // lines 79-79
- #include <rte_cpuflags.h>  // lines 71-71
- #include <rte_dev.h>  // lines 75-75
- #include <rte_devargs.h>  // lines 76-76
- #include <rte_interrupts.h>  // lines 72-72
- #include <rte_memzone.h>  // lines 59-59
- #include <rte_pci.h>  // lines 74-74
- #include <rte_per_lcore.h>  // lines 64-64
- #include <rte_version.h>  // lines 77-77
- #include <sys/queue.h>  // lines 50-50
- #include <syslog.h>  // lines 42-42

The full include-list for /home/shemminger/dpdk/base/lib/librte_eal/linuxapp/eal/eal.c:
#include <ctype.h>                     // for ::_ISdigit, ::_ISprint, isdigit
#include <errno.h>                     // for __errno_location, errno, ENOTSUP
#include <fcntl.h>                     // for open, fcntl, O_RDWR, F_SETLK
#include <limits.h>                    // for PATH_MAX
#include <pthread.h>                   // for pthread_create, pthread_self
#include <rte_atomic.h>                // for rte_atomic32_test_and_set
#include <rte_bus.h>                   // for rte_bus_probe, rte_bus_scan
#include <rte_common.h>                // for rte_exit, RTE_ALIGN_FLOOR, RTE...
#include <rte_cycles.h>                // for rte_rdtsc
#include <rte_debug.h>                 // for rte_panic
#include <rte_eal.h>                   // for rte_config, rte_proc_type_t::R...
#include <rte_eal_memconfig.h>         // for rte_mem_config, rte_eal_mcfg_w...
#include <rte_errno.h>                 // for per_lcore__rte_errno, rte_errno
#include <rte_launch.h>                // for rte_eal_mp_remote_launch, rte_...
#include <rte_lcore.h>                 // for lcore_config, rte_lcore_to_soc...
#include <rte_log.h>                   // for RTE_LOG, RTE_LOGTYPE_EAL, RTE_...
#include <rte_memory.h>                // for rte_eal_get_physmem_layout
#include <rte_random.h>                // for rte_srand
#include <rte_service_component.h>     // for rte_service_init, rte_service_...
#include <rte_string_fns.h>            // for rte_strsplit
#include <stdint.h>                    // for uint64_t, uintptr_t
#include <stdio.h>                     // for NULL, fclose, printf, snprintf
#include <stdlib.h>                    // for strtoull, exit, strtoul, EXIT_...
#include <string.h>                    // for strerror, memcpy, strrchr, strcmp
#include <sys/file.h>                  // for flock, LOCK_UN
#include <sys/io.h>                    // for iopl
#include <sys/mman.h>                  // for MAP_FAILED, MAP_SHARED, PROT_READ
#include <sys/stat.h>                  // for stat
#include <unistd.h>                    // for optarg, optind, close, getopt_...
#include "eal_filesystem.h"            // for eal_runtime_config_path
#include "eal_hugepages.h"             // for eal_hugepage_info_init
#include "eal_internal_cfg.h"          // for internal_config, hugepage_info
#include "eal_options.h"               // for eal_parse_common_option, OPT_S...
#include "eal_private.h"               // for rte_eal_alarm_init, rte_eal_cp...
#include "eal_thread.h"                // for RTE_CPU_AFFINITY_STR_LEN, eal_...
#include "eal_vfio.h"                  // for VFIO_PRESENT, pci_vfio_enable
#include "generic/rte_atomic.h"        // for rte_atomic32_clear, RTE_ATOMIC...
#include "generic/rte_cpuflags.h"      // for rte_cpu_is_supported
#include "rte_config.h"                // for RTE_MAX_NUMA_NODES, RTE_ARCH_X86
#include "rte_pci_dev_feature_defs.h"  // for rte_intr_mode::RTE_INTR_MODE_L...

It would good someone did a full scan and send patches to do the cleanup.

P.S: I am okay with C++ style comments on the includes.
PPS: But prefer order of standard includes, sys/ rte_... then local include files

                 reply	other threads:[~2017-09-06 16:58 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20170906095814.7fc16530@xeon-e3 \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.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 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).