Re: [PATCH] trace-cmd: Try alternate path for message cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 4, 2022 at 5:35 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> On Mon, 4 Apr 2022 16:48:11 +0300
> Tzvetomir Stoyanov <tz.stoyanov@xxxxxxxxx> wrote:
>
> > > > > Hi  Joel,
> > > > > That cache file is used for constructing the trace meta-data on the
> > > > > guest, before sending it to the host. Usually it is compressed, but it
> > > > > could be uncompressed in some cases (depending on the configuration) -
> > > > > and in that case it can grow up to a few megabytes. Using memfd is ok
> > > > > in most cases, but I'm wondering in the worst case - these few
> > > > > megabytes could be a problem, especially if the guest runs with a
> > > > > minimum amount of memory.
> > > > >
> > > >
> > > > Can you check that file size on your Android setup with that command,
> > > > it will force to not use compression on the guest trace file:
> > > >    trace-cmd <host trace options> -A <guest> <guest trace options>
> > > > --file-version 7 --compression none
> > >
> > > The file grows to 5.3MB with this. Is this really the common case
> > > though? If not, I would still prefer memfd tbh. Is that Ok with you?
>
> This is meta data right? Which means everything in here is in kernel memory
> anyway. kallsyms, events, etc. I do not believe that this will be an issue
> even uncompressed.
>
>
> > >
> >
> > There are two cases that could hit this:
> >  1. Using a " --compression none" flag on the guest file. We could
> > disable that flag and force trace file v7 always to use compression. I
> > cannot imagine a use case for uncompressed trace file, maybe only for
> > debug purposes ?
>
> Please no. I do have some machines that do not have zlib installed. I do
> not want to make it a requirement to have zlib for this use case. If we do
> not have memory, we could fall back to mktemp.

Hi Steven,
I'm wondering how you run the latest trace-cmd on those machines ? As
these libraries are checked at compile time, this is a compile time
dependency - so the trace-cmd compiled with zlib support should not be
able to run there ? That's why I think   " --compression none" could
be used only for debugging.
We could implement loading compression libraries dynamically to avoid
these compile time dependencyies, or add a compile flag to disable
compression support ?

>
> >  2. If, for some reason, there are no supported compression libraries
> > on the guest. Trace-cmd supports libz and libzstd, I believe both are
> > widely available. Theoretically it could be possible to have some
> > minimalistic VM image without any of these libraries.
>
> Not theoretical ;-)
>
> > What are the advantages of using memfd instead of temp file, is it
> > only for performance ? Usually collecting trace metadata is not
> > performance critical, as it is done before starting the trace.
> > I think that the best solution is to use memfd in case the guest file
> > is compressed and switch back to a temp file in case of a
> > not-compressed file.
>
> Yeah, we could use memfd if compressed and temp if not. Luckily, this isn't
> something exposed across the API so we should be able to experiment with
> various implementations, and if people complain about one (like Joel did
> for Android), we can try something else.
>
> -- Steve



-- 
Tzvetomir (Ceco) Stoyanov
VMware Open Source Technology Center



[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux