linuxulator on -CURRENT

Alexander Leidinger Alexander at Leidinger.net
Wed Sep 27 22:36:57 PDT 2006


Quoting Jung-uk Kim <jkim at FreeBSD.org> (from Wed, 27 Sep 2006 20:20:32 -0400):

jhb@ CCed... we try to hunt down the bug which was introduced to amd64  
with the commits which removed the stackgap.

> On Wednesday 27 September 2006 04:34 am, Alexander Leidinger wrote:
>> Quoting Jung-uk Kim <jkim at FreeBSD.org> (from Tue, 26 Sep 2006   
>> 17:33:44 -0400):

>> Maybe instead of playing with gdb/ddb/printfs it may be also
>> possible to use the linux test project testcases to frind the
>> problem. You can download a precompiled version of it from:
>> http://www.leidinger.net/FreeBSD/linuxolator/ltp-full-20060822-read
>> y.tar.bz2
>>
>> Have a look at http://wiki.FreeBSD.org/linux-kernel for a
>> description how to use it and what tests are known to hang on i386
>> (they may or may not hand on amd64, and some of the tests are known
>> to need a little bit of time). I suggest to do this in a
>> gentoo-chroot (linux_dist port, not the linux_base port).
>
> Well, problem is the tool is using shell scripts heavily and it
> doesn't work because it has the exact same problems. :-(
> I ran some binaries manually, though.  I got:

In the archive of LTP on my site there's a verbose logfile in the root  
of the ltp directory. There you can see in which order and with which  
parameters the tests are called. Could you please run them (at least  
until the first syscall, the rest isn't important as long as there is  
this bug) by hand and add a corresponding status and comment to the  
wiki? It may be the case that the problem is somewhere in waitpid, but  
it could also be the case it is somewhere else (fork, clone, ...). But  
we need to see the big picture to determine this.

> %./waitpid06
> waitpid06    1  FAIL  :  Child 2097 did not exit normally
> status: 139
> waitpid06    2  FAIL  :  Child 2099 did not exit normally
> status: 139
> waitpid06    3  FAIL  :  Child 2098 did not exit normally
> status: 139
> waitpid06    4  FAIL  :  Child 2100 did not exit normally
> status: 139
> waitpid06    5  FAIL  :  Child 2101 did not exit normally
> status: 139
> waitpid06    6  FAIL  :  Child 2102 did not exit normally
> status: 139
> waitpid06    7  FAIL  :  Child 2103 did not exit normally
> status: 139
> waitpid06    8  FAIL  :  Child 2104 did not exit normally
> status: 139
> waitpid06    1  FAIL  :  child returned bad status
> waitpid06    2  FAIL  :  waitpid06 FAILED
> %./waitpid07
> waitpid07    1  FAIL  :  Child 2171 did not exit normally
> waitpid07    2  FAIL  :  Child 2170 did not exit normally
> waitpid07    3  FAIL  :  Child 2169 did not exit normally
> waitpid07    4  FAIL  :  Child 2168 did not exit normally
> waitpid07    5  FAIL  :  Child 2175 did not exit normally
> waitpid07    6  FAIL  :  Child 2174 did not exit normally
> waitpid07    7  FAIL  :  Child 2173 did not exit normally
> waitpid07    8  FAIL  :  Child 2172 did not exit normally
> waitpid07    1  FAIL  :  child returned bad status
> waitpid07    2  FAIL  :  waitpid07 FAILED
> %./waitpid08
> waitpid08    1  FAIL  :  Child 2180 did not stopped
> waitpid08    2  FAIL  :  Kill of child 2180 failed, errno = 3
> waitpid08    3  FAIL  :  Child 2181 did not stopped
> waitpid08    4  FAIL  :  Kill of child 2181 failed, errno = 3
> waitpid08    5  FAIL  :  Child 2179 did not stopped
> waitpid08    6  FAIL  :  Kill of child 2179 failed, errno = 3
> waitpid08    7  FAIL  :  Child 2178 did not stopped
> waitpid08    8  FAIL  :  Kill of child 2178 failed, errno = 3
> waitpid08    9  FAIL  :  Child 2182 did not stopped
> waitpid08   10  FAIL  :  Kill of child 2182 failed, errno = 3
> waitpid08   11  FAIL  :  Child 2183 did not stopped
> waitpid08   12  FAIL  :  Kill of child 2183 failed, errno = 3
> waitpid08   13  FAIL  :  Child 2184 did not stopped
> waitpid08   14  FAIL  :  Kill of child 2184 failed, errno = 3
> waitpid08   15  FAIL  :  Child 2185 did not stopped
> waitpid08   16  FAIL  :  Kill of child 2185 failed, errno = 3
> waitpid08    1  FAIL  :  child returned bad status
> waitpid08    2  FAIL  :  waitpid08 FAILED
> %./waitpid09
> waitpid09    1  FAIL  :  status value got 139 expected 0
> waitpid09    2  FAIL  :  case 1 FAILED
> waitpid09    3  PASS  :  case 2 PASSED
> waitpid09    1  BROK  :  child returned bad status
> %./waitpid10
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> waitpid10    1  BROK  :  Unexpected signal 11 received.
> %./waitpid11
> waitpid11    1  FAIL  :  Child 861 did not exit normally
> waitpid11    2  FAIL  :  Child 863 did not exit normally
> waitpid11    3  FAIL  :  Child 862 did not exit normally
> waitpid11    4  FAIL  :  Child 864 did not exit normally
> waitpid11    5  FAIL  :  Child 860 did not exit normally
> waitpid11    6  FAIL  :  Child 859 did not exit normally
> waitpid11    7  FAIL  :  Child 858 did not exit normally
> waitpid11    8  FAIL  :  Child 857 did not exit normally
> waitpid11    9  FAIL  :  Test FAILED
> waitpid11    1  FAIL  :  child returned bad status
> waitpid11    2  FAIL  :  waitpid11 FAILED
> %./waitpid12
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  BROK  :  Unexpected signal 11 received.
> waitpid12    1  FAIL  :  Child 874 exited with wrong status
> waitpid12    1  BROK  :  Unexpected signal 28 received.
> %waitpid12    2  FAIL  :  Expected 3 got 2
> waitpid12    3  FAIL  :  Child 873 exited with wrong status
> waitpid12    4  FAIL  :  Expected 3 got 2
> waitpid12    5  FAIL  :  Child 872 exited with wrong status
> waitpid12    6  FAIL  :  Expected 3 got 2
> waitpid12    7  FAIL  :  Child 871 exited with wrong status
> waitpid12    8  FAIL  :  Expected 3 got 2
> waitpid12    9  FAIL  :  Child 870 exited with wrong status
> waitpid12   10  FAIL  :  Expected 3 got 2
> waitpid12   11  FAIL  :  Child 869 exited with wrong status
> waitpid12   12  FAIL  :  Expected 3 got 2
> waitpid12   13  FAIL  :  Child 868 exited with wrong status
> waitpid12   14  FAIL  :  Expected 3 got 2
> waitpid12   15  FAIL  :  Child 867 exited with wrong status
> waitpid12   16  FAIL  :  Expected 3 got 2
> waitpid12   17  FAIL  :  Test FAILED
>
> Results from waitpid0[1-5] are the same as those of i386 from Wiki.
>
>> Feel free to add content to the wiki.
>>
>> > * PS: I have modified ports/devel/linux_kdump to build without
>> > gentoo. If anybody is interested, you can get it from here:
>> >
>> >       http://people.freebsd.org/~jkim/linux_kdump.tar.gz
>> >
>> >       I just added Linux header files as a patch. :-P
>>
>> I don't like this fix.
>
> Believe me, I don't like it myself.  That's why I didn't attempt to
> commit it. ;-)
>
>> Why not use the package from the build cluster instead?
>
> # uname -mr
> 7.0-CURRENT amd64
> # pkg_add -r linux_kdump
> Error: FTP Unable to get   
> ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-7-current/Latest/linux_kdump.tbz: File unavailable (e.g., file not found, no   
> access)
> pkg_add: unable to fetch   
> 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-7-current/Latest/linux_kdump.tbz' by   
> URL

Yes, as long as there's the bug, we can't build it. The i386 one should work.

Bye,
Alexander.

-- 
If you're wondering if you need to stop and pick up
bread and eggs on the way home, you do.

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137



More information about the freebsd-emulation mailing list