__tls_get_addr problem with recent current

Bernd Walter ticso at cicely7.cicely.de
Sat Aug 30 17:49:55 UTC 2008


On Sat, Aug 30, 2008 at 09:46:05AM -0700, Artem Belevich wrote:
> Hi,
> 
> Did someone figure out what was/is causing this problem? I believe
> I've ran into the same issue on a freshly built (Aug 29th) RELENG_7 on
> amd64 (Q9450 w/ 8GB RAM).

My machine has 6G, so it is also over the 32bit limits.
Not sure if this might be a point for the kernel to handle i386 binaries.

> What's strange is that in my case the problem pops up when I run
> 32-bit binaries from RELENG_6. Otherwise the system is stable. I can
> buildworld continuously with -j8 without any problems. However, when I
> try to build my code using hacked make from FreeBSD6/i386 things start
> falling apart. All of a sudden I get cores from FreeBSD7/amd64
> binaries. All of them, as far as I can tell crash in __tls_get_addr.
> So far I've been unable to reproduce the crashes in any other
> scenarios, but I'm still trying.
> 
> Interestingly enough, crash always occurs on "mov    %fs:0x0,%rdi" instruction,
> yet the same code in the same binaries works fine when binaries are used
> without mixing amd64/i386 binaries. Could that be that amd64 might
> somehow inherit invalid registers from i386 binaries?

This is quite interesting.
We have something special in common, because on the same machine I'm
running an i386 jail.
My i386 jail is -current as well, but with old applications build on
a RELENG_5 system and later migrated into the jail.

> I checked recent RELENG_7 commits and it does appear that there were
> some recent changes related to both 32-bit emulation *and* segment
> registers. Could that have something to do with the crashes?
> http://svn.freebsd.org/viewvc/base?view=revision&revision=181752
> 
> I'll try to install 7.0 release next week and check if that fixes the issue.
> 

For me switching back to -current from 2008-06-04 was fixing
(or hiding) it.

-- 
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.


More information about the freebsd-current mailing list