Messages in this thread | | | Date | Thu, 27 Oct 2016 10:46:38 +0200 | From | Pavel Machek <> | Subject | Re: Getting interrupt every million cache misses |
| |
Hi!
> > I'd like to get an interrupt every million cache misses... to do a > > printk() or something like that. As far as I can tell, modern hardware > > should allow me to do that. AFAICT performance events subsystem can do > > something like that, but I can't figure out where the code is / what I > > should call. > > > > Can someone help? > > Can you go back one step and explain why you would want this? What use > is a printk() on every 1e6-th cache miss.
First, thanks for quick reply.
And actually, printk() is not needed, udelay(50msec) is. Reason is, that DRAM becomes unreliable if about milion cache misses happen in under 64msec -- so I'd like to slow the system down in such cases to prevent bug from biting me.
(Details are here https://googleprojectzero.blogspot.cz/2015/03/exploiting-dram-rowhammer-bug-to-gain.html ). Bug is exploitable to get local root; it is also exploitable to gain local code execution from javascript... so it is rather severe.
> That is, why doesn't: > > $ perf record -e cache-misses -c 1000000 -a -- sleep 5 > > suffice?
Thanks for the pointer... I'd really like to do this from kernel, so that I can "almost synchronously" stop the execution when excessive cache isses happen.
Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html [unhandled content-type:application/pgp-signature] | |