Messages in this thread | | | Date | Mon, 30 Jan 2023 10:56:49 +0000 | Subject | Re: [PATCH 0/4] perf intel-pt: Fix the pipe mode (v1) | From | James Clark <> |
| |
On 27/01/2023 23:08, Namhyung Kim wrote: > Hi James, > > On Fri, Jan 27, 2023 at 6:42 AM James Clark <james.clark@arm.com> wrote: >> >> >> >> On 27/01/2023 07:22, Adrian Hunter wrote: >>> On 27/01/23 02:19, Namhyung Kim wrote: >>>> Hello, >>>> >>>> I found some problems in Intel-PT and auxtrace in general with pipe. >>>> In the past it used to work with pipe, but recent code fails. >>> >>> Pipe mode is a problem for Intel PT and possibly other auxtrace users. >> >> Just some info from my side: For Arm Coresight we ended up deprecating >> pipe mode, then not supporting it altogether. First was when we added an >> optional step to peek through all of the data to help with an edge case. >> Then we added a requirement to receive a HW_ID packet before decoding >> which necessitated the peek. You can't peek in pipe mode because you >> need to be able to seek, so it's not supported at all anymore. >> >> For Arm SPE I never tested it with piped data. I suppose I could add a >> test at some point, but I don't really see the usecase. > > Yeah, it'd be great if we can have a test for Arm SPE. >
Ok thanks I will put it on the list of things to do.
> Anyway, my work env (Google) requires the pipe mode due to the > restriction in disk usage. Without the pipe support, it's not possible > to run `perf record` in production. >
Makes sense. Unfortunately at the moment with Coresight, because of the lack of appropriate timestamps we're waiting for the end of the file before starting decoding. So you're not really any better off using piped mode, unless you have a lot more memory than disk space?
Since this commit [1] and Arm v8.4 we can actually start making use of the timestamps and do a streaming decode again. So I will also add it to the list to look into that for Coresight again. Are you using an old version of Perf or not using Coresight at all? I know Denis at Google is using Coresight, but only with files rather than pipes.
One other thing, have you used the --switch-output mode to perf record before? I would have said it would give you some of the benefits of piped mode, but is more likely to work with Coresight. But last time I checked it's not working either. Not very helpful I know, but something to keep in mind.
James
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=a7fe9a443b6064c68f86a2ee09bdfa7736660ef3
| |