Age | Commit message (Collapse) | Author |
|
an upcoming diff to handle ASID/VPID reuse/rollover.
|
|
in struct mdproc. With that, all archs have those and the __HAVE_MD_TCB
macro can be unifdef'ed as always defined.
ok kettenis@ visa@ jsing@
|
|
to enable RDTSCP to 0, so when solaris attempted to use the instruction
(since it wasn't filtered out of CPUID information), the CPU issued an
#UD exception.
|
|
Before seabios, this didn't matter much but now it does since various
bootloaders/kernels need such treatment.
ok deraadt
|
|
ok guenther, deraadt
|
|
|
|
|
|
unwinds that. Upon hibernate fail, this was a collection of double-frees..
ok claudio mlarkin
|
|
|
|
behaviour was needed during early development but not anymore. Suppress
the printf that accompanied these exits since linux guests go probing
wildly into msr-land on each boot.
ok deraadt
|
|
|
|
incomplete and enabling it leads ubuntu guests to try and use the feature,
with incorrect results. We can re-enable this at a later date when AVX
is properly handled.
|
|
probe/attach approach used by mainbus.
ok mlarkin kettenis
|
|
implicit form.
ok mlarkin@
|
|
VMCS field on vmentry when we advanced %rip on the last exit (simulating
a real processor's behaviour). Handles guest "sti ; hlt" instruction
sequences, which is used in seabios as a primitive idle loop construct.
|
|
|
|
a cpuid instruction was emulated at the same time there was an interrupt
pending)
|
|
penalizes i386 guests who previously had memory allocated by vmd after
0xF0FFFFFF (the previous range end) but makes memory range calculation
in vmd/mc146818 much much easier. This diff needs to be combined with
the previous vmd diffs or you won't be able to create a vm with memory
size larger than ~3855MB.
|
|
using the "must be clear / must be set" masks for these registers, I'd
like to know (for now) when guest VMs manipulate bits in these registers
in an unexpected way. This is needed for Linux guests, as they
unconditionally set CR0 without NE, and CR4 without VMXE.
|
|
resulted in wrong cpu information being passed to the guest. Specifically
this breaks Linux guests as with the fallthrough, CPUID_LONG was cleared,
and Linux thought it was runinng on a machine incapable of 64-bit mode.
OpenBSD/NetBSD guests don't check this flag and thus weren't affected.
|
|
(respectively). Seabios uses 0x8/0x78 and linux uses 0x30/0x38. Respond
properly to PIC vector base assignment and calculate VMX injection
vectors based on current values, instead of always assuming OpenBSD
defaults.
Needed for both seabios serial console support as well as linux guest
support. Tested on -current as is, does not break existing OpenBSD
guest support.
|
|
|
|
if the kernel's name ends in .PROF.
problem reported by jmc via mpi
ok mpi
|
|
|
|
By setting "machdep.forceukbd=1" you can now use your USB keyboard in
ddb(4) even if your BIOS emulates a pckbd(4).
ok tom@, kettenis@, deraadt@
|
|
This restores the behaviour that preceded ticket locks. The feature can
be useful in some debug cases where the system is not totally borken.
OK guenther@, dlg@, mpi@
|
|
performance a bit.
OK mikeb@, kettenis@, mpi@, tom@, mlarkin@
|
|
on every iteration.
OK mikeb@, kettenis@, mpi@, tom@, mlarkin@
|
|
suggested by halex
ok deraadt millert
|
|
ok mlarkin@
|
|
was killed with SIGBUS. Better drop to ddb regardless wether a
user process is currently scheduled or not. NMI signals hardware
failure or a debug button. The code in i386 trap() has always been
that way. The switch in db_ktrap() must also not depend on the
fact wether kernel or user land is running.
OK deraadt@
|
|
|
|
machdep.lidaction=0 # do nothing
machdep.lidaction=1 # suspend
machdep.lidaction=2 # hibernate
lidsuspend is just an alias for lidaction, so if you change one, the
other one will have the same value. The plan is to remove
machdep.lidsuspend eventually when people have upgraded their
/ets/sysctl.conf.
discussed with deraadt, who came up with the new MIB name
no objections mlarkin
ok stsp halex jcs
|
|
matches other log messages for other unimplemented cpuid leaf functions.
|
|
get picked up previously. i386 gets some changes relating to EFER
treatment and amd64 gets a whitespace fix.
|
|
of recent fixes for SVM that were missed). No functional change on amd64
(just an added comment)
|
|
shortly (instead of having two nearly identical functions.)
ok reyk
|
|
on efiboot(8), as it can crash the EFI application.
ok tom@
|
|
booting from a disk. It had a typo. Also tweak the code which finds
the blkio of the boot disk to show how it is matching the device path
nodes clearly. found by and discussed with patrick@.
|
|
unsigned variables as argument in most places anyway. Decrease the
chance of signedness/range mismatch issues.
ok stefan
|
|
over smbus
currently disabled because it conflicts with acpibat
ok deraadt, kettenis
|
|
HLT exits
|
|
|
|
|
|
|
|
|
|
This makes sure that TSC is not used if we really don't want to. The
kernel bumps the quality to 2000 for constant invariants TSCs on
latest CPUs only.
OK mikeb@
|
|
- FORK_THREAD handling is a totally separate function, thread_fork(),
that is only used by sys___tfork() and which loses the flags, func,
arg, and newprocp parameters and gains tcb parameter to guarantee
the new thread's TCB is set before the creating thread returns
- fork1() loses its stack and tidptr parameters
Common bits factor out:
- struct proc allocation and initialization moves to thread_new()
- maxthread handling moves to fork_check_maxthread()
- setting the new thread running moves to fork_thread_start()
The MD cpu_fork() function swaps its unused stacksize parameter for
a tcb parameter.
luna88k testing by aoyama@, alpha testing by dlg@
ok mpi@
|
|
ok tb@, jca@
|
|
leaving out the size, so that
ELFNAME2(exec,makecmds)
becomes
exec_elf_makecmds
instead of
exec_elf{32,64}_makecmds
and then delete the ELFNAME2() and ELFNAMEEND() macros.
Move the prototypes for functions local to exec_elf.c to there from
exec_elf.h.
Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
Change exec_conf.c to use the size-generic names and macros
Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
_KERN_DO_ELF and _KERN_DO_ELF64 #defines.
ok jca@, encouragement from deraadt@ and tom@
|