Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/34444/?format=api
https://patches.dpdk.org/api/patches/34444/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1516870870-168223-2-git-send-email-harry.van.haaren@intel.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": "<1516870870-168223-2-git-send-email-harry.van.haaren@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1516870870-168223-2-git-send-email-harry.van.haaren@intel.com", "date": "2018-01-25T09:00:53", "name": "[dpdk-dev,01/18] doc/contrib: document dynamic logging format", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "ac2417fe23e47bbaaa40f0667b5dd54d39c57996", "submitter": { "id": 317, "url": "https://patches.dpdk.org/api/people/317/?format=api", "name": "Van Haaren, Harry", "email": "harry.van.haaren@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1516870870-168223-2-git-send-email-harry.van.haaren@intel.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/34444/comments/", "check": "fail", "checks": "https://patches.dpdk.org/api/patches/34444/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 479911B03C;\n\tThu, 25 Jan 2018 10:01:35 +0100 (CET)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n\tby dpdk.org (Postfix) with ESMTP id 64F061B018\n\tfor <dev@dpdk.org>; Thu, 25 Jan 2018 10:01:30 +0100 (CET)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t25 Jan 2018 01:01:28 -0800", "from silpixa00398672.ir.intel.com ([10.237.223.111])\n\tby fmsmga001.fm.intel.com with ESMTP; 25 Jan 2018 01:01:27 -0800" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.46,411,1511856000\"; d=\"scan'208\";a=\"25310919\"", "From": "Harry van Haaren <harry.van.haaren@intel.com>", "To": "dev@dpdk.org", "Cc": "Harry van Haaren <harry.van.haaren@intel.com>, marko.kovacevic@intel.com", "Date": "Thu, 25 Jan 2018 09:00:53 +0000", "Message-Id": "<1516870870-168223-2-git-send-email-harry.van.haaren@intel.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1516870870-168223-1-git-send-email-harry.van.haaren@intel.com>", "References": "<1516870870-168223-1-git-send-email-harry.van.haaren@intel.com>", "Subject": "[dpdk-dev] [PATCH 01/18] doc/contrib: document dynamic logging\n\tformat", "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://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "This commit adds a section to the DPDK style guide to set\nthe dynamic logging formatting naming scheme.\n\nSigned-off-by: Harry van Haaren <harry.van.haaren@intel.com>\n\n---\n\nMaintainer:\nCc: marko.kovacevic@intel.com\n---\n doc/guides/contributing/coding_style.rst | 53 ++++++++++++++++++++++++++++++++\n 1 file changed, 53 insertions(+)", "diff": "diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst\nindex d8e4a0f..a859350 100644\n--- a/doc/guides/contributing/coding_style.rst\n+++ b/doc/guides/contributing/coding_style.rst\n@@ -702,3 +702,56 @@ All Python code should work with Python 2.7+ and 3.2+ and be compliant with\n `PEP8 (Style Guide for Python Code) <https://www.python.org/dev/peps/pep-0008/>`_.\n \n The ``pep8`` tool can be used for testing compliance with the guidelines.\n+\n+\n+Dynamic Logging\n+---------------\n+\n+DPDK provides infrastructure to perform logging during runtime. This is very\n+useful for enabling debug output without recompilation. To enable or disable\n+logging of a particular topic, the ``--log-level`` parameter can be provided\n+to EAL, which will change the log level. DPDK code can register topics,\n+which allows the user to adjust the log verbosity for that specific topic.\n+\n+In general, the naming scheme is as follows: ``type.section.name``\n+\n+ * Type is the type of component, where ``lib``, ``pmd``, ``bus`` and ``user``\n+ are the common options.\n+ * Section refers to a specific area, for example a poll-mode-driver for an\n+ ethernet device would use ``pmd.net``, while an eventdev PMD uses\n+ ``pmd.event``.\n+ * The name identifies the individual item that the log applies to.\n+ The name section must align with\n+ the directory that the PMD code resides. See examples below for clarity.\n+\n+Examples:\n+\n+ * The virtio network PMD in ``drivers/net/virtio`` uses ``pmd.net.virtio``\n+ * The eventdev software poll mode driver in ``drivers/event/sw`` uses ``pmd.event.sw``\n+ * The octeontx mempool driver in ``drivers/mempool/octeontx`` uses ``pmd.mempool.octeontx``\n+ * The DPDK hash library in ``lib/librte_hash`` uses ``lib.hash``\n+\n+Specializations\n+~~~~~~~~~~~~~~~\n+\n+In addition to the above logging topic, any PMD or library can further split\n+logging output by using \"specializations\". A specialization could be the\n+difference between initialization code, and logs of events that occur at runtime.\n+\n+An example could be the initialization log messages getting one\n+specialization, while another specialization handles mailbox command logging.\n+Each PMD, library or component can create as many specializations as required.\n+\n+A specialization looks like this:\n+\n+ * Initialization output: ``type.section.name.init``\n+ * PF/VF mailbox output: ``type.section.name.mbox``\n+\n+A real world example is the i40e poll mode driver which exposes two\n+specializations, one for initialization ``pmd.i40e.init`` and the other for\n+the remaining driver logs ``pmd.i40e.driver``.\n+\n+Note that specializations have no formatting rules, but please follow\n+a precedent if one exists. In order to see all current log topics and\n+specializations, run the ``app/test`` binary, and use the ``dump_log_types``\n+command.\n", "prefixes": [ "dpdk-dev", "01/18" ] }{ "id": 34444, "url": "