summaryrefslogtreecommitdiff
path: root/sys/arch/i386/include
AgeCommit message (Collapse)Author
2007-06-07Replace magic bus clock constants in est related files with defines.Dimitry Andric
ok jsg
2007-06-01Provide carefully crafted DEADBEEF* values, this was initially forgotten inMiod Vallat
the commit which enabled DEADBEEF* overrides, then values have been discussed a bit more and improved; reminded by and ok art@
2007-05-31Forgot to commit the changes to this file with the rest of the ELF32+64Tom Cosgrove
pieces. Since this is where the "boot both ELF32 and ELF64" behaviour is turned on for i386, it is quite important. Bump version numbers too. Found by ckuethe@; thanks.
2007-05-29add support for core cpu temperature sensors.Ted Unangst
from a diff by pierre riteau, but updated to look like the amd64 version ok deraadt
2007-05-29Remove support for 80386 processors. Apologies if you have one ofTom Cosgrove
the rare 80386-bases system with enough memory, a 387 FPU, a useable disk subsystem, and the patience to wait for it to unpack the distribution .tgz files. approval from art@ and many others (esp. nick@); ok deraadt@
2007-05-28Move the MSIZE, MCLSHIFT, MCLBYTES and the MCLOFSETThordur I. Bjornsson
mbuf constants from MD param.h to MI param.h. Besides being the same on every arch, things will most probly break if any arch has different values then the others. The NMBCLUSTERS constants needs to be MD though; ok miod@,krw@,claudio@
2007-05-27We can now access curcpu() members through %fs instead of doing itArtur Grabowski
with the complicated and expensive macros. tom@ ok
2007-05-26Move cpu_info/curcpu to be mapped by the %fs segment. Extra input andTobias Weingartner
debugging by tom@, art@, kettenis@, and others. Testing by many others. ok art@, kettenis@, tom@
2007-05-25Replace the overdesigned and overcomplicated tlb shootdown code withArtur Grabowski
very simple and dumb fast tlb IPI handlers that have in the order of the same amount of instructions as the old code had function calls. All TLB shootdowns are reorganized so that we always shoot the, without looking at PG_U and when we're shooting a range (primarily in pmap_remove), we shoot the range when there are 32 or less pages in it, otherwise we just nuke the whole TLB (this might need tweaking if someone is interested in micro-optimization). The IPIs are not handled through the normal interrupt vectoring code, they are not blockable and they only shoot one page or a range of pages or the whole tlb. This gives a 15% reduction in system time on my dual-core laptop during a kernel compile and an 18% reduction in real time on a quad machine doing bulk ports build. Tested by many, in snaps for a week, no slowdowns reported (although not everyone is seeing such huge wins).
2007-05-16splassert_ctl defaults to 1 now, so dont wrap the checks forThordur I. Bjornsson
splassert_ctl > 0 in __predict_false(). ok deraadt@
2007-05-16The world of __HAVEs and __HAVE_NOTs is reducing. All architecturesArtur Grabowski
have cpu_info now, so kill the option. eyeballed by jsg@ and grange@
2007-05-15Remove the MI implementation of mutexes and remove the __HAVE_MUTEXArtur Grabowski
option. Every architecture implements mutexes now.
2007-05-04Implement rw_cas for i386.Artur Grabowski
It uses a function pointer to choose between the 386 and 486 versions. The 386 version is not MP safe, but we're not expecting MP support for 386 cpus. miod@ ok (and prodding)
2007-04-26Switch i386 pmap to VM_PAGE_MD. We store the MOD/REF flags inArtur Grabowski
pg_flags, so we actually shave quite a few bytes from the memory we eat at boot. (a machine with 1GB memory saves 256k). deraadt@, pedro@, krw@ ok. Lots of testing.
2007-04-24apic_address should be 32 bits, rather than paddr_t; prepares us forTom Cosgrove
paddr_t changing from 32 bits. From mickey's original PAE work of a year ago Tested by myself and nick@; ok art@
2007-04-21Introduce a smp aware hw.setperf mechanism, it will scale all CPUs orGordon Willem Klok
cores by the same amount, i.e. if you do hw.setperf=50 both cores will be scaled to the opearting state corresponing to 50%. Tested by many with est (mainly on core2duo machines like X60 thinkpads). Only enable est during GENERIC.MP build no one tested powernow. ok art@
2007-04-12Faster signal delivery on i386/MP.Artur Grabowski
We need to poke the other CPU so that it processes the AST immediately and doesn't wait for the next interrupt or syscall. Since IPIs really shouldn't process ASTs, we need to trigger a soft interrupt on the destination CPU to process the AST. But since we can't send soft interrupts to other CPUs, we send an IPI, that triggers a soft interrupt that in turn processes the AST. Also, this marks the beginning of moving to slightly better IPI mechanism of short and optimized IPIs instead of the large and complicated IPI infrastructure we're using now. tested by many, ok tholo@
2007-04-12untypoArtur Grabowski
2007-04-03Make the ast on i386 per-process instead of per-cpu. This makesArtur Grabowski
signal delivery more reliable in some cases when a process switches cpu. kettenis@ ok
2007-03-28Bump max number of physical segments. Machines in the wildTobias Weingartner
seem to have reached this limit. ok marco@, looks ok ckuethe@
2007-03-23Remove duplicated defines from intr.h that are already defined inArtur Grabowski
intrdefs.h that is inlucded first thing in intr.h. eyeballed for sanity by pedro@
2007-03-19Move i386 to timecounters. This is more or less the same code as amd64.Artur Grabowski
The "lapic" timer is ripped out since it wasn't actually a lapic timer, but a hacked up tsc timer with some synchronization for MP. There is no tsc timer right now since they are very unreliable on MP systems, systems with apm, and systems that change the cpu clock. Which basically means every modern machine out there. We're running with the i8259 timer now. deraadt@ ok
2007-03-15Since p_flag is often manipulated in interrupts and without biglockArtur Grabowski
it's a good idea to use atomic.h operations on it. This mechanic change updates all bit operations on p_flag to atomic_{set,clear}bits_int. Only exception is that P_OWEUPC is set by MI code before calling need_proftick and it's automatically cleared by ADDUPC. There's no reason for MD handling of that flag since everyone handles it the same way. kettenis@ ok
2007-02-20Revert PAE pmap for now, until the strange bug is found. This stopsTom Cosgrove
the freezes many of us are seeing (especially on amd64 machines running OpenBSD/i386). Much testing by nick@ (as always - thanks!), hugh@, ian@, kettenis@ and Sam Smith (s (at) msmith (dot) net). Requested by, input from, and ok deraadt@ ok art@, kettenis@, miod@
2007-02-19only make this interface available to the kernel for now, discussed withaTheo de Raadt
rt and such; tested and ok miod drahn
2007-02-17Bring in the AMD errata checks from amd64.Tom Cosgrove
Changes to either copy of amd64errata.c must be replicated in the other. ok deraadt@
2007-02-13Check for xTPR result of CPUID.Jonathan Gray
ok tom@
2007-02-06Add machine/atomic.h to all architectures and define two operationsArtur Grabowski
right now that are supposed to be atomic with respect to interrupts and SMP: atomic_setbits_int and atomic_clearbits_int. All architectures other than i386 and amd64 get dummy implementations since at first we'll be replacing operations that are done with "a |= bit" and "a &= ~bit" today. More proper implementations will follow kettenis@, miod@ ok
2007-01-23Handle not-all-lapics intterupts.Mark Kettenis
2006-12-24Define PROC_PC. Then, since profiling information is being reported inMiod Vallat
statclock(), do not bother doing this in userret() anymore. As a result, userret() does not need its pc and ticks arguments, simplify.
2006-12-20"#ifdef is a tool of the weak!"Gordon Willem Klok
Rename pentium_mhz to cpuspeed which is consistant with amd64 making shared ACPI code less nasty. ok marco, deraadt
2006-12-12Complete gwk's previous patch to stop setperf methods from returningDimitry Andric
errors to userland: make all cpu_setperf functions return void. Tested by many, ok gwk@
2006-11-30Oops, didn't mean to increase the default msgbufsize for i386. Noticed by ↵Dimitry Andric
brad, thanks.
2006-11-29Nuke all commons but one, and enable --warn-common in LINKFLAGS.Miod Vallat
2006-11-29Remove all the extern cpu_{id,model,whatever} declarations from mostDimitry Andric
stuff in arch/i386/i386. This should prevent more screwups like the one I did before in ichpcib.c... ok dlg@ kettenis@
2006-11-29Remove cpu_swapin() and cpu_swapout(), they are no longer necessary (exceptMiod Vallat
for cpu_swapin() on hppa* which is kept).
2006-11-27commit vesabios for matthieu@Gordon Willem Klok
ok deraadt, "slap it in" miod@
2006-11-26Save misc info (ebx) register from cpuid with eax=1, so we can use itDimitry Andric
later for some identifications. "slap it in" deraadt
2006-11-11Get rid of magic isa and eisa bus numbers in mpbios code. Pave the way forMark Kettenis
alternative sources for interrupt information. ok gwk@, brad@
2006-10-20Try again with local variable to avoid alignment issues.Kenneth R Westerback
"The dosparts member of cpu_disklabel was not used for any persistant data. Eliminate it, and just use the data being read in while processing MBR and EBR records. Should be no functional change. ok weingart@ deraadt@"
2006-10-18back out disksubr changes ... since they violate strict alignment onTheo de Raadt
some architectures (kaboom); that will be fixed in the next iteration hopefully!
2006-10-17The dosparts member of cpu_disklabel was not used for any persistantKenneth R Westerback
data. Eliminate it, and just use the data being read in while processing MBR and EBR records. Should be no functional change. ok weingart@ deraadt@
2006-10-04Zap bad144 bad sector info in disklabels. Sparsely used if at all forKenneth R Westerback
a few obsolete and easily replaced disk models. And didn't work anyway according to Bob, who has tried. ok beck@
2006-10-01Adjust for change of fpu control word.Mark Kettenis
ok deraadt@
2006-10-01Switch fpu control word to the hardware default. This makes us use 64-bitMark Kettenis
precision instead of 53-bit precision, giving us proper support for "long double". ok deraadt@
2006-07-25Kill option GPL_MATH_EMULATE.Mark Kettenis
ok deraadt@ and many others.
2006-07-17id tag.Federico G. Schwindt
2006-07-01Eliminate redundant get_le() in favour of letoh32(). Add letoh32()Kenneth R Westerback
calls in alpha, hppa, hppa64 and mips63 when accessing the two DOS MBR u_int32_t fields dp_size and dp_start. No functional change.
2006-06-13Kernel virtual mode 8086, currently disabled in GENERIC.Gordon Willem Klok
lots of help at c2k6 and after from toby@, ok toby@, mickey@
2006-06-12Some more improvements to EST:Dimitry Andric
- If an unknown EST CPU is encountered, use the known highest and lowest (and if different, the current) power state to generate a fake power state table on the fly. Thanks to canacar for the idea. - Calculate system bus clock speed before calling est_init(); it is needed to display proper MHz values from MSR values. - Also use the bus clock to identify EST CPU's, which is needed to differentiate e.g. Pentium M 715 and 760, which unfortunately have exactly the same MSR values. - Store power states directly as MSR values. Tested by many, "so when does it go in?" deraadt@