Show a cover letter.

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

{
    "id": 809046,
    "url": "http://patchwork.ozlabs.org/api/covers/809046/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/cover/20170902054824.371962-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": "<20170902054824.371962-1-yhs@fb.com>",
    "list_archive_url": null,
    "date": "2017-09-02T05:48:20",
    "name": "[v2,net-next,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/20170902054824.371962-1-yhs@fb.com/mbox/",
    "series": [
        {
            "id": 1139,
            "url": "http://patchwork.ozlabs.org/api/series/1139/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=1139",
            "date": "2017-09-02T05:48:21",
            "name": "bpf: add two helpers to read perf event enabled/running time",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/1139/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/809046/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=\"W9hQGUJd\";\n\tdkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xklXc3dvBz9s78\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat,  2 Sep 2017 15:48:48 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752203AbdIBFsk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 2 Sep 2017 01:48:40 -0400",
            "from mx0b-00082601.pphosted.com ([67.231.153.30]:56704 \"EHLO\n\tmx0a-00082601.pphosted.com\" rhost-flags-OK-OK-OK-FAIL)\n\tby vger.kernel.org with ESMTP id S1750989AbdIBFs1 (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sat, 2 Sep 2017 01:48:27 -0400",
            "from pps.filterd (m0001255.ppops.net [127.0.0.1])\n\tby mx0b-00082601.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv8259ZSf003173\n\tfor <netdev@vger.kernel.org>; Fri, 1 Sep 2017 22:48:25 -0700",
            "from mail.thefacebook.com ([199.201.64.23])\n\tby mx0b-00082601.pphosted.com with ESMTP id 2cqe04h6yb-2\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT)\n\tfor <netdev@vger.kernel.org>; Fri, 01 Sep 2017 22:48:25 -0700",
            "from mx-out.facebook.com (192.168.52.123) by\n\tPRN-CHUB05.TheFacebook.com (192.168.16.15) with Microsoft SMTP Server\n\tid 14.3.319.2; Fri, 1 Sep 2017 22:48:25 -0700",
            "by devbig474.prn1.facebook.com (Postfix, from userid 128203)  id\n\t6382E46E047A; Fri,  1 Sep 2017 22:48:24 -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=ft508OK9706FThPVhtzwYKumaBiWMw3ZzAPn6h9qXEU=;\n\tb=W9hQGUJdSpjFAn7N90KoE5a523g3l7sbEWSdrg2RaaEX9KMYi4NsIpDwOdAaciuwltmO\n\tRxvHJyZqZZjijFyqS/Thap/o3bbDcUjNtaq82h84OhmFRjN9wzbLV27LBMdBrnKjGcfF\n\tLYr6VS0GkZm1CHDgadDqg/Vfk6S4BahoCpg= ",
        "X-ThriftRelayHost": "devbig474.prn1.facebook.com",
        "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 v2 net-next 0/4] bpf: add two helpers to read perf event\n\tenabled/running time",
        "Date": "Fri, 1 Sep 2017 22:48:20 -0700",
        "Message-ID": "<20170902054824.371962-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-02_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_read_counter_time reads counter/time_enabled/time_running\nfor perf event array map. The helper bpf_perf_prog_read_time read\ntime_enabled/time_running for bpf prog with type BPF_PROG_TYPE_PERF_EVENT.\n\nYonghong Song (4):\n  bpf: add helper bpf_perf_read_counter_time for perf event array map\n  bpf: add a test case to read enabled/running time for perf array\n  bpf: add helper bpf_perf_prog_read_time\n  bpf: add a test case for helper bpf_perf_prog_read_time\n\n include/linux/perf_event.h                |  4 +-\n include/uapi/linux/bpf.h                  | 29 ++++++++++++-\n kernel/bpf/arraymap.c                     |  2 +-\n kernel/bpf/verifier.c                     |  4 +-\n kernel/events/core.c                      | 20 ++++++---\n kernel/trace/bpf_trace.c                  | 67 +++++++++++++++++++++++++++++--\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/testing/selftests/bpf/bpf_helpers.h |  7 ++++\n 11 files changed, 175 insertions(+), 20 deletions(-)"
}