Hi, Keir/Ian,
Attached includes 3 critical fixes which need to be pushed into
xen-3.0.0-testing. Could you please take a look and help? ;-)
Thanks,
Kevin
========================================
This patch includes changesets critical to XEN/IA64 dom0/domU which
only
touches ia64 specific files and test no regression upon testing tree:
(xen-unstable.hg)
8423 - generic xen0_defconfig_ia64 to run on multiple IA64 boxes
(HP-ZX1
and Tiger) which are both commonly used
8413 - Fix dom0 losing virtual timer interrupt issue, which blocks
multiple domains stability
(xen-ia64-unstable.hg)
(Following 5 changesets are all related to I/D cache sync issue, to
ensure IA64 dom0 running on box with cache split. Patch is made upon
8437)
8437
8435
8434
8375
8371
linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_ia64 | 313
++++++++++----
xen/arch/ia64/xen/domain.c | 20
xen/arch/ia64/xen/vcpu.c | 21
xen/arch/ia64/xen/xenmisc.c | 24 +
xen/include/asm-ia64/linux-xen/asm/pal.h | 6
5 files changed, 279 insertions(+), 105 deletions(-)
(xen-unstable.hg)
----
8423
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 663c487a5f2c1bee87062dfe522c4e4516a82f8e
# Parent 97d70c793b67fcd93b9f44529c81d8a9e1eaad63
New default config file that works on both tiger4 and HP boxes
----
8413
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID f998426f9069aa9e4e060ceb48a3cd9cfc1231d9
# Parent dda94d6dce94447d29eaf64c53e6e6315e4ac96e
Under some specific conditions, dom0 will lose guest timer interrupt.
Signed-off-by Anthony Xu <anthony.xu@xxxxxxxxx>
Signed-off-by Kevin Tian <kevin.tian@xxxxxxxxx>
The reason is that Xen/ia64 will try to pend guest timer interrupt to
dom0
within each machine timer interrupt handler. To avoid duplicated
delivery,
domain_itm_last recorded domain_itm of last injection. If two are
identical,
it means interrupt injected but guest has not set new itm value. Or
else
corresponding pending irr bit will be turned on. That works in most
cases.
However currently guest linux may try to set itm multiple times within
one
handler before turn on psr.i again. Among first few settings, new
guest
timer
interrupt may be pended. Then once guest linux enables interrupt, a
new
timer interrupt will be injected immediately. However this
injection may
have
itc still smaller than the domain_itm set at the last round of last
handle.
In this case, guest linux will set same domain_itm as last again.
However
since domain_itm_last already equals to domain_itm at last read ivr,
later
no guest timer interrupt can be injected any more since Xen always
thinks
an instance already injected without guest's response.
Attahced patch fixed this issue by adding sanity check upon guest
timer
vector when deciding to inject interrupt into dom0. We always compare
current
itc with latest domain_itm that guest really wants. So if itc <
domain_itm
at this point, we simply clear the pending bit and no injection.
There's also a small fix to vcpu_read_ivr, where domain_itm_last
should
be updated before clearing irr bit. Or els a small window still
remains
to add a duplicate interrupt.
(xen-ia64-unstable.hg)
----
8437
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID b4925703b56c0944e304f073c3117da4f3d71ccd
# Parent 5222e8d456aea9a7cf432d0d4ad8a3a7ac602c5b
Missing initialization in cache sync code (by Anthony Xu)
----
8435
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 8643b4d778f56c780d2860289d1255c80ab0b32e
# Parent 40648452d45f4b9a26043c0297869c55a6912551
Leave psr.ic on in pal_cache_flush -- fixes Linux bug (by Anthony Xu)
----
8434
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 40648452d45f4b9a26043c0297869c55a6912551
# Parent f218e6ba2653d3f2d50e11ea4b18c743d6c9127f
Sync caches only on split cache machines (dynamic test instead of
compile ifdef)
Signed-off-by: Dan Magenheimer <dan.magenheimer@xxxxxx>
----
8375
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 72f51528d55a9b99f8c7737b34bf6f370de0de7f
# Parent 545ba1b126ca2f06861c3982c4da33dd310e7717
More pal_flush_cache calls for split cache machines (by Anthony Xu)
----
8371
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID e1ae4b162128f5b16c626d77c25215a37f9da6e7
# Parent 2d5c57be196d7db66157d3f820858c7acf9dbe58
Turn off ia64_pal_cache_flush for domU (temp, until failure
understood)
<IA64_patches_for_xen_testing.patch>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel