[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libc6:m68k 2.28-1



On Thu, 6 Dec 2018, Eero Tamminen wrote:

> On 12/6/18 1:10 AM, Finn Thain wrote:
> > On Tue, 4 Dec 2018, John Paul Adrian Glaubitz wrote:
> > > On 12/3/18 8:13 AM, Finn Thain wrote:
> > > > The problem turns out to be dash. I got things working again by 
> > > > replacing /bin/sh and /bin/dash with symlinks to bash and then 
> > > > running 'apt --fix-broken install' to finish the upgrade.
> > > 
> > > Thanks for the heads-up! I just ran into this problem with 
> > > qemu-system but not with qemu-user. I wonder whether it's related to 
> > > [1].
> > > 
> > 
> > It happens in aranym too. I tried strace,
> > 
> > execve("/root/dash", ["/root/dash", "-c", "/bin/echo"], ["PWD=/",
> > "HOME=/", "BOOT_IMAGE=vmlinux", "TERM=linux", "SHLVL=1",
> > "_=/usr/bin/strace"]) = 0
> > 
> > [...]
> > 
> > get_thread_area()                       = 0xc0022490
> > get_thread_area()                       = 0xc0022490
> > get_thread_area()                       = 0xc0022490
> > get_thread_area()                       = 0xc0022490
> > get_thread_area()                       = 0xc0022490
> > get_thread_area()                       = 0xc0022490
> > get_thread_area()                       = 0xc0022490
> > clone(child_stack=NULL,
> > flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=NULL) =
> > 415
> > wait4(-1,
> > 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
> > --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=415, si_uid=0,
> > si_status=0, si_utime=0, si_stime=2} ---
> > rt_sigreturn({mask=[]})                 = -1 ECHILD (No child processes)
> > get_thread_area()                       = 0xc0022490
> > wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
> > get_thread_area()                       = 0xc0022490
> > wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
> > get_thread_area()                       = 0xc0022490
> > wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
> > get_thread_area()                       = 0xc0022490
> > wait4(-1, 0xefdaba3e, 0, NULL)          = -1 ECHILD (No child processes)
> > 
> > The last two lines loop indefinitely, and dash never teminates, even
> > though the child process has terminated already (SIGCHLD can be seen
> > above).
> 
> With Hatari (68000-68060 Atari) emulator, you should be able profile
> what kernel is doing at CPU instruction level:
> https://hg.tuxfamily.org/mercurialroot/hatari/hatari/raw-file/tip/doc/manual.html#Profiler
> 

I suspect qemu-user avoids the problem by intercepting syscalls (implying 
a 68k kernel bug).

And if a kernel bug was somehow exposed by recent changes to dash, I'd 
expect hatari would behave the same as aranym and qemu-system.

> I don't think anybody's tried running full Linux with Hatari yet (only 
> no-MMU ones), but it shares CPU core with WinUAE, which has been tested 
> with NetBSD & Linux, so Linux "should" work fine e.g. with Hatari's 
> Atari TT emulation.
> 
> I can help with anything Hatari related (first thing, change crypto from 
> sha e.g. to md5, otherwise logging in takes ages, even if cycle- exact 
> emulation is disabled.  Higher emulation accuracy and no JIT, makes 
> Hatari *much* slower than Aranym).
> 
> Note: for 030/040/060 MMU + prefetch + i/d-cache emulation, you should 
> build Mercurial version of Hatari:
> 	hg clone http://hg.tuxfamily.org/mercurialroot/hatari/hatari
> 
> (Latest 2.1 Hatari release emulates either MMU or cache, not both at
> the same time, is quite old and its MMU emulation had several bugs.
> Aranym emulates only 040, and AFAIK doesn't have any cache emulation.)
> 

Sounds very promising!

-- 

> 
> 	- Eero
> 
> 


Reply to: