[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tester with IP27/IP30 needed



On Tue, Jan 15, 2008 at 12:27:19PM +0100, Florian Lohoff wrote:
> Simple testcase for me is:

now even simpler:

----------------------------------------------------------------------
void spin(void *a0)
{
	while (1) {
		asm volatile(
		"    .set mips3       \n"
		"    sync             \n"
		"1:  ll $5, 0($4)     \n"
		"    sc $3, 0($4)     \n"
		"    beqz $3, 1b      \n"
		"    .word 0x7c03e83b \n" /* rdhwr */
		"    lw $3, 0($4)     \n"
		"    nop              \n"
		);
	}
}

int main()
{
	int a;

	spin(&a);
}
----------------------------------------------------------------------

this kills my IP28 after a few seconds. If I drop rdhwr or sync the
machine hasn't locked up after running for several minutes. Looks
like we are hiting a strange condition.

This sort of code could be found in glibc 2.7 all over the place...

Thomas.

PS: Using rdhwr_noopt doesn't make a difference...

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessary a
good idea.                                                [ RFC1925, 2.3 ]


Reply to: