[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 00/10] Prevent one cause of "MP-BIOS bug: 8254 timer"... message from linux
Changes v2 to v3: Drop v3 patch #8 "hvm/hpet: Use signed divide in hpet_get_comparator." Either v3 patch #11 "hvm/hpet: handle 1st period special" or v4 patch #10 "hvm/hpet: Detect comparator values in the past" make this patch not needed. Replace v3 patch #11 "hvm/hpet: handle 1st period special" with v4 patch #10 "hvm/hpet: Detect comparator values in the past" My changes: #1 "hvm/hpet: Add manual unit test code." Run the unit test in many modes by default. Add new skip_error_on_load and debug flag 0x0100 because patch #10 "hvm/hpet: Detect comparator values in the past" does not handle the 63 bit boundary case. #7 "hvm/hpet: Init comparator64 like comparator." Added paragraph starting "A disabled hpet" to commit message. Jan Beulich: #1 "hvm/hpet: Add manual unit test code." Use make shortcuts. #2 "hvm/hpet: Only call guest_time_hpet(h) one time per" Reviewed-by #3 "hvm/hpet: Only set comparator or period not both." Reviewed-by #4 "hvm/hpet: Correctly limit period to a maximum." Reviewed-by #5 "hvm/hpet: In hpet_save, correctly compute mc64." Reviewed-by #6 "hvm/hpet: In hpet_save, call hpet_get_comparator" Correctly set guest_time. Fix formatting of comments. #8 "hvm/hpet: comparator can only change when master" Acked-by Tim Deegan: #10 "hvm/hpet: Detect comparator values in the past" Acked-by 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 (10): 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: comparator can only change when master clock is enabled. hvm/hpet: Prevent master clock equal to comparator while enabled hvm/hpet: Detect comparator values in the past tools/tests/vhpet/.gitignore | 4 + tools/tests/vhpet/Makefile | 36 ++ tools/tests/vhpet/emul.h | 416 +++++++++++++++++++++++ tools/tests/vhpet/main.c | 776 +++++++++++++++++++++++++++++++++++++++++++ xen/arch/x86/hvm/hpet.c | 124 ++++--- 5 files changed, 1313 insertions(+), 43 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 |