Comment 4 for bug 45404

Revision history for this message
Paul Sladen (sladen) wrote :

If you do an 'strace' you can capture what it's doing; which is a series of four nvram reads and then a what.

It maybe the result of a slow/blocking embedded controller (keyboard controller); IIRC the way that you interface with this chip is:

  1) Write to [index] register.
  2) Loop, polling whether the top bit is flipped.
  3) Read value from the [data] register.

There's two things it maybe related to as a result:

  a) We use non-blocking I/O as otherwise you get cached/previous results returned (which defeats the point...)
  b) The kernel driver using a non-yielding micro-sleep for the polling loop.

And somehow the latter (or both) maybe exacerpated by polling.