Show a cover letter.

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

{
    "id": 816027,
    "url": "http://patchwork.ozlabs.org/api/covers/816027/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/cover/20170920060935.1102268-1-yhs@fb.com/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170920060935.1102268-1-yhs@fb.com>",
    "list_archive_url": null,
    "date": "2017-09-20T06:09:31",
    "name": "[net-next,v5,0/4] bpf: add two helpers to read perf event enabled/running time",
    "submitter": {
        "id": 71628,
        "url": "http://patchwork.ozlabs.org/api/people/71628/?format=api",
        "name": "Yonghong Song",
        "email": "yhs@fb.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/cover/20170920060935.1102268-1-yhs@fb.com/mbox/",
    "series": [
        {
            "id": 4026,
            "url": "http://patchwork.ozlabs.org/api/series/4026/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=4026",
            "date": "2017-09-20T06:09:31",
            "name": "bpf: add two helpers to read perf event enabled/running time",
            "version": 5,
            "mbox": "http://patchwork.ozlabs.org/series/4026/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/816027/comments/",
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=fb.com header.i=@fb.com header.b=\"luyDE3Il\";\n\tdkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xxq8Q08wdz9s7c\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 20 Sep 2017 16:09:42 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751791AbdITGJk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 20 Sep 2017 02:09:40 -0400",
            "from mx0a-00082601.pphosted.com ([67.231.145.42]:54092 \"EHLO\n\tmx0a-00082601.pphosted.com\" rhost-flags-OK-OK-OK-OK)\n\tby vger.kernel.org with ESMTP id S1751503AbdITGJh (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 20 Sep 2017 02:09:37 -0400",
            "from pps.filterd (m0109333.ppops.net [127.0.0.1])\n\tby mx0a-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8K64PdK003053\n\tfor <netdev@vger.kernel.org>; Tue, 19 Sep 2017 23:09:37 -0700",
            "from mail.thefacebook.com ([199.201.64.23])\n\tby mx0a-00082601.pphosted.com with ESMTP id 2d39seam4h-1\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT)\n\tfor <netdev@vger.kernel.org>; Tue, 19 Sep 2017 23:09:37 -0700",
            "from mx-out.facebook.com (192.168.52.123) by\n\tPRN-CHUB06.TheFacebook.com (192.168.16.16) with Microsoft SMTP Server\n\tid 14.3.319.2; Tue, 19 Sep 2017 23:09:36 -0700",
            "by devbig474.prn1.facebook.com (Postfix, from userid 128203)  id\n\t76C3746E07D0; Tue, 19 Sep 2017 23:09:35 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com;\n\th=from : to : cc : subject\n\t: date : message-id : mime-version : content-type; s=facebook;\n\tbh=HqIDtd2nt1jKFmlR8+CMTBJc3SyHP1W6YSbPwsbuaDM=;\n\tb=luyDE3IlKzRcV2vm+l2FJ+NhiAP5ErpyTE9cLsoKOLyrkl4fzwM9GbmS/c6O6CVkZ8i4\n\tX0B+vgD7VeLiqOD7UBOFTvUfLO/up5CO8ep+8aRcZlFqZVwUrXNLsUlsVJEBp20GYejP\n\t+gfCZa9Jh4pluIHSVSPEKvwGMr+g/t+KRFo= ",
        "Smtp-Origin-Hostprefix": "devbig",
        "From": "Yonghong Song <yhs@fb.com>",
        "Smtp-Origin-Hostname": "devbig474.prn1.facebook.com",
        "To": "<peterz@infradead.org>, <rostedt@goodmis.org>, <ast@fb.com>,\n\t<daniel@iogearbox.net>, <netdev@vger.kernel.org>",
        "CC": "<kernel-team@fb.com>",
        "Smtp-Origin-Cluster": "prn1c29",
        "Subject": "[PATCH net-next v5 0/4] bpf: add two helpers to read perf event\n\tenabled/running time",
        "Date": "Tue, 19 Sep 2017 23:09:31 -0700",
        "Message-ID": "<20170920060935.1102268-1-yhs@fb.com>",
        "X-Mailer": "git-send-email 2.9.5",
        "X-FB-Internal": [
            "Safe",
            "Safe"
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Proofpoint-Spam-Reason": "safe",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-20_01:, , signatures=0",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "Hardware pmu counters are limited resources. When there are more\npmu based perf events opened than available counters, kernel will\nmultiplex these events so each event gets certain percentage\n(but not 100%) of the pmu time. In case that multiplexing happens,\nthe number of samples or counter value will not reflect the\ncase compared to no multiplexing. This makes comparison between\ndifferent runs difficult.\n\nTypically, the number of samples or counter value should be\nnormalized before comparing to other experiments. The typical\nnormalization is done like:\n  normalized_num_samples = num_samples * time_enabled / time_running\n  normalized_counter_value = counter_value * time_enabled / time_running\nwhere time_enabled is the time enabled for event and time_running is\nthe time running for event since last normalization.\n \nThis patch set implements two helper functions.\nThe helper bpf_perf_event_read_value reads counter/time_enabled/time_running\nfor perf event array map. The helper bpf_perf_prog_read_value read\ncounter/time_enabled/time_running for bpf prog with type BPF_PROG_TYPE_PERF_EVENT.\n \nChangelogs:\nv4->v5:\n  . fix some coding style issues\n  . memset the input buffer in case of error for ARG_PTR_TO_UNINIT_MEM\n    type of argument.\nv3->v4:\n  . fix a build failure\nv2->v3:\n  . counters should be read in order to read enabled/running time. This is to\n    prevent that counters and enabled/running time may be read separately.\nv1->v2:\n  . reading enabled/running time should be together with reading counters\n    which contains the logic to ensure the result is valid.\n\nYonghong Song (4):\n  bpf: add helper bpf_perf_event_read_value for perf event array map\n  bpf: add a test case for helper bpf_perf_event_read_value\n  bpf: add helper bpf_perf_prog_read_value\n  bpf: add a test case for helper bpf_perf_prog_read_value\n\n include/linux/perf_event.h                |  7 ++-\n include/uapi/linux/bpf.h                  | 27 ++++++++++-\n kernel/bpf/arraymap.c                     |  2 +-\n kernel/bpf/verifier.c                     |  4 +-\n kernel/events/core.c                      | 16 +++++--\n kernel/trace/bpf_trace.c                  | 74 ++++++++++++++++++++++++++++---\n samples/bpf/trace_event_kern.c            | 10 +++++\n samples/bpf/trace_event_user.c            | 13 +++---\n samples/bpf/tracex6_kern.c                | 26 +++++++++++\n samples/bpf/tracex6_user.c                | 13 +++++-\n tools/include/uapi/linux/bpf.h            |  4 +-\n tools/testing/selftests/bpf/bpf_helpers.h |  6 +++\n 12 files changed, 182 insertions(+), 20 deletions(-)"
}