cvs commit: src/sys/ia64/include atomic.h
Bruce M. Simpson
bms at FreeBSD.org
Wed May 28 16:43:14 UTC 2008
Marcel Moolenaar wrote:
> ...the cmpxchg instruction was comparing
> 0x0000000080000000LU to 0xffffffff80000000LU and obviously didn't
> perform the exchange.
> ...Subsequent locking requests found rw_state non-zero
> and the thread in question entered the kernel and block indefinitely.
Man, this must have been a total nightmare to track down. I guess the
bigger question is, why was gcc sign-extending a constant marked U in
the first place?
More information about the cvs-all