Instrumentation work

Wednesday, June 7, 2017

Mostly worked on two different instrumentation aspects: flight recorder and the tracing options for Spice.

Flight recorder

I'm trying to provide channels that can be read externally. I would like to be able to get a good graphical or text view of things that are currently a bit hard to analyze in Spice IMO, like which frames do we receive and how do we decode them.

Tracing options

Spent much more time than I expected answering questions about the RFC mail I sent yesterday regarding tracing options in spice.

The response to that RFC was less than enthusiastic, to put it mildly. Something along the lines of "I'd rather do something entirely different and mostly unrelated".

This reeks of deja-vu for me. It's probably the fifth time I expose this mechanism to a new team. Last time was less than 2 years ago at DxO. And every time, I hear the same objections, with seemingly infinite creativity to find variations:

  • Why don't you stick to printf / glib logging / serial port?
  • Why don't you use python / dtrace / systemtap / whatever. The answer being that it's much slower, and does not do half of what I need.
  • Why would you want to have tunables mixed with debugging code?

I should be used to getting these objections by now, but no matter what, the reaction still manages to surprise me every single time.

This time I called non-boolean options tweaks instead of tunables, because I noticed that TWEAK and TRACE have the same number of characters, which is neat for alignment. And it also begins with 't', which means I can share the -t command-line option, something that is not true for KNOB or OPTION. Oh, and that little thing that I keep writing TUNEABLE, which apparently looks incorrect to americans.

Not invented here?

I believe that behind the negativity of the responses lies a deep belief all humans share that we do the right thing, and therefore that "we can't have done something wrong all this time, so anything different must be bad." Sometimes called the "Not invented here" syndrom.

This is bogus twice:

  • First because an improvement does not mean that what you did earlier was wrong. At worst, it was not optimal.
  • Second because nothing we do is perfect, so believing it's impossible to improve over it is clearly bogus.

Of course, I'm sure that if I asked anybody (myself included) if they suffer from the not-invented-here syndrom, they would vehemently deny it.