[Development] QtCS 2017 logging/tracing session notes

Thiago Macieira thiago.macieira at intel.com
Tue Oct 10 16:28:13 CEST 2017


On Tuesday, 10 October 2017 15:12:52 CEST Christian Gagneraud wrote:
> On 10 October 2017 at 22:48, Thiago Macieira <thiago.macieira at intel.com> 
wrote:
> > do not change qdebug but provide structured tracing as a new facility
> 
> Any chance this can be made lock-free from a caller point of view?

No, we cannot provide a lock-free solution. There's a lot of global state that 
needs to be queried so I don't think there's a solution that won't involve a 
QMutex.

I'm talking about the implementation. User code should never need to use 
QMutex.

> (PS: I don't even know if qDebug streaming is lock-free and i'm
> interested to know the answer:))

It's not. There are mutexes inside.

> A lock-free callee site has the advantage of not influencing (much)
> multi-threading issues. Observing is disturbing as they say.

Which is why it's not going to be lock-free. Even printf has a lock.

> Could this "Structured logging" be it?
> I have as well investigated LTTng, but didn't like their userspace
> boiler plate. In the past, I used LTT in kernel mode and it was very
> simple (LTT was originally made for the Linux Kernel).  My (personal)
> conclusion is: if in userspace, better implement your own solution.

Not sure. I looked at the proposed LTTng support for Qt and though it looks 
interesting but didn't like the boilerplate either.

> Looking quickly at the code review, I can see that a very few qtbase
> source files have been patched, and a new tool has been added.

That's just proof of concept. The idea was to work on more tracepoints and 
more types after the base functionality got merged.

> Could this "Structured logging" provide something along the lines of
> event handler and event dispatcher profiling/tracing?

Possibly, I'm not sure. We concluded during the session we needed more 
investigation.


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list