Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Oct 2007 12:29:10 +0100
From:      Roman Divacky <rdivacky@freebsd.org>
To:        "Valery V.Chikalov" <valera@chikalov.dp.ua>
Cc:        freebsd-emulation@freebsd.org, Ivan Voras <ivoras@freebsd.org>
Subject:   Re: Linux emulation on FreeBSD AMD64
Message-ID:  <20071028112910.GA84830@freebsd.org>
In-Reply-To: <4723A8D6.6020002@chikalov.dp.ua>
References:  <4721AB07.20708@novakom.com.ua> <fg05l9$n32$2@ger.gmane.org> <4723A8D6.6020002@chikalov.dp.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
> exactly what I need as I own old 32bit 9.0.1 Oracle server.
> 
> I have investigated this problem little more.
> 
> Oracle(+ rh7) can be successfully started on FreeBSD 7.0 (i386)
>    SMP capable kernel, SHED_ULE, Core2Duo and so on...
> 
> I fond this: http://wiki.freebsd.org/linux-kernel/ltp
> I don't know how actual this info now, it seems little bit old.
 
its quite accurate...

> I did:
> 
> grep UNIMPL /sys/amd64/linux32/syscalls.master > amd64.unimpl.txt
> grep UNIMPL /sys/i386/linux/syscalls.master > i386.unimpl.txt
> 
> diff i386.unimpl.txt amd64.unimpl.txt
> 
> 6d5
> < 28    AUE_FSTAT       UNIMPL  fstat
> 14d12
> < 86    AUE_USELIB      UNIMPL  linux_uselib
> 16d13
> < 101   AUE_NULL        UNIMPL  ioperm
> 18,19d14
> < 113   AUE_NULL        UNIMPL  vm86old
> < 123   AUE_NULL        UNIMPL  modify_ldt
> 21d15
> < 166   AUE_NULL        UNIMPL  vm86
> 29d22
> < 244   AUE_NULL        UNIMPL  linux_get_thread_area


most of this are either unused by new linux apps or irrelevant
 
> So there is some regression between i386 and AMD64 in a number of system 
> calls emulated.
> 
> But Oracle not dumping core with signal 12(non-existent system call)
> It's saying:
> ==========
> 27122, 00000, "unable to protect memory"
> // *Cause: mprotect() call failed
> ==========
> 
> and than dumps core with signal 11.
> 
> I instrumented mprotect(2) system call in linux32_machdep.c with
> 
> -return (mprotect(td, &bsd_args));
> 
> +ret = mprotect(td, &bsd_args);
> +printf("mprotect addr:%lx, return %d\n", uap->addr, ret);
> +return ret;
> 
> and got something like:
> 
> Oct 27 19:42:59 tiger kernel: mprotect addr:2a27d000, return 0
> Oct 27 19:42:59 tiger kernel: mprotect addr:2a7c1000, return 0
> Oct 27 19:42:59 tiger kernel: mprotect addr:2a7cd000, return 0
> Oct 27 19:42:59 tiger kernel: mprotect addr:2a7e2000, return 0
> Oct 27 19:42:59 tiger kernel: mprotect addr:2a7ef000, return 0
> Oct 27 19:43:09 tiger kernel: mprotect addr:55c00000, return 13
> Oct 27 19:43:09 tiger kernel: mprotect addr:55c81000, return 13
> 
> where 13 is EACCES.

can you show what are the "prot" and "len" arguments?
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071028112910.GA84830>