|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 00/11] Prevent one cause of "MP-BIOS bug: 8254 timer"... message from linux
Changes v2 to v3:
Add new patch #8 "hvm/hpet: Use signed divide in hpet_get_comparator."
Re-order to group changes in the same area:
#5, #6 are both about hpet_save
#8, #9, #10, and #11 are all about corner cases of the lines in
hpet_get_comparator():
elapsed = master clock ...
comparator += (elapsed / period) * period
#4 "hvm/hpet: Correctly limit period to a maximum."
was v2 #9
#5 "hvm/hpet: In hpet_save, correctly compute mc64."
was v2 #4
#6 "hvm/hpet: In hpet_save, call hpet_get_comparator."
was v2 #7 "hvm/hpet: Call hpet_get_comparator during hpet_save."
#7 "hvm/hpet: Init comparator64 like comparator."
was v2 #5
#9 "hvm/hpet: comparator can only change when master"
was v2 #6
#10 "hvm/hpet: Prevent master clock equal to comparator"
was v2 #8
#11 "hvm/hpet: handle 1st period special"
was v2 #10
My changes:
#1 "hvm/hpet: Add manual unit test code.":
Make it optional.
Add hpet_check_stopped() testing.
Adjust print_error messages.
#6 "hvm/hpet: In hpet_save, call hpet_get_comparator.":
Reword subject from "hvm/hpet: Call hpet_get_comparator during
hpet_save."
#11 "hvm/hpet: handle 1st period special":
More setting of first_mc64 & first_enabled when needed.
Switch to bool_t.
Jan Beulich:
#1 "hvm/hpet: Add manual unit test code.":
Add Makefile.
Better commit message.
#2 "hvm/hpet: Only call guest_time_hpet(h) one time per":
Did not add Reviewed-by do to amount of change
Added passing of guest_time to hpet_read64() and
hpet_stop_timer().
Dropped mc_starting.
#3 "hvm/hpet: Only set comparator or period not both.":
Only have 2 blocks of code.
Set comparator64 before truncation
#6 "hvm/hpet: In hpet_save, call hpet_get_comparator.":
Better commit message.
#9 "hvm/hpet: comparator can only change when master":
Better commit message.
#11 "hvm/hpet: handle 1st period special":
Better commit message.
Changes v1 to v2:
Drop the patch "hpet: Act more like real hardware" from v1 for
several reasons:
1) Only "fixes" less then 50% of the problem: diff < 0 or
diff > too many periods.
2) I have a better fix in #2 "hvm/hpet: Only call
guest_time_hpet(h) one time per action."
3) Reverts a previous bug fix.
So all these patches are new and fix various bugs.
#1 "hvm/hpet: Add manual unit test code.":
Is optional. I used it to validate the changes did what I expected.
v1: info that still applies
Based on the proposed fix in QEMU:
http://marc.info/?l=qemu-devel&m=139304386331192&w=2
That was provided for:
http://marc.info/?l=qemu-devel&m=139295851107140&w=2
Which is very close to a bug I have been looking into and asked some
questions about in:
http://lists.xen.org/archives/html/xen-devel/2014-02/msg01787.html
Don Slutz (11):
hvm/hpet: Add manual unit test code.
hvm/hpet: Only call guest_time_hpet(h) one time per action.
hvm/hpet: Only set comparator or period not both.
hvm/hpet: Correctly limit period to a maximum.
hvm/hpet: In hpet_save, correctly compute mc64.
hvm/hpet: In hpet_save, call hpet_get_comparator.
hvm/hpet: Init comparator64 like comparator.
hvm/hpet: Use signed divide in hpet_get_comparator.
hvm/hpet: comparator can only change when master clock is enabled.
hvm/hpet: Prevent master clock equal to comparator while enabled
hvm/hpet: handle 1st period special
tools/tests/vhpet/.gitignore | 4 +
tools/tests/vhpet/Makefile | 28 ++
tools/tests/vhpet/emul.h | 416 +++++++++++++++++++++++
tools/tests/vhpet/main.c | 768 ++++++++++++++++++++++++++++++++++++++++++
xen/arch/x86/hvm/hpet.c | 192 ++++++++---
xen/include/asm-x86/hvm/vpt.h | 2 +
6 files changed, 1359 insertions(+), 51 deletions(-)
create mode 100644 tools/tests/vhpet/.gitignore
create mode 100644 tools/tests/vhpet/Makefile
create mode 100644 tools/tests/vhpet/emul.h
create mode 100644 tools/tests/vhpet/main.c
--
1.8.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |