> This is all fascinating, and I'm not totally dismissing that something is happening here.<p>Qualcomm devices have a hardware random device, which when coupled with the qrngd daemon feeds the kernel entropy pool. In normal operation of Android, I <i>never</i> see this pool actually get low unless running the qrngtest tool, in which case qrngd just fills it right back up.<p>Looking in drivers/char/random.c though, the functions which are called in the interrupt, input, and block device paths have an inner function add_timer_randomness which calls preempt_disable().<p>As a totally non scientific test, I turned all of these functions into no-ops and recompiled. This way, we're ONLY relying on the hardware RNG.<p>There's no change in entropy available because random numbers really just aren't being used all that often.<p>But now, I'm seeing a modest increase in interactivity on the device. Certain things feel smoother, and there is less UI jank. There's no change in frequency scaling or power usage as proposed earlier. qrngtest passes just fine as well.<p>What's going on here? I'm not entirely sure. We're either all crazy, or this is tickling a subtle scheduling bug in the kernel. More investigation is needed. [1]<p>[1] Steve Kondik (CyanogenMod maintainer) <a href="https://code.google.com/p/android/issues/detail?id=42265#c114" rel="nofollow">https://code.google.com/p/android/issues/detail?id=42265#c11...</a>