freebsd-dev/sys/amd64/isa
Attilio Rao 4486adc51f Currently the LO_NOPROFILE flag (which is masked on upper level code by
per-primitive macros like MTX_NOPROFILE, SX_NOPROFILE or RW_NOPROFILE) is
not really honoured. In particular lock_profile_obtain_lock_failure() and
lock_profile_obtain_lock_success() are naked respect this flag.
The bug leads to locks marked with no-profiling to be profiled as well.
In the case of the clock_lock, used by the timer i8254 this leads to
unpredictable behaviour both on amd64 and ia32 (double faults panic,
sudden reboots, etc.). The amd64 clock_lock is also not marked as
not profilable as it should be.
Fix these bugs adding proper checks in the lock profiling code and at
clock_lock initialization time.

i8254 bug pointed out by: kris
Tested by: matteo, Giuseppe Cocomazzi <sbudella at libero dot it>
Approved by: jeff (mentor)
Approved by: re
2007-09-14 01:12:39 +00:00
..
atpic_vector.S Newer versions of gcc don't support treating structures passed by value 2006-12-17 06:48:40 +00:00
atpic.c Minor fixes and tweaks to the x86 interrupt code: 2007-05-08 21:29:14 +00:00
clock.c Currently the LO_NOPROFILE flag (which is masked on upper level code by 2007-09-14 01:12:39 +00:00
elcr.c JumboMFi386: use bitmapped IPI handler. Update elcr and default mptable 2005-01-21 06:01:20 +00:00
icu.h Evidently neither GENERIC nor kan's config had isa in it :-0. As 2006-12-17 21:51:44 +00:00
isa_dma.c - Move bus dependent defines to {isa,cbus}_dmareg.h. 2005-05-14 10:14:56 +00:00
isa.c o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
isa.h - Move bus dependent defines to {isa,cbus}_dmareg.h. 2005-05-14 10:14:56 +00:00
nmi.c MFi386: numerous interrupt and acpi updates 2004-05-16 20:30:47 +00:00