Messages in this thread | | | Subject | Re: A concern about overflow ring buffer mode | From | "Liang, Kan" <> | Date | Fri, 26 Oct 2018 16:11:51 -0400 |
| |
On 10/26/2018 3:24 PM, Arnaldo Carvalho de Melo wrote: > Em Fri, Oct 26, 2018 at 03:16:29PM -0400, Liang, Kan escreveu: >> >> >> On 10/26/2018 3:12 PM, Arnaldo Carvalho de Melo wrote: >>> Em Fri, Oct 26, 2018 at 03:07:40PM -0400, Liang, Kan escreveu: >>>> On 10/26/2018 3:02 PM, Arnaldo Carvalho de Melo wrote: >>>>> So, I'm adding the following to my tree to help in diagnosing problems >>>>> with this overwrite mode: >>>> Actually, you can use per-event overwrite term to disable overwrite mode for >>>> perf top. > <SMIP> >>> I see, it will disable that opts->overwrite if it finds the no-overwrite >>> in the per-event definition, so the equivalent of the option I added >>> below: > >>> perf top --no-overwrite > >>> is: > >>> perf top -e cycles/no-overwrite/ > >>> I checked and both have the same result. But I still think there is >>> value in having the shorter form, ok? > >> Sure. > > Ok. > > I think that we should default back to --no-overwrite till we get this > sorted out, as the effect is easily noticeable, as David reported and I > reproduced, when doing kernel builds.
It is mainly for performance reason to switch to overwrite mode. The impact was very small when I did my test. But now the effect is easily noticeable in other tests. Yes, I agree. We may change it back to non-overwrite mode until the issue is addressed.
> > On systems such as Knights Landing/Mill one can use --overwrite, knowing > about this current map resolving limitation, i.e. for workloads where > there are not that many short lived threads or mmap'ing, that could be > possibly tolerable.
Could you please add this in the description of --overwrite? It looks like the --overwrite is not default anymore. +--overwrite:: + This is the default, but for investigating problems with it or any other strange + behaviour like lots of unknown samples, we may want to disable this mode by using + --no-overwrite.
> > Fixing this properly will probably involve using the ordered_events code > and two evlist, one for the PERF_RECORD_!SAMPLE in non-overwrite mode > and the other for PERF_RECORD_SAMPLE in overwrite mode, else someone > comes up with some better solution :-) >
Supporting both overwrite and non-overwrite mode? I think that needs some changes in kernel. May need to split the ring buffer for different mode. I think it should be very complex. But I don't have a better solution for now. :)
Thanks, Kan
| |