Show a cover letter.

GET /api/covers/40769/?format=api
Content-Type: application/json
Vary: Accept

    "id": 40769,
    "url": "",
    "web_url": "",
    "project": {
        "id": 1,
        "url": "",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "",
        "list_email": "",
        "web_url": "",
        "scm_url": "git://",
        "webscm_url": ""
    "msgid": "<>",
    "date": "2018-06-07T07:36:59",
    "name": "[dpdk-dev,v1,0/6] examples/vm_power: 100% Busy Polling",
    "submitter": {
        "id": 342,
        "url": "",
        "name": "David Hunt",
        "email": ""
    "mbox": "",
    "series": [
            "id": 33,
            "url": "",
            "web_url": "",
            "date": "2018-06-07T07:36:59",
            "name": "examples/vm_power: 100% Busy Polling",
            "version": 1,
            "mbox": ""
    "comments": "",
    "headers": {
        "Return-Path": "<>",
        "X-BeenThere": "",
        "X-Mailman-Version": "2.1.15",
        "X-IronPort-AV": "E=Sophos;i=\"5.49,486,1520924400\"; d=\"scan'208\";a=\"62111488\"",
        "From": "David Hunt <>",
        "List-Post": "<>",
        "List-Help": "<>",
        "X-ExtLoop1": "1",
        "Delivered-To": "",
        "Message-Id": "<>",
        "X-Original-To": "",
        "Received": [
            "from [] (localhost [])\n\tby (Postfix) with ESMTP id 2C1B91B3D4;\n\tThu,  7 Jun 2018 16:39:54 +0200 (CEST)",
            "from ( [])\n\tby (Postfix) with ESMTP id 724AB1B1E3\n\tfor <>; Thu,  7 Jun 2018 16:39:52 +0200 (CEST)",
            "from ([])\n\tby with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t07 Jun 2018 07:39:51 -0700",
            "from (HELO\n\ ([])\n\tby with ESMTP; 07 Jun 2018 07:39:50 -0700"
        "X-Mailer": "git-send-email 2.17.0",
        "Sender": "\"dev\" <>",
        "Subject": "[dpdk-dev] [PATCH v1 0/6] examples/vm_power: 100% Busy Polling",
        "Precedence": "list",
        "Date": "Thu,  7 Jun 2018 08:36:59 +0100",
        "List-Archive": "<>",
        "X-Amp-File-Uploaded": "False",
        "List-Subscribe": "<>,\n\t<>",
        "Cc": "",
        "List-Id": "DPDK patches and discussions <>",
        "List-Unsubscribe": "<>,\n\t<>",
        "To": "",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "Errors-To": ""
    "content": "This patch set adds the capability to do out-of-band power\nmonitoring on a systemi by detecting when a core is doing 100%\nbusy polling, but not handling any packets.\n\nIt uses a thread to monitor the branch counters in the targeted\ncores, and calculates the branch ratio if the running code.\n\nIf the branch ratop is low (0.01), then\nthe code is most likely running in a tight poll loop and doing\nnothing, i.e. receiving no packets. In this case we scale down\nthe frequency of that core.\n\nIf the branch ratio is higher (>0.01), then it is likely that\nthe code is receiving and processing packets. In this case, we\nscale up the frequency of that core.\n\nThe cpu counters are read via /dev/cpu/x/msr, so requires the\nmsr kernel module to be loaded. Because this method is used,\nthe patch set is implemented with one file for x86 systems, and\nanother for non-x86 systems, with conditional compilation in\nthe Makefile. The non-x86 functions are stubs, and do not\ncurrently implement any functionality.\n\nThe vm_power_manager app has been modified to take a new parameter\n   --core-list or -l\nwhich takes a list of cores in a comma-separated list format,\ne.g. 1,3,5-7,9, which resolvest to a core list of 1,3,5,6,7,9\nThese cores will then be enabled for oob monitoring. When the\nOOB monitoring thread starts, it reads the branch hits/miss\ncounters of each monitored core, and scales up/down accordingly.\n\n[1/6] examples/vm_power: add check for port count\n[2/6] examples/vm_power: add core list parameter\n[3/6] examples/vm_power: add oob monitoring functions\n[4/6] examples/vm_power: allow greater than 64 cores\n[5/6] examples/vm_power: add thread for oob core monitor\n[6/6] examples/vm_power: add port-list to command line"