changeset. It makes no sense, since an allocated VCPU
cannot be freed at any arbitrary point because individual
VCPUs are not refcounted.
Instead extend free_domain() slightly so it really does do
the reverse of alloc_vcpu() for every allocated VCPU.
Signed-off-by: Keir Fraser <keir@xensource.com>
Interface name changes:
1. do_createdomain -> domain_create
2. domain_destruct -> domain_destroy
Arch-specific changes:
1. arch_do_createdomain -> arch_domain_create
This function now takes a domain pointer, not a VCPU
pointer! Initialisation of VCPU0 must happen in
alloc_vcpu_struct().
2. free_perdomain_pt -> arch_domain_destroy
This function must undo the work of arch_domain_create
TODO: arch_domain_create() refactoring is not completed
for ia64.
Signed-off-by: Keir Fraser <keir@xensource.com>
VCPU's context has been explicitly initialised.
Fix all the domain builders to no longer attempt this.
They really don't need to anyhow.
Signed-off-by: Keir Fraser <keir@xensource.com>
when allocating a new vcpu structure, not copied from
CPU0's idle VCPU. Especially now that the idle VCPU itself
is dynamically allocated.
This should fix assertions people have been seeing in
getdomain_info_ctxt() relation to IOPL in eflags.
Signed-off-by: Keir Fraser <keir@xensource.com>
If the guest context is VM86 then we need to treat ss:sp as 16 bit
segment:offset rather than 32 bit selector:offset.
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
lock' on a particular VCPU. Since this requires acquiring
the approrpiate per-CPU lock, we must re-check the VCPU's
current CPU binding after the lock is acquired.
Signed-off-by: Keir Fraser <keir@xensource.com>
timers. Also, compund updates to APIC ICR and ICR2 registers
must be done with interrupts disabled to ensure local
atomicity.
Signed-off-by: Keir Fraser <keir@xensource.com>
Add 'N' keyhandler to dump the current per CPU NMI counts and the
current NMI mask/pending status.
Add 'n' keyhandler to trigger an NMI by sending an IPI. For some
reason the destination shorthand for self is not valid when used with
the NMI delivery mode so we send the IPI to our own APIC ID
explicitly.
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
Bail out of setup_apic_nmi_watchdog() early if watchdog is not
enabled. Is the watchdog is disabled then increment
watchdog_disable_count to prevent it ever becoming enabled.
Unconditionally call setup_apic_nmi_watchdog() from setup_local_APIC()
so that the above is guaranteed to have occurred before the first call
of watchdog_enable().
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
'opposite' of init_timer(), it marks the end of a timer's
lifetime. After this call the timer will not be pending,
its callback handler will not be running, and future calls
to set_timer() will silently fail.
Signed-off-by: Keir Fraser <keir@xensource.com>
rewritten from scratch a couple of times now and it's safe
to assert that the original Linux heritage was deleted
long ago.
Signed-off-by: Keir Fraser <keir@xensource.com>
offending caller that broke the vcpu cache (writable
pagetable code kept a mapping outstanding until flush,
which could occur on a different vcpu).
Signed-off-by: Keir Fraser <keir@xensource.com>
gmp dev files are installed. If files are missing, Makefile exits with a
message indicating that these tools will not be built, rather than an
error, which prevents Xen from building.
Signed-off-by: Vinnie Scarlata <vincent.r.scarlata@intel.com>
and definition of xc_linux_save(). In particular the argument for
the suspend pointer to function was null in one and int in the other.
On inspection, int seemed to be correct, so I went with this.
I also fixed up a few other cosmetic discrepancies.
Signed-Off-By: Horms <horms@verge.net.au>
The NMI handler is not built unless CONFIG_X86_LOCAL_APIC is defined, and
CONFIG_X86_LOCAL_APIC requires a dom0 build.
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
EFLAGS that we do not pull in non-zero IOPL, then crash
the domain, and then bug out when dom0 gets vcpu context.
This could otherwise be triggered by a malicious guest.
Signed-off-by: Keir Fraser <keir@xensource.com>