Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754051AbbGXCXd (ORCPT ); Thu, 23 Jul 2015 22:23:33 -0400 Received: from mail-yk0-f179.google.com ([209.85.160.179]:33996 "EHLO mail-yk0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752394AbbGXCXb (ORCPT ); Thu, 23 Jul 2015 22:23:31 -0400 Subject: Re: [PATCH v3 3/3] samples/bpf: example of get selected PMU counter value To: xiakaixu References: <1437644562-84431-1-git-send-email-xiakaixu@huawei.com> <1437644562-84431-4-git-send-email-xiakaixu@huawei.com> <55B171EB.30203@plumgrid.com> <55B19AB9.3090100@huawei.com> Cc: davem@davemloft.net, acme@kernel.org, mingo@redhat.com, a.p.zijlstra@chello.nl, masami.hiramatsu.pt@hitachi.com, jolsa@kernel.org, wangnan0@huawei.com, linux-kernel@vger.kernel.org, pi3orama@163.com, hekuang@huawei.com From: Alexei Starovoitov Message-ID: <55B1A1A0.7000808@plumgrid.com> Date: Thu, 23 Jul 2015 19:23:28 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 In-Reply-To: <55B19AB9.3090100@huawei.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1276 Lines: 32 On 7/23/15 6:54 PM, xiakaixu wrote: > 于 2015/7/24 6:59, Alexei Starovoitov 写道: >> On 7/23/15 2:42 AM, Kaixu Xia wrote: >>> This is a simple example and shows how to use the new ability >>> to get the selected Hardware PMU counter value. >>> >>> Signed-off-by: Kaixu Xia >> ... >>> +struct bpf_map_def SEC("maps") my_map = { >>> + .type = BPF_MAP_TYPE_PERF_EVENT_ARRAY, >>> + .key_size = sizeof(int), >>> + .value_size = sizeof(unsigned long), >>> + .max_entries = 32, >>> +}; >> >> wait. how did it work here? value_size should be u32. > > I tested the whole thing on ARM board. You are ringt, it > should be u32. > When create the array map, we choose the array->elem_size as > round_up(attr->value_size, 8), why 8? because from user space point of view we're storing FDs which are u32, but kernel stores pointers. but round_up(attr->value_size, 8) is done because there can be 8 byte fields in there and we have 8-byte load/store insns. So whether pointer is 32 or 64-bit they still fit. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/