| Summary: | [panic] -CURRENT on sparc64/ia64 immediate "panic: mtx_init: mtx_lock not aligned for turnstile chain: 0xc06489f8" | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Nathaniel Filardo <nwf> |
| Component: | kern | Assignee: | attilio |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: freebsd-bugs->freebsd-sparc64 I suspect that this is some MD problem on sparc64, and not directly related to the commit that triggers the problem. Responsible Changed From-To: freebsd-sparc64->bz Mine. I got input form kib on why it's an issue for sparc64 and I think ia64 might have the same problem. We'll either disable the check or find something better that actually works on all platforms. Responsible Changed From-To: bz->attilio Thanks for handling this. State Changed From-To: open->closed This has been fixed with r196334. |
SVN r196226 added ASSERT_ATOMIC_LOAD to check that values could be atomically loaded. On sparc64, _ALIGN() masks off 0xF but the compiler seems to think that the alignment requirement is only 0x7 as printing "&( ((struct foo *)(NULL))->...)" for each of a,b,c,d,e,f in "struct foo { long a; char b; long c; void *d; char e; void *f; };" seems to produces "0 8 16 24 32 40" I don't know what the right fix is or even which one is in error. Thoughts? How-To-Repeat: Build a kernel on sparc64 later than r196226. It is unclear to me if other details of kernel configuration matter.