link context instead of NULL. Otherwise, if we got a signal while the
lwp had a link context set, the link context would be set to NULL upon
return from signal delivery.
christos@tech-kern: "I think you are right."
64bit targets. Only the 0xb8-0xbf instructions (move immediate to register)
have a 64bit immediate constant.
Correct the disassembly of movq %eax to/from an immediate address - 64bit addr.
Add cmovxx instructions.
Now stands a chance of not getting all misaligned on normal C code.
Add a few others, but there are a lot missing, but probably mainly SIMD ones.
simplify ci_feature2_flags and use directly CPUID2_FLAGS on
bitmask_snprintf(9).
Now I can see the same CPUID features than on i386:
$ dmesg|grep -E '(cpu0.*features)'
cpu0: features: bffbfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features: bffbfbff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,B20,DS,ACPI,MMX>
cpu0: features: bffbfbff<FXSR,SSE,SSE2,SS,HTT,TM,SBF>
cpu0: features2: 649d<SSE3,MONITOR,DS-CPL,EST,CID,xTPR>
cpu0: features3: bffbfbff<SYSCALL/SYSRET,XD,EM64T>
$
Ok'ed by Andrew Doran.
To use it on EM64T CPUs supporting the EST CPUID feature. Note that
some CPUs still don't work with this driver, like Xeon or Pentium 4.
Move the p[34]_get_bus_clock functions into its own file,
intel_busclock.c and remove this code from i386/identcpu.c.
Tested on i386 by myself and amd64 by Tonerre.
Using movq would copy pcb_flags along as well, which would cause traps
because bad bits would be written into %cr0 a few instructions later.
This wouldn't happen for native NetBSD processes (no pcb_flags set), but
it would happen for Linux processes.
from doc/BRANCHES:
idle lwp, and some changes depending on it.
1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
controllers. These controllers can be found on add-on PCIe cards, or
on some motherboards to provide the PATA connectivity (e.g. some intel
ICH8-based motherboards).
Thanks to JMicron Technology for providing me documentation and
different sample boards for this work.
Instead, save/restore them on context switch. For 32bit processes, save/restore
the selector values only, for 64bit processes, save/restore the appropriate
MSRs. Iff the defaults have been changed.
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
Modulation.
This works by changing the duty cycle of the clock modulation,
and saves power and helps to not increase the temperature by
software.
Adapted from OpenBSD/FreeBSD's p4tcc.
To enable it one must use "options INTEL_ONDEMAND_CLOCKMOD".
Tested by me in UP and SMP, ok'ed by Matthew R. Green.
in all CPUs available in the system. This adds another member
to struct cpu_info, ci_msr_rvalue; it will contain the value of the MSR
in a previous operation.
Tested with clockmod in UP and SMP by me, tested with est in SMP
by Daniel Carosone and Michael Van Elst.
Ok'ed by Andrew Doran and Matthew R. Green.