get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/68875/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 68875,
    "url": "https://patches.dpdk.org/api/patches/68875/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200419100133.3232316-1-jerinj@marvell.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200419100133.3232316-1-jerinj@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200419100133.3232316-1-jerinj@marvell.com",
    "date": "2020-04-19T10:01:00",
    "name": "[v6,00/33] DPDK Trace support",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1188,
        "url": "https://patches.dpdk.org/api/people/1188/?format=api",
        "name": "Jerin Jacob Kollanukkaran",
        "email": "jerinj@marvell.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200419100133.3232316-1-jerinj@marvell.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/68875/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/68875/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 42D54A0561;\n\tSun, 19 Apr 2020 12:03:54 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5477C1D44F;\n\tSun, 19 Apr 2020 12:02:03 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id EC1131D40D\n for <dev@dpdk.org>; Sun, 19 Apr 2020 12:01:43 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id\n 03JA0tun020047; Sun, 19 Apr 2020 03:01:40 -0700",
            "from sc-exch01.marvell.com ([199.233.58.181])\n by mx0b-0016f401.pphosted.com with ESMTP id 30g12njx70-3\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Sun, 19 Apr 2020 03:01:40 -0700",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH01.marvell.com\n (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Sun, 19 Apr 2020 03:01:38 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.2 via Frontend\n Transport; Sun, 19 Apr 2020 03:01:38 -0700",
            "from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14])\n by maili.marvell.com (Postfix) with ESMTP id 4E69C3F703F;\n Sun, 19 Apr 2020 03:01:36 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-type : content-transfer-encoding; s=pfpt0818;\n bh=3iI/39BDzCkv24GN6dNkkSOzPTC3HLeNSEXrgDRgVZU=;\n b=BVN+8SvZjRxkbX7TbDr/Dc6aUhX1e67nq7wtQ4qFF8JIyWLYxGz/G3PhbCxCDOTNWCty\n q5+gu2s6ON7/B0gmjtJe7OWQbzUaBroIw+2N87mWWL0rMA778SFoY4vbUUbMWJfbHATL\n 12pJmy32PyFmYUc/viL4gKjm0tWJ/byVHrwQgQH7mQHUmxWUUwmbWHpuvilQItwz+lD9\n dH7VzCGEcI/r1ITM0w/gsAhwAcUHBrY5x7RqtAsDWeMC4rQfSyHJk/OPAwd1owL1wQrp\n jbAQcHfgMtrFQ4LDgBua3T2vxZM8phSDr9sE7fJ4f4GvzkRPY6AAkIZ6bxcO8jgUtBHo mg==",
        "From": "<jerinj@marvell.com>",
        "To": "",
        "CC": "<dev@dpdk.org>, <thomas@monjalon.net>, <bruce.richardson@intel.com>,\n <david.marchand@redhat.com>, <mattias.ronnblom@ericsson.com>,\n <skori@marvell.com>, Jerin Jacob <jerinj@marvell.com>",
        "Date": "Sun, 19 Apr 2020 15:31:00 +0530",
        "Message-ID": "<20200419100133.3232316-1-jerinj@marvell.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20200413150116.734047-1-jerinj@marvell.com>",
        "References": "<20200413150116.734047-1-jerinj@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676\n definitions=2020-04-19_02:2020-04-17,\n 2020-04-19 signatures=0",
        "Subject": "[dpdk-dev]  [PATCH v6 00/33] DPDK Trace support",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Jerin Jacob <jerinj@marvell.com>\n\nv6\n~~\n\nFollowing changes are based on David's feedback.\n\n1) Changed rte_trace_t to rte_trace_point_t\n2) Reworked the header file to have following API name and filename changes\nrte_trace.h has following trace control APIs\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\na) rte_trace_is_enabled()\nb) rte_trace_mode_set()\nc) rte_trace_mode_get()\nd) rte_trace_pattern()\ne) rte_trace_regexp()\nf) rte_trace_save()\ng) rte_trace_metadata_dump()\nh) rte_trace_dump()\n\nrte_trace_point.h has following tracepoint related APIs\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\na) rte_trace_point_enable()\nb) rte_trace_point_disable()\nc) rte_trace_point_is_enabled()\nd) rte_trace_point_lookup()\ne) rte_trace_point_emit_*()\nf) RTE_TRACE_POINT_* macros\n\n3) made rte_trace_fp_enabled() as internal.\n\n4) Added common macros to have rte_trace_point_emit_* definition at\nsingle place a.k.a more common code now.\n \n5) git grep -l rte_trace_ctf |xargs sed -i -e\n's/rte_trace_ctf_/rte_tracepoint_emit_/g'.\n\n6) Added the reason new section for tracepoint in git commit log\n7) Sorted symbols alphabetic order in rte_eal_version.map file.\n8) Fix snprint return handling bug in __rte_trace_point_emit_field() function.\n9) Doc: added newline for section titles.\n10) ctf_field and ctf_count made it as static.\n\nv5\n~~\n\nFollowing API rework based David and Thomas feedback.\n\n1) Rename - \"Shell pattern\" to \"Globbing pattern\" \n2) Remove the log \"level\" notion from trace library.\n3) Remove rte_trace_global_[level/mode]* API from trace library. \n4) EAL command line arg to --trace=regex/globing from --trace-level=regex/globing:level\n5) Remove \"@b EXPERIMENTAL: this API may change without prior notice\" from each functions.\n6) Use FP instead of DP for fastpath reference.\n7) Updated documentation to reflect  the above rework.\n8) Updated UT to to reflect  the above rework.\n8) Updated UT for a FP trace point emit.\n9) Updated performance test case for a FP trace point emission.\n10) Updated git commit comments to reflect  the above rework.\n\nv4:\n~~\n\n1) Rebased to master.\n\n2) Adapted to latest EAL directory structure change.\n\n3) Fix possible build issue with out of tree application wherein\nit does not define -DALLOW_EXPERIMENTAL_API. Fixed by making\nfast path trace functions as NOP as it was getting included\nin the inline functions of ethdev,mempool, cryptodev, etc(David)\n \n4) Removed DALLOW_EXPERIMENTAL_API definition from individual driver files.\nNow it set as global using http://patches.dpdk.org/patch/67758/ patch (David)\n\n5) Added new meson option(-Denable_trace_dp=true)for enabling the datapath trace point (David, Bruce)\n\n6) Changed the authorship and Rewrote the programmer's guide  based on the below feedback(Thomas)\nhttp://patches.dpdk.org/patch/67352/\n\nv3:\n~~\n\n1) Fix the following build issues reported by CI\nhttp://mails.dpdk.org/archives/test-report/2020-March/122060.html\n\na) clang + i686 meson build issue(Fixed in the the patch meson: add libatomic as a global dependency for i686 clang)\nb) fixed build issue with FreeBSD with top of tree change.\nc) fixed missing experimental API for iavf and ice with meson build in avx512 files.\n\nv2:\n~~\nAddressed the following review comments from Mattias Rönnblom:\n\n1) Changed \n\nfrom:\n\ttypedef uint64_t* rte_trace_t;\nto\n\ttypedef uint64_t rte_trace_t;\n\n\tInitially thought to make the handle as\n\tstruct rte_trace {\n\t    uint64_t val;\n\t}\n\n\tbut changed to uint64_t for the following reasons\n\ta) It is opaque to the application and it will fix the compile-time type\n\tcheck as well.\n\tb) The handle has an index that will point to an internal slow-path\n\tstructure so no ABI change required in the future.\n\tc) RTE_TRACE_POINT_DEFINE need to expose trace object. So it is better\n\tto keep as uint64_t and avoid one more indirection for no use.\n\n2)\nChanged:\nfrom:\n\tenum rte_trace_mode_e {\nto:\n\tenum rte_trace_mode {\n\n3) removed [out] \"found\" param from rte_trace_pattern() and\nrte_trace_regexp()\n\n\n4) Changed rte_trace_from_name to rte_trace_by_name\n\n5) rte_trace_is_dp_enabled() return bool now\n\n\n6) in __rte_trace_point_register() the argument fn change to register_fn\n\n7) removed !! from rte_trace_is_enabled()\n\n8) Remove uninitialized \"rc warning\" from rte_trace_pattern() and\nrte_trace_regexp()\n\n9) fixup bool return type for trace_entry_compare()\n\n10) fixup calloc casting in trace_mkdir()\n\n11) check fclose() return in trace_meta_save() and trace_mem_save()\n\n12) rte_trace_ctf_* macro cleanup\n\n13) added release notes\n\n14) fix build issues reported by CI\nhttp://mails.dpdk.org/archives/test-report/2020-March/121235.html\n\n\nThis patch set contains \n~~~~~~~~~~~~~~~~~~~~~~~~\n\n# The native implementation of common trace format(CTF)[1] based tracer\n# Public API to create the trace points.\n# Add tracepoints to eal, ethdev, mempool, eventdev and cryptodev \nlibrary for tracing support\n# A unit test case\n# Performance test case to measure the trace overhead. (See eal/trace:\n# add trace performance test cases, patch)\n# Programmers guide for Trace support(See doc: add trace library guide,\n# patch)\n\n# Tested OS:\n~~~~~~~~~~~\n- Linux\n- FreeBSD\n\n# Tested open source CTF trace viewers\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n- Babeltrace\n- Tracecompass\n\n# Trace overhead comparison with LTTng\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\ntrace overhead data on x86:[2]\n# 236 cycles with LTTng(>100ns)\n# 18 cycles(7ns) with Native DPDK CTF emitter.(See eal/trace: add trace\n# performance test cases patch)\n\ntrace overhead data on arm64:\n#  312  cycles to  1100 cycles with LTTng based on the class of arm64  CPU.\n#  11 cycles to 13 cycles with Native DPDK CTF emitter based on the\nclass of arm64 CPU.\n\n18 cycles(on x86) vs 11 cycles(on arm64) is due to rdtsc() overhead in\nx86. It seems  rdtsc takes around 15cycles in x86.\n\nMore details:\n~~~~~~~~~~~~~\n\n# The Native DPDK CTF trace support does not have any dependency on\nthird-party library.\nThe generated output file is compatible with LTTng as both are using\nCTF trace format.\n\nThe performance gain comes from:\n1) exploit dpdk worker thread usage model to avoid atomics and use per\ncore variables\n2) use hugepage,\n3) avoid a lot function pointers in fast-path etc\n4) avoid unaligned store for arm64 etc\n\nFeatures:\n~~~~~~~~~\n- No specific limit on the events. A string-based event like rte_log\nfor pattern matching\n- Dynamic enable/disable support.\n- Instructmention overhead is ~1 cycle. i.e cost of adding the code\nwth out using trace feature.\n- Timestamp support for all the events using DPDK rte_rtdsc\n- No dependency on another library. Clean room native implementation of CTF.\n\nFunctional test case:\na) echo \"trace_autotest\" | sudo ./build/app/test/dpdk-test  -c 0x3 --trace=.*\n\nThe above command emits the following trace events\n<code>\n        uint8_t i;\n\n        rte_trace_lib_eal_generic_void();\n        rte_trace_lib_eal_generic_u64(0x10000000000000);\n        rte_trace_lib_eal_generic_u32(0x10000000);\n        rte_trace_lib_eal_generic_u16(0xffee);\n        rte_trace_lib_eal_generic_u8(0xc);\n        rte_trace_lib_eal_generic_i64(-1234);\n        rte_trace_lib_eal_generic_i32(-1234567);\n        rte_trace_lib_eal_generic_i16(12);\n        rte_trace_lib_eal_generic_i8(-3);\n        rte_trace_lib_eal_generic_string(\"my string\");\n        rte_trace_lib_eal_generic_function(__func__);\n\n</code>\n\nInstall babeltrace package in Linux and point the generated trace file\nto babel trace. By default trace file created under\n<user>/dpdk-traces/time_stamp/\n\nexample:\n# babeltrace /root/dpdk-traces/rte-2020-02-15-PM-02-56-51 | more\n\n[13:27:36.138468807] (+?.?????????) lib.eal.generic.void: { cpu_id =0, name = \"dpdk-test\" }, { }\n[13:27:36.138468851] (+0.000000044) lib.eal.generic.u64: { cpu_id = 0, name = \"dpdk-test\" }, { in = 4503599627370496 }\n[13:27:36.138468860] (+0.000000009) lib.eal.generic.u32: { cpu_id = 0, name = \"dpdk-test\" }, { in = 268435456 }\n[13:27:36.138468934] (+0.000000074) lib.eal.generic.u16: { cpu_id = 0, name = \"dpdk-test\" }, { in = 65518 }\n[13:27:36.138468949] (+0.000000015) lib.eal.generic.u8: { cpu_id = 0, name = \"dpdk-test\" }, { in = 12 }\n[13:27:36.138468956] (+0.000000007) lib.eal.generic.i64: { cpu_id = 0, name = \"dpdk-test\" }, { in = -1234 }\n[13:27:36.138468963] (+0.000000007) lib.eal.generic.i32: { cpu_id = 0, name = \"dpdk-test\" }, { in = -1234567 }\n[13:27:36.138469024] (+0.000000061) lib.eal.generic.i16: { cpu_id = 0, name = \"dpdk-test\" }, { in = 12 }\n[13:27:36.138469044] (+0.000000020) lib.eal.generic.i8: { cpu_id = 0, name = \"dpdk-test\" }, { in = -3 }\n[13:27:36.138469051] (+0.000000007) lib.eal.generic.string: { cpu_id = 0, name = \"dpdk-test\" }, { str = \"my string\" }\n[13:27:36.138469203] (+0.000000152) lib.eal.generic.func: { cpu_id = 0, name = \"dpdk-test\" }, { func = \"test_trace_points\" }\n\n# There is a  GUI based trace viewer available in Windows, Linux and  Mac.\nIt is called as tracecompass.(https://www.eclipse.org/tracecompass/)\n\nThe example screenshot and Histogram of above DPDK trace using\nTracecompass.\n\nhttps://github.com/jerinjacobk/share/blob/master/dpdk_trace.JPG\n\n\nFile walk through:\n~~~~~~~~~~~~~~~~~~\n\nlib/librte_eal/common/include/rte_trace.h - Public API for Trace\nprovider and Trace control\nlib/librte_eal/common/eal_common_trace.c - main trace implementation\nlib/librte_eal/common/eal_common_trace_ctf.c - CTF metadata spec\nimplementation\nlib/librte_eal/common/eal_common_trace_utils.c - command line utils\nand filesystem operations.\nlib/librte_eal/common/eal_common_trace_points.c -  trace points for EAL\nlibrary\nlib/librte_eal/common/include/rte_trace_eal.h - EAL tracepoint public\nAPI.\nlib/librte_eal/common/eal_trace.h - Private trace header file.\n\n\n[1] https://diamon.org/ctf/\n\n[2] The above test is ported to LTTng for finding the LTTng trace\noverhead. It available at\nhttps://github.com/jerinjacobk/lttng-overhead\nhttps://github.com/jerinjacobk/lttng-overhead/blob/master/README\n\n\nJerin Jacob (22):\n  eal: introduce API for getting thread name\n  eal/trace: define the public API for trace support\n  eal/trace: implement trace register API\n  eal/trace: implement trace operation APIs\n  eal/trace: add internal trace init and fini interface\n  eal/trace: get bootup timestamp for trace\n  eal/trace: create CTF TDSL metadata in memory\n  eal/trace: implement trace memory allocation\n  eal/trace: implement debug dump function\n  eal/trace: implement trace save\n  eal/trace: implement registration payload\n  eal/trace: implement provider payload\n  eal/trace: hook internal trace APIs to Linux\n  eal/trace: hook internal trace APIs to FreeBSD\n  eal/trace: add generic tracepoints\n  eal/trace: add alarm tracepoints\n  eal/trace: add memory tracepoints\n  eal/trace: add memzone tracepoints\n  eal/trace: add thread tracepoints\n  eal/trace: add interrupt tracepoints\n  eal/trace: add trace performance test cases\n  doc: add trace library guide\n\nPavan Nikhilesh (1):\n  meson: add libatomic as a global dependency for i686 clang\n\nSunil Kumar Kori (10):\n  eal/trace: handle CTF keyword collision\n  eal/trace: add trace configuration parameter\n  eal/trace: add trace dir configuration parameter\n  eal/trace: add trace bufsize configuration parameter\n  eal/trace: add trace mode configuration parameter\n  eal/trace: add unit test cases\n  ethdev: add tracepoints\n  eventdev: add tracepoints\n  cryptodev: add tracepoints\n  mempool: add tracepoints\n\n MAINTAINERS                                   |   8 +\n app/test/Makefile                             |   4 +-\n app/test/meson.build                          |   3 +\n app/test/test_trace.c                         | 223 ++++++++\n app/test/test_trace.h                         |  15 +\n app/test/test_trace_perf.c                    | 183 +++++++\n app/test/test_trace_register.c                |  17 +\n config/common_base                            |   1 +\n config/meson.build                            |   9 +\n doc/api/doxy-api-index.md                     |   4 +-\n doc/guides/linux_gsg/eal_args.include.rst     |  52 ++\n doc/guides/prog_guide/build-sdk-meson.rst     |   5 +\n doc/guides/prog_guide/index.rst               |   1 +\n doc/guides/prog_guide/trace_lib.rst           | 346 ++++++++++++\n doc/guides/rel_notes/release_20_05.rst        |   9 +\n drivers/event/octeontx/meson.build            |   5 -\n drivers/event/octeontx2/meson.build           |   5 -\n drivers/event/opdl/meson.build                |   5 -\n examples/cmdline/Makefile                     |   1 +\n examples/cmdline/meson.build                  |   1 +\n examples/distributor/Makefile                 |   1 +\n examples/distributor/meson.build              |   1 +\n examples/ethtool/ethtool-app/Makefile         |   1 +\n examples/eventdev_pipeline/meson.build        |   1 +\n examples/flow_filtering/Makefile              |   1 +\n examples/flow_filtering/meson.build           |   1 +\n examples/helloworld/Makefile                  |   1 +\n examples/helloworld/meson.build               |   1 +\n examples/ioat/Makefile                        |   1 +\n examples/ioat/meson.build                     |   1 +\n examples/ip_fragmentation/Makefile            |   2 +\n examples/ip_fragmentation/meson.build         |   1 +\n examples/ip_reassembly/Makefile               |   1 +\n examples/ip_reassembly/meson.build            |   1 +\n examples/ipv4_multicast/Makefile              |   1 +\n examples/ipv4_multicast/meson.build           |   1 +\n examples/l2fwd-cat/Makefile                   |   1 +\n examples/l2fwd-cat/meson.build                |   1 +\n examples/l2fwd-event/Makefile                 |   1 +\n examples/l2fwd-event/meson.build              |   6 +-\n examples/l2fwd-jobstats/Makefile              |   1 +\n examples/l2fwd-jobstats/meson.build           |   1 +\n examples/l2fwd-keepalive/Makefile             |   1 +\n examples/l2fwd-keepalive/ka-agent/Makefile    |   1 +\n examples/l2fwd-keepalive/meson.build          |   1 +\n examples/l3fwd-acl/Makefile                   |   1 +\n examples/l3fwd-acl/meson.build                |   1 +\n examples/l3fwd/Makefile                       |   1 +\n examples/l3fwd/meson.build                    |   1 +\n examples/link_status_interrupt/Makefile       |   1 +\n examples/link_status_interrupt/meson.build    |   1 +\n .../client_server_mp/mp_client/Makefile       |   1 +\n .../client_server_mp/mp_client/meson.build    |   1 +\n .../client_server_mp/mp_server/meson.build    |   1 +\n examples/multi_process/hotplug_mp/Makefile    |   1 +\n examples/multi_process/hotplug_mp/meson.build |   1 +\n examples/multi_process/simple_mp/Makefile     |   1 +\n examples/multi_process/simple_mp/meson.build  |   1 +\n examples/multi_process/symmetric_mp/Makefile  |   1 +\n .../multi_process/symmetric_mp/meson.build    |   1 +\n examples/ntb/Makefile                         |   1 +\n examples/ntb/meson.build                      |   1 +\n examples/packet_ordering/Makefile             |   1 +\n examples/packet_ordering/meson.build          |   1 +\n .../performance-thread/l3fwd-thread/Makefile  |   1 +\n .../l3fwd-thread/meson.build                  |   1 +\n .../performance-thread/pthread_shim/Makefile  |   1 +\n .../pthread_shim/meson.build                  |   1 +\n examples/ptpclient/Makefile                   |   1 +\n examples/ptpclient/meson.build                |   1 +\n examples/qos_meter/Makefile                   |   1 +\n examples/qos_meter/meson.build                |   1 +\n examples/qos_sched/Makefile                   |   1 +\n examples/qos_sched/meson.build                |   1 +\n examples/server_node_efd/node/Makefile        |   1 +\n examples/server_node_efd/node/meson.build     |   1 +\n examples/server_node_efd/server/Makefile      |   1 +\n examples/server_node_efd/server/meson.build   |   1 +\n examples/service_cores/Makefile               |   1 +\n examples/service_cores/meson.build            |   1 +\n examples/skeleton/Makefile                    |   1 +\n examples/skeleton/meson.build                 |   1 +\n examples/timer/Makefile                       |   1 +\n examples/timer/meson.build                    |   1 +\n examples/vm_power_manager/Makefile            |   1 +\n examples/vm_power_manager/meson.build         |   1 +\n examples/vmdq/Makefile                        |   1 +\n examples/vmdq/meson.build                     |   1 +\n examples/vmdq_dcb/Makefile                    |   1 +\n examples/vmdq_dcb/meson.build                 |   1 +\n lib/librte_cryptodev/Makefile                 |   4 +-\n lib/librte_cryptodev/cryptodev_trace_points.c |  70 +++\n lib/librte_cryptodev/meson.build              |   6 +-\n lib/librte_cryptodev/rte_cryptodev.c          |  18 +\n lib/librte_cryptodev/rte_cryptodev.h          |   6 +\n .../rte_cryptodev_version.map                 |  18 +\n lib/librte_cryptodev/rte_trace_cryptodev.h    | 148 ++++++\n lib/librte_cryptodev/rte_trace_cryptodev_fp.h |  38 ++\n lib/librte_distributor/meson.build            |   5 -\n lib/librte_eal/common/eal_common_memzone.c    |   9 +\n lib/librte_eal/common/eal_common_options.c    |  65 +++\n lib/librte_eal/common/eal_common_thread.c     |   4 +-\n lib/librte_eal/common/eal_common_trace.c      | 500 ++++++++++++++++++\n lib/librte_eal/common/eal_common_trace_ctf.c  | 488 +++++++++++++++++\n .../common/eal_common_trace_points.c          | 115 ++++\n .../common/eal_common_trace_utils.c           | 478 +++++++++++++++++\n lib/librte_eal/common/eal_options.h           |   8 +\n lib/librte_eal/common/eal_private.h           |   5 +\n lib/librte_eal/common/eal_trace.h             | 122 +++++\n lib/librte_eal/common/meson.build             |   4 +\n lib/librte_eal/common/rte_malloc.c            |  60 ++-\n lib/librte_eal/freebsd/Makefile               |   4 +\n lib/librte_eal/freebsd/eal.c                  |  10 +\n lib/librte_eal/freebsd/eal_alarm.c            |   3 +\n lib/librte_eal/freebsd/eal_interrupts.c       |  54 +-\n lib/librte_eal/freebsd/eal_thread.c           |  21 +-\n lib/librte_eal/include/meson.build            |   5 +\n lib/librte_eal/include/rte_lcore.h            |  17 +\n lib/librte_eal/include/rte_trace.h            | 141 +++++\n lib/librte_eal/include/rte_trace_eal.h        | 278 ++++++++++\n lib/librte_eal/include/rte_trace_point.h      | 306 +++++++++++\n .../include/rte_trace_point_provider.h        | 131 +++++\n .../include/rte_trace_point_register.h        |  39 ++\n lib/librte_eal/linux/Makefile                 |   4 +\n lib/librte_eal/linux/eal.c                    |   9 +\n lib/librte_eal/linux/eal_alarm.c              |   4 +\n lib/librte_eal/linux/eal_interrupts.c         |  84 +--\n lib/librte_eal/linux/eal_thread.c             |  27 +-\n lib/librte_eal/rte_eal_version.map            |  50 ++\n lib/librte_ethdev/Makefile                    |   3 +\n lib/librte_ethdev/ethdev_trace_points.c       |  43 ++\n lib/librte_ethdev/meson.build                 |   5 +-\n lib/librte_ethdev/rte_ethdev.c                |  12 +\n lib/librte_ethdev/rte_ethdev.h                |   5 +\n lib/librte_ethdev/rte_ethdev_version.map      |  10 +\n lib/librte_ethdev/rte_trace_ethdev.h          |  97 ++++\n lib/librte_ethdev/rte_trace_ethdev_fp.h       |  44 ++\n lib/librte_eventdev/Makefile                  |   3 +\n lib/librte_eventdev/eventdev_trace_points.c   | 173 ++++++\n lib/librte_eventdev/meson.build               |   3 +\n .../rte_event_crypto_adapter.c                |  10 +\n .../rte_event_eth_rx_adapter.c                |  11 +\n .../rte_event_eth_tx_adapter.c                |  13 +-\n .../rte_event_eth_tx_adapter.h                |   2 +\n lib/librte_eventdev/rte_event_timer_adapter.c |   8 +-\n lib/librte_eventdev/rte_event_timer_adapter.h |   8 +\n lib/librte_eventdev/rte_eventdev.c            |   9 +\n lib/librte_eventdev/rte_eventdev.h            |   5 +-\n lib/librte_eventdev/rte_eventdev_version.map  |  42 ++\n lib/librte_eventdev/rte_trace_eventdev.h      | 311 +++++++++++\n lib/librte_eventdev/rte_trace_eventdev_fp.h   |  85 +++\n lib/librte_mempool/Makefile                   |   3 +\n lib/librte_mempool/mempool_trace_points.c     | 108 ++++\n lib/librte_mempool/meson.build                |   5 +-\n lib/librte_mempool/rte_mempool.c              |  16 +\n lib/librte_mempool/rte_mempool.h              |  13 +\n lib/librte_mempool/rte_mempool_ops.c          |   7 +\n lib/librte_mempool/rte_mempool_version.map    |  26 +\n lib/librte_mempool/rte_trace_mempool.h        | 178 +++++++\n lib/librte_mempool/rte_trace_mempool_fp.h     | 116 ++++\n lib/librte_rcu/meson.build                    |   5 -\n meson_options.txt                             |   2 +\n 162 files changed, 5607 insertions(+), 105 deletions(-)\n create mode 100644 app/test/test_trace.c\n create mode 100644 app/test/test_trace.h\n create mode 100644 app/test/test_trace_perf.c\n create mode 100644 app/test/test_trace_register.c\n create mode 100644 doc/guides/prog_guide/trace_lib.rst\n create mode 100644 lib/librte_cryptodev/cryptodev_trace_points.c\n create mode 100644 lib/librte_cryptodev/rte_trace_cryptodev.h\n create mode 100644 lib/librte_cryptodev/rte_trace_cryptodev_fp.h\n create mode 100644 lib/librte_eal/common/eal_common_trace.c\n create mode 100644 lib/librte_eal/common/eal_common_trace_ctf.c\n create mode 100644 lib/librte_eal/common/eal_common_trace_points.c\n create mode 100644 lib/librte_eal/common/eal_common_trace_utils.c\n create mode 100644 lib/librte_eal/common/eal_trace.h\n create mode 100644 lib/librte_eal/include/rte_trace.h\n create mode 100644 lib/librte_eal/include/rte_trace_eal.h\n create mode 100644 lib/librte_eal/include/rte_trace_point.h\n create mode 100644 lib/librte_eal/include/rte_trace_point_provider.h\n create mode 100644 lib/librte_eal/include/rte_trace_point_register.h\n create mode 100644 lib/librte_ethdev/ethdev_trace_points.c\n create mode 100644 lib/librte_ethdev/rte_trace_ethdev.h\n create mode 100644 lib/librte_ethdev/rte_trace_ethdev_fp.h\n create mode 100644 lib/librte_eventdev/eventdev_trace_points.c\n create mode 100644 lib/librte_eventdev/rte_trace_eventdev.h\n create mode 100644 lib/librte_eventdev/rte_trace_eventdev_fp.h\n create mode 100644 lib/librte_mempool/mempool_trace_points.c\n create mode 100644 lib/librte_mempool/rte_trace_mempool.h\n create mode 100644 lib/librte_mempool/rte_trace_mempool_fp.h",
    "diff": null,
    "prefixes": [
        "v6",
        "00/33"
    ]
}