hunting "Unaligned Access" errors

Bjoern Jacke bjoern at j3e.de
Tue May 15 15:50:38 GMT 2007


Hi all,

while I was cleaning up and bringing my Tru64 build machine in a proper
state I saw several warnings on the console about Unaligned memory accesses:

Unaligned access pid=260838 <smbd> va=0x141b04d6c pc=0x120264c7c
ra=0x120518f04 inst=0xa6940000

Unaligned access is something RISC machines' memory controllers usually
can't handle. CISC machines usually *can* handle it but it slows things
down. In the case of Tru64/AXP this is automatically fixed by the
operating system but the behaviour can be customized. I changed the
settings on that machine for the build user so that not just a warning
is printed on the console but that also a SIGBUS is produced (by putting
the "uac p sigbus" command into build_test.settings.local). In the
buildfarm you then see a PANIC for the SerNet-Tru64 machine:

http://build.samba.org/?function=View+Build;host=SerNet-Tru64;tree=samba4;compiler=cc

As metze wrote a customized error handling script using the ladebug
debugger on Tru64 there is also a nice traceback which points to the
place where is Unaligned Access is being done:

...
#5  0x120264e80 in pvfs_wait_dispatch() "ntvfs/posix/pvfs_wait.c":69
...

Here are a few links to documents describing how to prevent Unaligned
Accesses and how to debug this:

http://www.arm.com/support/faqdev/1469.html
http://h21007.www2.hp.com/dspp/files/unprotected/tru64/tips.pdf
http://www.hmi.de/it/software/tru64-faq.html#P7
http://en.wikipedia.org/wiki/Data_structure_alignment

I hope you find this usefull. Any feedback about this welcome.

Cheers
Bjoern


More information about the samba-technical mailing list