lkml.org 
[lkml]   [2013]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 7/9] perf tools: add support for reading from /proc/kcore
On 30/07/2013 7:37 a.m., Namhyung Kim wrote:
> Hi,
>
> On Thu, 25 Jul 2013 17:01:28 +0300, Adrian Hunter wrote:
>> In the absence of vmlinux, perf tools uses kallsyms
>> for symbols. If the user has access, now also map to
>> /proc/kcore.
>>
>> The dso data_type is now set to either
>> DSO_BINARY_TYPE__KCORE or DSO_BINARY_TYPE__GUEST_KCORE
>> as approprite.
>
> [SNIP]
>> +
>> +static bool is_host_buildid_str(const char *str)
>> +{
>> + u8 host_build_id[BUILD_ID_SIZE];
>> + char host_build_id_str[BUILD_ID_SIZE * 2 + 1];
>> +
>> + if (sysfs__read_build_id("/sys/kernel/notes", host_build_id,
>> + sizeof(host_build_id)))
>> + return false;
>> +
>> + build_id__sprintf(host_build_id, sizeof(host_build_id),
>> + host_build_id_str);
>> +
>> + return !strcmp(str, host_build_id_str);
>> +}
>> +
>> +/*
>> + * If kallsyms is referenced by name then we look for kcore in the same
>> + * directory. Otherwise we use /proc/kcore but only if the buildid matches the
>> + * host.
>> + */
>> +static bool kcore_filename_from_kallsyms_filename(char *kcore_filename,
>> + const char *kallsyms_filename)
>> +{
>> + char *name;
>> +
>> + strcpy(kcore_filename, kallsyms_filename);
>> + name = strrchr(kcore_filename, '/');
>> + if (!name)
>> + return false;
>> +
>> + if (!strcmp(name, "/kallsyms")) {
>> + strcpy(name, "/kcore");
>> + return true;
>> + }
>> +
>> + if (is_host_buildid_str(name)) {
>
> IIUC the name should start with '/' but build-id is not. So doesn't it
> always fail?

In fact I realized the whole thing is not necessary. Fixed in V2.

>
> Thanks,
> Namhyung
>
>
>> + strcpy(kcore_filename, "/proc/kcore");
>> + return true;
>> + }
>> +
>> + return false;
>> +}



\
 
 \ /
  Last update: 2013-07-31 00:21    [W:0.551 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site