Comment 81 for bug 101943

Revision history for this message
Noel J. Bergman (noeljb) wrote : Re: braid screensaver crashes system with compiz activated

I've been spending some time with the code today, and the problem seems related and proportional to the "cycles" option.

Running braid from the command line:

 $ ./braid [the default is 100 cycles]
 braid: warning: only 4% idle over the last 10 secs (at 41.5 FPS)
 braid: warning: only 6% idle over the last 10 secs (at 61.3 FPS)
 braid: warning: blocked event processing for 22.1 secs!
 braid: warning: only 2% idle over the last 32 secs (at 18.5 FPS)

 $ ./braid -cycles 1000
 braid: warning: only 4% idle over the last 10 secs (at 35.4 FPS)
 braid: warning: only 3% idle over the last 10 secs (at 27.9 FPS)
 braid: warning: only 2% idle over the last 10 secs (at 23.0 FPS)
 braid: warning: only 3% idle over the last 10 secs (at 30.0 FPS)
 braid: warning: blocked event processing for 97.9 secs!
 braid: warning: only 0% idle over the last 108 secs (at 1.0 FPS)

But ...

 $ ./braid -cycles 10 -- about 50% CPU
 $ ./braid -cycles 1 -- about 25% CPU

The only thing that cycles appears to impact is how often draw_braid calls braid-erase() and init_braid, and I haven't had time to figure out why doing that more often results in lower CPU usage. Nor have I figured out why

 $ nice -n 15 ./helios
 $ nice -n 15 ./braid -delay 10000 -cycles 2

exhibit totally different behavior, with the former (and every other screensaver) showing CPU consumption in nice, and the latter not.