get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 87969,
    "url": "https://patches.dpdk.org/api/patches/87969/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210218092307.29575-1-ciara.loftus@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": "<20210218092307.29575-1-ciara.loftus@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210218092307.29575-1-ciara.loftus@intel.com",
    "date": "2021-02-18T09:23:04",
    "name": "[RFC,0/3] AF_XDP Preferred Busy Polling",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 144,
        "url": "https://patches.dpdk.org/api/people/144/?format=api",
        "name": "Loftus, Ciara",
        "email": "ciara.loftus@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210218092307.29575-1-ciara.loftus@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/87969/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/87969/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 588CEA054D;\n\tThu, 18 Feb 2021 10:53:47 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BF481160734;\n\tThu, 18 Feb 2021 10:53:46 +0100 (CET)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by mails.dpdk.org (Postfix) with ESMTP id A3B0440698\n for <dev@dpdk.org>; Thu, 18 Feb 2021 10:53:45 +0100 (CET)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 18 Feb 2021 01:53:44 -0800",
            "from silpixa00399839.ir.intel.com (HELO localhost.localdomain)\n ([10.237.222.142])\n by FMSMGA003.fm.intel.com with ESMTP; 18 Feb 2021 01:53:43 -0800"
        ],
        "IronPort-SDR": [
            "\n c+ercUBKdEN0V5YZ46jyT01gj/Bqb4h2FO300aYz9aLrXQGjQ2kbRVUyHuRLyVZg89zPEfj0zD\n 0PIzIbJMZm8A==",
            "\n 87sPpkUdQ0O0SpAR/azT3Hl307KmhMvJerbql2CjCTXQ61g6r1qFWAYDy8LTHPVLCox/DbHdR0\n 1tnHpQxOzHTg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9898\"; a=\"179938813\"",
            "E=Sophos;i=\"5.81,186,1610438400\"; d=\"scan'208\";a=\"179938813\"",
            "E=Sophos;i=\"5.81,186,1610438400\"; d=\"scan'208\";a=\"427090210\""
        ],
        "X-ExtLoop1": "1",
        "From": "Ciara Loftus <ciara.loftus@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Thu, 18 Feb 2021 09:23:04 +0000",
        "Message-Id": "<20210218092307.29575-1-ciara.loftus@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH RFC 0/3] AF_XDP Preferred Busy Polling",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "Single-core performance of AF_XDP at high loads can be poor because\na heavily loaded NAPI context will never enter or allow for busy-polling.\n\n1C testpmd rxonly (both IRQs and PMD on core 0):\n./dpdk-testpmd -l 0-1 --vdev=net_af_xdp0,iface=eth0 -- --forward-mode=rxonly\n0.088Mpps\n\nIn order to achieve decent performance at high loads, it is currently\nrecommended ensure the IRQs for the netdev and the core running the PMD are\ndifferent.\n\n2C testpmd rxonly (IRQs on core 0, PMD on core 1):\n./dpdk-testpmd -l 0-1 --vdev=net_af_xdp0,iface=eth0 --main-lcore=0 -- \\\n--forward-mode=rxonly\n19.26Mpps\n\nHowever using an extra core is of course not ideal. The SO_PREFER_BUSY_POLL\nsocket option was introduced in kernel v5.11 to help improve 1C performance.\nSee [1].\n\nThis series sets this socket option on xsks created with DPDK (ie. instances of\nthe AF_XDP PMD) unless explicitly disabled or not supported by the kernel. It\nwas chosen to be enabled by default in order to bring the AF_XDP PMD in line\nwith most other PMDs which execute on a single core.\n\nThe following system and netdev settings are recommended in conjunction with\nbusy polling:\necho 2 | sudo tee /sys/class/net/eth0/napi_defer_hard_irqs\necho 200000 | sudo tee /sys/class/net/eth0/gro_flush_timeout\n\nWith the RFC these must be manually configured, but for the v1 these may be\nset from the PMD since the performance is tightly coupled with these settings.\n\nRe-running the 1C test with busy polling support and the above settings:\n./dpdk-testpmd -l 0-1 --vdev=net_af_xdp0,iface=eth0 -- --forward-mode=rxonly\n10.45Mpps\n\nA new vdev arg is introduced called 'busy_budget' whose default value is 64.\nbusy_budget is the value supplied to the kernel with the SO_BUSY_POLL_BUDGET\nsocket option and represents the busy-polling NAPI budget ie. the number of\npackets the kernel will attempt to process in the netdev's NAPI context. If set\nto 0, preferred busy polling is disabled.\n\nTo set the busy budget to 256:\n./dpdk-testpmd --vdev=net_af_xdp0,iface=eth0,busy_budget=256\n14.06Mpps\n\nTo set the busy budget to 512:\n./dpdk-testpmd --vdev=net_af_xdp0,iface=eth0,busy_budget=512\n14.32Mpps\n\nTo disable preferred busy polling:\n./dpdk-testpmd --vdev=net_af_xdp0,iface=eth0,busy_budget=0\n\n[1] https://lwn.net/Articles/837010/\n\n\nCiara Loftus (3):\n  net/af_xdp: Increase max batch size to 512\n  net/af_xdp: Use recvfrom() instead of poll()\n  net/af_xdp: preferred busy polling\n\n doc/guides/nics/af_xdp.rst          | 38 +++++++++++-\n drivers/net/af_xdp/compat.h         | 13 ++++\n drivers/net/af_xdp/rte_eth_af_xdp.c | 95 ++++++++++++++++++++++-------\n 3 files changed, 124 insertions(+), 22 deletions(-)",
    "diff": null,
    "prefixes": [
        "RFC",
        "0/3"
    ]
}