[ 
https://issues.apache.org/jira/browse/MESOS-4705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15227744#comment-15227744
 ] 

haosdent commented on MESOS-4705:
---------------------------------

[~bmahler] Thanks for your comments. As I checked in 
https://reviews.apache.org/r/43283 before. The {{perf stat}} output become from 
3 to 4 tokens are after this commit [tools/perf/stat: Add event unit and scale 
support | 
https://github.com/torvalds/linux/commit/410136f5dd96b6013fe6d1011b523b1c247e1ccb]
 which appears since 3.14 in mainline. And it become from 4 to 6 tokens are 
after this commit [perf stat: Output running time and run/enabled ratio in CSV 
mode | 
https://github.com/torvalds/linux/commit/d73515c03c6a2706e088094ff6095a3abefd398b]
 which appears since 4.1 in mainline.

However, CentOS 7 backported these patches to its current kernel version(3.10)
{code}
kernel>c7$: grep 'Add event unit and scale support' SPECS/kernel.spec
- [tools] perf/stat: Add event unit and scale support (Jiri Olsa) [1133083]
kernel>c7$: grep 'Output running time and run/enabled ratio in CSV mode' 
SPECS/kernel.spec
- [perf] stat: Output running time and run/enabled ratio in CSV mode (Jiri 
Olsa) [1222189]
{code}

This is why I suggested to use [~wangcong]'s perf event api. Because we could 
not determine the perf event format according kernel version. But if we want to 
continue previous way, I think we need make the rule more loose. For example, 
only match perf event format by tokens number instead of check their kernel 
version.

> Slave failed to sample container with perf event
> ------------------------------------------------
>
>                 Key: MESOS-4705
>                 URL: https://issues.apache.org/jira/browse/MESOS-4705
>             Project: Mesos
>          Issue Type: Bug
>          Components: cgroups, isolation
>    Affects Versions: 0.27.1
>            Reporter: Fan Du
>            Assignee: Fan Du
>
> When sampling container with perf event on Centos7 with kernel 
> 3.10.0-123.el7.x86_64, slave complained with below error spew:
> {code}
> E0218 16:32:00.591181  8376 perf_event.cpp:408] Failed to get perf sample: 
> Failed to parse perf sample: Failed to parse perf sample line 
> '25871993253,,cycles,mesos/5f23ffca-87ed-4ff6-84f2-6ec3d4098ab8,10059827422,100.00':
>  Unexpected number of fields
> {code}
> it's caused by the current perf format [assumption | 
> https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob;f=src/linux/perf.cpp;h=1c113a2b3f57877e132bbd65e01fb2f045132128;hb=HEAD#l430]
>  with kernel version below 3.12 
> On 3.10.0-123.el7.x86_64 kernel, the format is with 6 tokens as below:
> value,unit,event,cgroup,running,ratio
> A local modification fixed this error on my test bed, please review this 
> ticket.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to