Anonymous | Login | 2024-04-28 09:13 CEST |
Main | My View | View Issues |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||
0003879 | [pigz] regular use | major | sometimes | 2009-09-04 12:52 | 2009-09-08 08:23 | ||
Reporter | james | View Status | public | ||||
Assigned To | dam | ||||||
Priority | normal | Resolution | fixed | ||||
Status | closed | ||||||
Summary | 0003879: fails to multithread on Solaris 8 | ||||||
Description |
pigs (spelt pigz) fails to multithread on Solaris 8. Workaround: use /usr/lib/lwp. Suggest changing RPATH to use /usr/lib/lwp LD_OPTIONS=-R/usr/lib/lwp It's possible a patch will fix also, please find it, check it's still public and put in checkinstall if you think the patch is the solution. |
||||||
Additional Information |
$ uname -a SunOS gyor 5.8 Generic_117350-38 sun4u sparc SUNW,Ultra-60 $ $ mkfile 100m /tmp/junk $ ptime pigz -f /tmp/junk real 11.143 user 10.529 sys 0.534 $ $ mkfile 100m /tmp/junk $ ptime pigz -f -p 1 /tmp/junk real 10.279 user 9.691 sys 0.517 $ $ mkfile 100m /tmp/junk $ ptime pigz -f -p 2 /tmp/junk real 11.159 user 10.540 sys 0.535 $ $ mkfile 100m /tmp/junk $ LD_LIBRARY_PATH=/usr/lib/lwp ptime pigz -f /tmp/junk real 5.849 user 10.503 sys 0.599 $ $ rm -f /tmp/junk.gz |
||||||
Tags | No tags attached. | ||||||
Attached Files | |||||||
|
Notes | |
(0006658) dam (administrator) 2009-09-04 13:02 |
Funny thing, I tested this on Solaris 8, but a branded zone on the T5220 and that looked fine: build8st% time pigz -9 perl-5.10.0,REV\=2009.06.15-SunOS5.8-sparc-CSW.pkg pigz -9 perl-5.10.0,REV=2009.06.15-SunOS5.8-sparc-CSW.pkg 275.02s user 0.57s system 2564% cpu 10.746 total Maybe the branded zones are not 100% compatible in terms of errors :-D Ok then, putting the runpath in doesn't seem to have a negative effect as on Solaris 9 onwards the libs point back to /usr/lib or are missing completely which would also mean falling back to /usr/lib which works fine right now. |
(0006659) dam (administrator) 2009-09-04 13:06 |
> pigs (spelt pigz) fails to multithread on Solaris 8. Hey, Mark Adler will hate you if he finds this site ;-) |
(0006660) james (reporter) 2009-09-04 13:06 |
I also double checked, no it was quad checked, on build8s. It's probable you have up-to-date patches. Maybe the zone shares the kernel threads... I don't know! |
(0006661) james (reporter) 2009-09-04 13:11 |
> > pigs (spelt pigz) fails to multithread on Solaris 8. > Hey, Mark Adler will hate you if he finds this site ;-) Robots welcome here. It should be pig-zed anyway in English. |
(0006665) dam (administrator) 2009-09-04 14:40 edited on: 2009-09-04 14:44 |
Neither your suggested solution nor the one officially published from Sun works: <http://developers.sun.com/solaris/articles/alt_thread_lib.html> [^] cd work/build-isa-i386/pigz-2.1.5 && /opt/studio/SOS11/SUNWspro/bin/cc -xO3 -xarch=386 -mt -I/opt/csw/include -c yarn.c "yarn.c", line 20: warning: macro redefined: _REENTRANT cd work/build-isa-i386/pigz-2.1.5 && /opt/studio/SOS11/SUNWspro/bin/cc -xO3 -xarch=386 -mt -I/opt/csw/include -c pigz.c cd work/build-isa-i386/pigz-2.1.5 && /opt/studio/SOS11/SUNWspro/bin/cc -xarch=386 -L/opt/csw/lib -o pigz yarn.o pigz.o -lpthread -lz -R/usr/lib/lwp gmake[1]: Leaving directory `/home/dam/mgar/pkg/pigz/trunk' [build] complete for pigz. build8x% cd work/build-isa-i386/pigz-2.1.5/ build8x% ldd pigz libpthread.so.1 => /usr/lib/libpthread.so.1 libz.so => /usr/lib/libz.so libc.so.1 => /usr/lib/libc.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libthread.so.1 => /usr/lib/libthread.so.1 build8x% dump -Lv pigz pigz: **** DYNAMIC SECTION INFORMATION **** .dynamic: [INDEX] Tag Value [1] NEEDED libpthread.so.1 [2] NEEDED libz.so [3] NEEDED libc.so.1 [4] INIT 0x8059410 [5] FINI 0x805942c [6] RUNPATH /usr/lib/lwp [7] RPATH /usr/lib/lwp [8] HASH 0x8050118 [9] STRTAB 0x8050c40 [10] STRSZ 0x4d6 [11] SYMTAB 0x80504f0 [12] SYMENT 0x10 [13] CHECKSUM 0xbc05 [14] VERNEED 0x8051118 [15] VERNEEDNUM 0x2 [16] PLTSZ 0x270 [17] PLTREL 0x11 [18] JMPREL 0x8051178 [19] REL 0x8051168 [20] RELSZ 0x280 [21] RELENT 0x8 [22] DEBUG 0 [23] FEATURE_1 PARINIT [24] SUNW_CAP 0x8050108 [25] FLAGS 0 [26] FLAGS_1 0 [27] PLTGOT 0x8069a80 build8x% ldd /usr/lib/libpthread.so libthread.so.1 => /usr/lib/libthread.so.1 libdl.so.1 => /usr/lib/libdl.so.1 libc.so.1 => /usr/lib/libc.so.1 LD_LIBRARY_PATH works but RUNPATH does not as the lib is pulled in from libpthread.so which does not have this runpath set. Any ideas? |
(0006666) james (reporter) 2009-09-04 15:07 |
Ah yes, it's the RPATH of libpthread.so that matters. Use wrapper script with LD_LIBRARY_PATH. |
(0006668) dam (administrator) 2009-09-04 16:47 |
New version with wrapper script in place in testing/, please try http://mirror.opencsw.org/testing/pigz-2.1.5,REV=2009.09.04-SunOS5.8-sparc-CSW.pkg.gz [^] http://mirror.opencsw.org/testing/pigz-2.1.5,REV=2009.09.04-SunOS5.8-i386-CSW.pkg.gz [^] |
(0006669) james (reporter) 2009-09-04 16:58 |
Proof - pigs can fly! $ uname -a SunOS gyor 5.8 Generic_117350-38 sun4u sparc SUNW,Ultra-60 $ mkfile 100m /tmp/junk $ ptime pigz -f /tmp/junk real 5.897 user 10.493 sys 0.602 $ uname -a SunOS bala 5.8 Generic_117351-32 i86pc i386 i86pc $ mkfile 100m /tmp/junk $ ptime pigz -f /tmp/junk real 10.994 user 19.463 sys 1.785 |
(0006671) dam (administrator) 2009-09-04 17:08 |
Released to current/ 2.1.5,REV=2009.09.04 |
Copyright © 2000 - 2008 Mantis Group |