Re: [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* H. Peter Anvin <hpa@xxxxxxxxx> wrote:

> Mathieu Desnoyers wrote:
> >>>
> >> Writing control registers is serializing, so it's a lot more expensive
> >> than writing a normal register; my *guess* is that it will be on the
> >> order of 100-200 cycles.
> >>
> >> That is not based on any actual information.
> >>
> > 
> > Then how about just writing to the cr2 register *if* it has changed
> > while the NMI handler was running ?
> > 
> > if (unlikely(read_cr2() != saved_cr2)))
> > 	write_cr2(saved_cr2)
> > 
> > Mathieu
> > 
> 
> That works fine, obviously, and although it's probably overkill 
> it's also a trivially cheap optimization.

Writing cr2 costs 84 cycles so it's not overkill at all - it's a 
nice optimization!

Btw., we dont have to re-read it - we actually _know_ when we got a 
fault (the fault handler gives us back an error code).

So we can do this common optimization and avoid the cr2 write 
usually. We only need the cr2 read.

Hm, tempting ...

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux