ptc.ga infrequently clobbers the region register 0.
When vcpu1 purges TLBs of vcpu2 and ptc_ga_remote_func() is called
locally not via IPI (i.e. vcpu1 shares the same pcpu with vcpu2),
in ptc_ga_remote_func(),
save vrr[0] of vcpu2
... => switch to vcpu2 and set a new value of vrr[0]
restore vrr[0] of vcpu2 // the new value is lost
Windows will crash due to this issue.
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
checks are done under an appropriate lock, allowing the lock-free
protocols surrounding this boolean to be removed.
Also simplification and fixes to code for setting/zapping the ioreq
and buf_ioreq shared pages.
Signed-off-by: Keir Fraser <keir@xensource.com>
Some instructions, like "add $imm8, r/m16"/"MOV $imm32, r/m64" require
the src immediate operand be sign-extented befere the op is executed,
but this is omitted in the current Xcode. The patch fixes this.
The patch also fixes an issue in handling address-size override
prefix, and fixes an issue in get_immediate().
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
that domain runs only when it has valid mapped ioreq pages, and to
safely drop ioreq page references when a domain dies.
Signed-off-by: Keir Fraser <keir@xensource.com>
1. rx_lock is a normal spinlock, and tx_lock is an irq spinlock. This
means that in normal use, tx_lock may be taken by an interrupt
routine while rx_lock is held. However, netif_disconnect_backend
takes them in the order tx_lock->rx_lock, which could lead to a
deadlock. Reverse them.
2. rx_lock can also be used in softirq context, so it should be
taken/released with spin_(un)lock_bh.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
When debug=y, we use -O0 for single-stepping. This breaks the force-link-error
trick used in __xchg(), so we provide a real function to link with.
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
This extra space after the newline causes printk to get confused
and re-evaluate do_print and leave start_of_line == 0. Anything
printed after this will always print, regardless of intended
log level.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
and remove the use of xc_vcpu_getcontext() from HVM save/restore.
Also fixes loss of CR2, DR6 and DR7 contents across HVM save/restore.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Not working yet as we are a bit too keen to kill the qemu-dm process,
before we know that the save has been successful.
Signed-off-by: Keir Fraser <keir@xensource.com>
drivers are not present. The feature-foo mechanism does not actually
work after save/restore since the fields do not get rewritten. And it
doesn't work when we actually need the guest to be shutdown through
Xen (e.g., on suspend). Since we can quite reasonably assume that the
only entity to screw with control/shutdown is xend, and since the one
place that does that now explicitly handles unenlightened HVM guests,
we can simply strip all this stuff out.
This has the nice benefit of making HVM save/restore with PV drivers
much more reliable.
Signed-off-by: Keir Fraser <keir@xensource.com>
xen-platform-pci fails to load w/ undefined symbols for some of the
sched_op hypercalls in machine_reboot.c. This adds them to xencomm
mini to allow them to be called from modules.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Time interpolator remembers last status. When domain is restored, it
should be forgotten. Otherwise the interpolator causes bad timer value.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
rather than in frontend store directory. Two advantages are that the
frontend cannot mess with the config information; also an
ioemu-specific vif does nto need a frontend directory at all. This
avoids confusing netfront pv-on-hvm driver.
Signed-off-by: Keir Fraser <keir@xensource.com>
This effectively automates passing the nomca flag to domUs,
preventing them from setting up CMC/CPE interrupts. This saves
3 dynamic IRQs per processor and allows us to get domUs up to 64
vCPUs without increasing the number of dynamic IRQs available.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>