Show a cover letter.

GET /api/covers/58/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 58,
    "url": "http://patchwork.dpdk.org/api/covers/58/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/ci/cover/20230815131320.375088-1-bruce.richardson@intel.com/",
    "project": {
        "id": 5,
        "url": "http://patchwork.dpdk.org/api/projects/5/?format=api",
        "name": "CI",
        "link_name": "ci",
        "list_id": "ci.dpdk.org",
        "list_email": "ci@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dpdk-ci",
        "webscm_url": "https://git.dpdk.org/tools/dpdk-ci/",
        "list_archive_url": "https://inbox.dpdk.org/ci",
        "list_archive_url_format": "https://inbox.dpdk.org/ci/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230815131320.375088-1-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/ci/20230815131320.375088-1-bruce.richardson@intel.com",
    "date": "2023-08-15T13:13:12",
    "name": "[v4,0/8] expand list of optional libraries",
    "submitter": {
        "id": 20,
        "url": "http://patchwork.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/ci/cover/20230815131320.375088-1-bruce.richardson@intel.com/mbox/",
    "series": [
        {
            "id": 29231,
            "url": "http://patchwork.dpdk.org/api/series/29231/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/ci/list/?series=29231",
            "date": "2023-08-15T13:13:12",
            "name": "expand list of optional libraries",
            "version": 4,
            "mbox": "http://patchwork.dpdk.org/series/29231/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/58/comments/",
    "headers": {
        "Return-Path": "<ci-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 3638C43070;\n\tTue, 15 Aug 2023 15:13:33 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0839C42B71;\n\tTue, 15 Aug 2023 15:13:33 +0200 (CEST)",
            "from mgamail.intel.com (mgamail.intel.com [192.55.52.43])\n by mails.dpdk.org (Postfix) with ESMTP id 668B440F17;\n Tue, 15 Aug 2023 15:13:30 +0200 (CEST)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Aug 2023 06:13:29 -0700",
            "from silpixa00401385.ir.intel.com ([10.237.214.14])\n by fmsmga008.fm.intel.com with ESMTP; 15 Aug 2023 06:13:27 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1692105211; x=1723641211;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=xmBNqs1rJwQ79ONJl0dhHtPrilVFlXchIrhe2ob4v2s=;\n b=LYEY7SY5Uf/P16BjBayu2Q9ngmFI2tknvnLWZeCuAi2dA3L8bkSjv7K8\n dSc2kprLnMvIQ/xhneeQs0dKxnd1EvgmKnhEv6gD7vutnuYZDE9hw/Mpr\n yxqTu1igp0cQv+pSy8z3TWf2bMOX57XFcQXEqvINOEYvcCLoircuYuuBO\n QUffAS2SniQWCI4VKf3tPgLvUDPuuDO76n8jwUZEVU8x4aieY62Njx/ik\n t4D3hjVXYHAOdzsnagsKLBTbKV3S0MEAkPmdpHRrlc+zh8jUevio4sejI\n Viy3KNb1d1yjPpn0N11hocFbzjHMkItE2661CgKe9MgPCxV1aZSokONqH A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10803\"; a=\"458623155\"",
            "E=Sophos;i=\"6.01,174,1684825200\"; d=\"scan'208\";a=\"458623155\"",
            "E=McAfee;i=\"6600,9927,10803\"; a=\"799189795\"",
            "E=Sophos;i=\"6.01,174,1684825200\"; d=\"scan'208\";a=\"799189795\""
        ],
        "X-ExtLoop1": "1",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "ci@dpdk.org,\n\tBruce Richardson <bruce.richardson@intel.com>",
        "Subject": "[PATCH v4 0/8] expand list of optional libraries",
        "Date": "Tue, 15 Aug 2023 14:13:12 +0100",
        "Message-Id": "<20230815131320.375088-1-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 2.39.2",
        "In-Reply-To": "<20230721115125.55137-1-bruce.richardson@intel.com>",
        "References": "<20230721115125.55137-1-bruce.richardson@intel.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "ci@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK CI discussions <ci.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/ci>,\n <mailto:ci-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/ci/>",
        "List-Post": "<mailto:ci@dpdk.org>",
        "List-Help": "<mailto:ci-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/ci>,\n <mailto:ci-request@dpdk.org?subject=subscribe>",
        "Errors-To": "ci-bounces@dpdk.org"
    },
    "content": "This patchset contains changes to DPDK to make the build more configurable\noverall. The changes can be grouped into two areas:\n\n* Firstly, there are changes to make the build of the unit tests more\n  flexible and maintainable. These 5 patches switch the unit tests from\n  having separate hard-coded lists of files and tests, with lots of\n  conditional logic to add/remove items from the list, to instead being\n  a single list of files and dependencies per-file. The actual lists of\n  test-suites are built up dynamically from the list of files whose\n  dependencies are met and therefore will be part of the build.\n  This rework enables...\n* The second set of patches which expands the list of libraries which\n  can be disabled at build-time, while still giving a successful build\n  of DPDK. Overall, after this set is applied, the list of optional\n  libraries in DPDK is approx doubled in size. [15 additions giving\n  31 optional libs]\n\nNOTES:\n* as stated in the RFC, the test binary moves in the build as a result\n  of this set - from app/test/dpdk-test to app/dpdk-test.\n* running the suites of tests no longer works after patch 4 until patch\n  5 is applied. If this is an issue, the two patches can be merged on\n  apply. However, the individual tests are still runnable through the\n  test binary - it's only through \"meson test\" that there are issues, so\n  I'm keeping the patches separate since each is relatively complex in its\n  own right.\n* A number of files in the test directory were not being built, and seem\n  to have never been built with meson. This requires separate work, outside\n  the scope of the patchset to fix.\n* Similarly, some unit tests were never added to test suites. These can\n  now be found by using grep to find the old REGISTER_TEST_COMMAND macro.\n  Again, adding orphan tests to suites is outside the scope of this set.\n\nV4:\n- improve test suite definition, hopefully improving test pass rate:\n  - drop unnecessary file-prefix for fast tests, since tests are not parallel\n  - always pass driver path flag in \"meson test\" for shared builds.\n\nV3:\n- Create symlink to old path to test binary, to ensure all automated CI,\n  and any other use of the test binary still works.\n\nV2:\n- Changes since RFC:\n   -  merged two previous sets - reworking test build, and disabling\n      libs - into one, since they depend on each other\n   -  Reworked the list of dependencies for each file in the tests,\n      so that files that depend on other files have those deps called\n      out.\n   -  Added list of external dependencies to the test builds\n   -  For disabling libs, merged patches disabling individual libs\n      together into one patch, since all unit test build changes were\n      unnecessary. This made each patch a single-line addition to\n      the optional list in lib/meson.build.\n\nBruce Richardson (8):\n  app/test: add new macros for various test types\n  app/test: tag tests with the test type\n  app/test: make telemetry data test buildable on windows\n  app/test: build using per-file dependency matrix\n  app/test: define unit tests suites based on test macros\n  examples/l3fwd: make eventdev an optional dependency\n  build: make most device classes optional\n  build: expand list of optional libraries\n\n app/meson.build                               |  15 +-\n app/test/meson.build                          | 823 +++++-------------\n app/test/suites/meson.build                   |  72 ++\n app/test/test.h                               |   9 +-\n app/test/test_acl.c                           |   2 +-\n app/test/test_atomic.c                        |   2 +-\n app/test/test_barrier.c                       |   2 +-\n app/test/test_bitmap.c                        |   2 +-\n app/test/test_bitops.c                        |   2 +-\n app/test/test_bpf.c                           |   4 +-\n app/test/test_byteorder.c                     |   2 +-\n app/test/test_cksum.c                         |   2 +-\n app/test/test_cmdline.c                       |   2 +-\n app/test/test_common.c                        |   2 +-\n app/test/test_cpuflags.c                      |   2 +-\n app/test/test_crc.c                           |   2 +-\n app/test/test_cryptodev.c                     |  38 +-\n app/test/test_cryptodev_asym.c                |   2 +-\n app/test/test_cycles.c                        |   2 +-\n app/test/test_debug.c                         |   2 +-\n app/test/test_devargs.c                       |   2 +-\n app/test/test_distributor.c                   |   2 +-\n app/test/test_distributor_perf.c              |   2 +-\n app/test/test_dmadev.c                        |   2 +-\n app/test/test_eal_flags.c                     |  24 +-\n app/test/test_eal_fs.c                        |   2 +-\n app/test/test_efd.c                           |   2 +-\n app/test/test_efd_perf.c                      |   2 +-\n app/test/test_errno.c                         |   2 +-\n app/test/test_ethdev_link.c                   |   2 +-\n app/test/test_event_ring.c                    |   2 +-\n app/test/test_eventdev.c                      |   2 +-\n app/test/test_fbarray.c                       |   2 +-\n app/test/test_fib.c                           |   4 +-\n app/test/test_fib6.c                          |   4 +-\n app/test/test_fib6_perf.c                     |   2 +-\n app/test/test_fib_perf.c                      |   2 +-\n app/test/test_func_reentrancy.c               |   2 +-\n app/test/test_hash.c                          |   2 +-\n app/test/test_hash_functions.c                |   2 +-\n app/test/test_hash_multiwriter.c              |   2 +-\n app/test/test_hash_perf.c                     |   2 +-\n app/test/test_hash_readwrite.c                |   4 +-\n app/test/test_hash_readwrite_lf_perf.c        |   2 +-\n app/test/test_interrupts.c                    |   2 +-\n app/test/test_ipfrag.c                        |   2 +-\n app/test/test_ipsec.c                         |   2 +-\n app/test/test_ipsec_perf.c                    |   2 +-\n app/test/test_kvargs.c                        |   2 +-\n app/test/test_lcores.c                        |   2 +-\n app/test/test_logs.c                          |   2 +-\n app/test/test_lpm.c                           |   2 +-\n app/test/test_lpm6.c                          |   2 +-\n app/test/test_lpm6_perf.c                     |   2 +-\n app/test/test_lpm_perf.c                      |   2 +-\n app/test/test_malloc.c                        |   2 +-\n app/test/test_malloc_perf.c                   |   2 +-\n app/test/test_mbuf.c                          |   2 +-\n app/test/test_mcslock.c                       |   2 +-\n app/test/test_member.c                        |   2 +-\n app/test/test_member_perf.c                   |   2 +-\n app/test/test_memcpy.c                        |   2 +-\n app/test/test_memcpy_perf.c                   |   2 +-\n app/test/test_memory.c                        |   2 +-\n app/test/test_mempool.c                       |   2 +-\n app/test/test_mempool_perf.c                  |   2 +-\n app/test/test_memzone.c                       |   2 +-\n app/test/test_meter.c                         |   2 +-\n app/test/test_mp_secondary.c                  |   2 +-\n app/test/test_per_lcore.c                     |   2 +-\n app/test/test_pflock.c                        |   2 +-\n app/test/test_pie.c                           |   6 +-\n app/test/test_pmd_perf.c                      |   2 +-\n app/test/test_power.c                         |   2 +-\n app/test/test_power_cpufreq.c                 |   2 +-\n app/test/test_power_intel_uncore.c            |   2 +-\n app/test/test_power_kvm_vm.c                  |   2 +-\n app/test/test_prefetch.c                      |   2 +-\n app/test/test_rand_perf.c                     |   2 +-\n app/test/test_rcu_qsbr.c                      |   2 +-\n app/test/test_rcu_qsbr_perf.c                 |   2 +-\n app/test/test_reassembly_perf.c               |   2 +-\n app/test/test_reciprocal_division.c           |   2 +-\n app/test/test_reciprocal_division_perf.c      |   2 +-\n app/test/test_red.c                           |   4 +-\n app/test/test_reorder.c                       |   2 +-\n app/test/test_rib.c                           |   4 +-\n app/test/test_rib6.c                          |   4 +-\n app/test/test_ring.c                          |   2 +-\n app/test/test_ring_perf.c                     |   2 +-\n app/test/test_rwlock.c                        |   8 +-\n app/test/test_sched.c                         |   2 +-\n app/test/test_security.c                      |   2 +-\n app/test/test_seqlock.c                       |   2 +-\n app/test/test_service_cores.c                 |   4 +-\n app/test/test_spinlock.c                      |   2 +-\n app/test/test_stack.c                         |   4 +-\n app/test/test_stack_perf.c                    |   4 +-\n app/test/test_string_fns.c                    |   2 +-\n app/test/test_tailq.c                         |   2 +-\n app/test/test_telemetry_data.c                |  14 +-\n app/test/test_thash.c                         |   2 +-\n app/test/test_thash_perf.c                    |   2 +-\n app/test/test_threads.c                       |   2 +-\n app/test/test_ticketlock.c                    |   2 +-\n app/test/test_timer.c                         |   2 +-\n app/test/test_timer_perf.c                    |   2 +-\n app/test/test_timer_racecond.c                |   2 +-\n app/test/test_trace.c                         |   2 +-\n app/test/test_trace_perf.c                    |   2 +-\n app/test/test_version.c                       |   2 +-\n buildtools/get-test-suites.py                 |  33 +\n .../has-hugepages.py                          |   0\n buildtools/meson.build                        |   2 +\n examples/l3fwd/l3fwd_em.c                     |   2 +\n examples/l3fwd/l3fwd_em_hlm.h                 |   2 +\n examples/l3fwd/l3fwd_event.c                  |   2 +\n examples/l3fwd/l3fwd_event.h                  |   7 +-\n examples/l3fwd/l3fwd_event_generic.c          |   2 +\n examples/l3fwd/l3fwd_event_internal_port.c    |   2 +\n examples/l3fwd/l3fwd_fib.c                    |   2 +\n examples/l3fwd/l3fwd_lpm.c                    |   2 +\n examples/l3fwd/main.c                         |  65 +-\n examples/l3fwd/meson.build                    |   5 +-\n lib/meson.build                               |  15 +\n 125 files changed, 610 insertions(+), 764 deletions(-)\n create mode 100644 app/test/suites/meson.build\n create mode 100644 buildtools/get-test-suites.py\n rename app/test/has_hugepage.py => buildtools/has-hugepages.py (100%)\n\n--\n2.39.2"
}