On 11/08/14 22:32, Jakub Jermar wrote: Hi Jakub,
Using the binaries from Mark, I was unable to reproduce this issue with the latest mainline, and I was equally unable to reproduce it with the released sparc64 image of HelenOS 0.5.0. However, I was able to reproduce it with a 3.5-year old image of HelenOS 0.4.3. *Mark*, can you please verify that the issue is no longer reproducible for you with the following image?: http://www.helenos.org/releases/HelenOS-0.5.0-sparc64-ultra.iso
Ah yes, the particular image that causes the issue for me is HelenOS 0.4.3. I suspect this was probably the most recent ISO available when I started including HelenOS in the OpenBIOS test suite, although I do tend to test across older and newer versions of OSs if I'm testing "deep" changes.
I've just tried with the 0.5.0 image above and I don't see any problems here which is probably explained by your comments below.
I also noticed that relatively shortly after the release of 0.4.3, there was the following commit, which would explain why 0.5.0 behaves differently: revno: 1046 committer: Jakub Jermar <[email protected]> branch nick: HelenOS.mainline timestamp: Sat 2011-06-18 17:03:06 +0200 message: sparc64: Clear any pending TICK interrupts in tick_init(). diff: === modified file 'kernel/arch/sparc64/src/drivers/tick.c' --- kernel/arch/sparc64/src/drivers/tick.c 2010-06-16 16:30:27 +0000 +++ kernel/arch/sparc64/src/drivers/tick.c 2011-06-18 15:03:06 +0000 @@ -43,13 +43,12 @@ #include <arch.h> #include <debug.h> -#define TICK_RESTART_TIME 50 /* Worst case estimate. */ - /** Initialize tick and stick interrupt. */ void tick_init(void) { /* initialize TICK interrupt */ tick_compare_reg_t compare; + softint_reg_t clear; interrupt_register(14, "tick_int", tick_interrupt); compare.int_dis = false; @@ -58,10 +57,13 @@ CPU->arch.next_tick_cmpr = compare.tick_cmpr; tick_compare_write(compare.value); + clear.value = 0; + clear.tick_int = 1; + clear_softint_write(clear.value); + #if defined (US3) || defined (SUN4V) /* disable STICK interrupts and clear any pending ones */ tick_compare_reg_t stick_compare; - softint_reg_t clear; stick_compare.value = stick_compare_read(); stick_compare.int_dis = true;
I'd prefer not to reduce the timer resolution in OpenBIOS if at all possible, so would it be reasonable to simply remove 0.4.3 from my test suite and then just use 0.5.0 instead?
ATB, Mark. _______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/listinfo/helenos-devel
