-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36378/#review92128
-----------------------------------------------------------


Thanks Paul for taking this on!

See my detailed comments. We should first pulling the subprocess logic into 
'perf::execute' first. Then, we can add version support in the subsequent 
patch. I haven't looked at the version stuff yet.


src/linux/perf.cpp (line 162)
<https://reviews.apache.org/r/36378/#comment146076>

    Kill this line.



src/linux/perf.cpp (line 163)
<https://reviews.apache.org/r/36378/#comment146071>

    s/commandResults/Output.



src/linux/perf.cpp (line 165)
<https://reviews.apache.org/r/36378/#comment146072>

    s/exitCode/status/



src/linux/perf.cpp (line 166)
<https://reviews.apache.org/r/36378/#comment146073>

    s/stdOut/out/



src/linux/perf.cpp (lines 166 - 167)
<https://reviews.apache.org/r/36378/#comment146075>

    Do you need std:: prefix in a cpp file? Can you just use 'using 
std::string' in the begining?
    
    Please do a sweep to cleanup all the occurances in this file.



src/linux/perf.cpp (line 167)
<https://reviews.apache.org/r/36378/#comment146074>

    s/stdErr/err/



src/linux/perf.cpp (lines 171 - 173)
<https://reviews.apache.org/r/36378/#comment146070>

    Pulling this out is great! But can we have a patch first to do this 
refactor first, and then add the 'version' stuff in the second patch?



src/linux/perf.cpp (lines 171 - 173)
<https://reviews.apache.org/r/36378/#comment146077>

    I would s/executeCommand/execute/ since you already have a 'cmd' in the 
argument list.
    
    I would rather make this function specific to perf. For example: (no need 
the 'cmd')
    
    When MESOS-3035 gets in, you can just modify perf::execute implementation 
to use that instead.
    
    ```
    perf::execute({"--version"});
    perf::execute({"stat", "--all-cpus"});
    ....
    ```



src/linux/perf.cpp (line 178)
<https://reviews.apache.org/r/36378/#comment146080>

    s/execCmd/s/



src/linux/perf.cpp (lines 179 - 183)
<https://reviews.apache.org/r/36378/#comment146079>

    Please fix the indentation.



src/linux/perf.cpp (line 181)
<https://reviews.apache.org/r/36378/#comment146078>

    Do you need 'stdin'? Should that be Subprocess::PATH("/dev/null")?



src/linux/perf.cpp (line 189)
<https://reviews.apache.org/r/36378/#comment146081>

    No need for this temp variable.



src/linux/perf.cpp (lines 191 - 207)
<https://reviews.apache.org/r/36378/#comment146084>

    As Ben suggested in the email thread, you can do:
    
    ```
    process::await(
        perf.get().status(),
        io::read(perf.get().out().get()),
        io::read(perf.get().err().get()))
      .then([](...) -> Future<Output> { ... });
    ```
    
    You don't need the lambda capture anymore if you wrote code like above. 
Please take a look at 
https://github.com/apache/mesos/blob/master/src/slave/containerizer/isolators/posix/disk.cpp#L428



src/linux/perf.cpp (line 203)
<https://reviews.apache.org/r/36378/#comment146087>

    I would rather let the caller dealing with extracting exit code. So 
returning 'status.get()' is better.



src/linux/perf.cpp (lines 358 - 383)
<https://reviews.apache.org/r/36378/#comment146089>

    Do you want to simplify this as well?
    
    I think 'perf::execute' should use 'setupChild' as well. See the following 
for details:
    
    https://issues.apache.org/jira/browse/MESOS-2462
    https://reviews.apache.org/r/32805/


- Jie Yu


On July 17, 2015, 1:30 a.m., Paul Brett wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36378/
> -----------------------------------------------------------
> 
> (Updated July 17, 2015, 1:30 a.m.)
> 
> 
> Review request for mesos, Ben Mahler, Chi Zhang, Ian Downes, Jie Yu, and Cong 
> Wang.
> 
> 
> Bugs: MESOS-2834
>     https://issues.apache.org/jira/browse/MESOS-2834
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Refactor Linux Performance monitor to handle changing 'perf stat' output 
> versions depending on kernel version.
> 
> 
> Diffs
> -----
> 
>   src/linux/perf.cpp 697b75e846a43d4f106ad8f39a18882836d7dc02 
> 
> Diff: https://reviews.apache.org/r/36378/diff/
> 
> 
> Testing
> -------
> 
> sudo make check
> 
> 
> Thanks,
> 
> Paul Brett
> 
>

Reply via email to