Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752234AbbEZRuy (ORCPT ); Tue, 26 May 2015 13:50:54 -0400 Received: from mail-pd0-f169.google.com ([209.85.192.169]:33773 "EHLO mail-pd0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752105AbbEZRuw (ORCPT ); Tue, 26 May 2015 13:50:52 -0400 Message-ID: <5564B279.2090809@plumgrid.com> Date: Tue, 26 May 2015 10:50:49 -0700 From: Alexei Starovoitov User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: He Kuang , Masami Hiramatsu , wangnan0@huawei.com, paulus@samba.org, a.p.zijlstra@chello.nl, mingo@redhat.com, acme@kernel.org, namhyung@kernel.org, jolsa@kernel.org, dsahern@gmail.com, brendan.d.gregg@gmail.com, daniel@iogearbox.net CC: lizefan@huawei.com, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v2 09/15] perf probe: Support $params without debuginfo References: <1432456091-73384-1-git-send-email-hekuang@huawei.com> <1432456091-73384-10-git-send-email-hekuang@huawei.com> <556190AA.10406@hitachi.com> <5562DE44.4010601@huawei.com> In-Reply-To: <5562DE44.4010601@huawei.com> Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1459 Lines: 30 On 5/25/15 1:33 AM, He Kuang wrote: > Right, I learnt regparm(3) is mandatory in x86_32, according to rules, > the first three args will go to regparm(ax, dx, cx). But we should not > refer arg1~3 to ax, dx, cx because of 64bit parameters (other reasons?). > > Consider this keyword is used for generating bpf prologue which fetches > formal parameters when no debuginfo is provided, for this purpose, we can: > 1) We just help fetch the $regs or $regparms(If the keyword is > $regparms, ax/dx/cx is fetched, nothing related to args) to bpf arglists > and leave the rest things to bpf prog writer. > > 2) Keep that on platforms like x86_64 and skip this feature on > platforms like x86_32. > > or any other suggestions? Single argument like $regparam or whatever name cannot work on all architectures, that's why in the very beginning I suggested 'func(long, char, void*)' syntax to describe arguments when debuginfo is not available. Calling convention for scalars is simple enough on all major architectures. x64_64 - trivial, i64_32 - a bit more involved, but simple enough so that list of types of arguments is enough to figure out which register or register pair or stack should be used to fetch argN. -- 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/