This is the mail archive of the
frysk@sources.redhat.com
mailing list for the frysk project.
Re: New Isa code, switching between 64 and 32 bit isas.
- From: Nurdin Premji <npremji at redhat dot com>
- To: Frysk Hackers <frysk at sourceware dot org>
- Date: Tue, 05 Dec 2006 13:27:08 -0500
- Subject: Re: New Isa code, switching between 64 and 32 bit isas.
- References: <1164932605.3416.16.camel@tow.toronto.redhat.com>
On Thu, 2006-11-30 at 19:23 -0500, Nurdin Premji wrote:
> I've submitted a working testcase to the NewIsa branch that shows that
> frysk can switch back and forth between 64 bit and 32 bit isa's.
>
Some more examples, I've run ftrace on the following and here is a
compressed log of what ftrace found:
uname -r
2.6.17-1.2187_FC5
/notnfs/npremji/other-build/frysk/bindir/fstack
/notnfs/npremji/other-build/frysk-core/frysk/pkglibexecdir/funit-exec 0
12 100
/notnfs/npremji/other-build/frysk-core/frysk/pkglibexecdir/arch32/funit-exec 0 12 100
/notnfs/npremji/other-build/frysk-core/frysk/pkglibexecdir/funit-exec 0
12 100 /bin/echo hello &> ftrace.log
Ftrace.main() Proc.getPid() 7213
Ftrace.main()
Proc.getExe() /notnfs/npremji/other-build/frysk-core/frysk/pkglibe
xecdir/funit-exec
7213.7213 <SYSCALL> brk (NULL)7213.7213 = 5251072
7213.7213 <SYSCALL> mmap (NULL,4096,3,34,-1,0)7213.7213 =
0x2aaaaaaab000
7213.7213 <SYSCALL> uname (0x7fff2aea13a0)7213.7213 = 0
7213.7213 <SYSCALL> access ("/etc/ld.so.preload",4)7213.7213 = -1
ERRNO=2
7213.7213 <SYSCALL> open ("/etc/ld.so.cache",0,1)7213.7213 = 3
7213.7213 <SYSCALL> fstat (3,0x7fff2aea0a70)7213.7213 = 0
7213.7213 <SYSCALL> mmap (NULL,130165,1,2,3,0)7213.7213 =
0x2aaaaaaac000
7213.7213 <SYSCALL> close (3)7213.7213 = 0
7213.7213 <SYSCALL> open
("/lib64/libpthread.so...",0,-1431654400)7213.7213 = 3
7213.7213 <SYSCALL> read (3,0x7fff2aea0bf8,832)7213.7213 = 832
.....
7213.7213 <SYSCALL> execve
(0x7fff2aea2adc,0x7fff2aea16f8,0x7fff2aea1750)7213.72
13 = 0
7213.7213 <SYSCALL> brk (NULL)7213.7213 = 134524928
7213.7213 <SYSCALL> mmap2 (NULL,4096,3,34,-1,-38)7213.7213 = 0xf7ffd000
7213.7213 <SYSCALL> access ("/etc/ld.so.preload",4)7213.7213 = -1
ERRNO=2
7213.7213 <SYSCALL> open ("/etc/ld.so.cache",0,0)7213.7213 = 3
7213.7213 <SYSCALL> fstat64 (3,0xffbbb37c)7213.7213 = 0
7213.7213 <SYSCALL> mmap2 (NULL,130165,1,2,3,-38)7213.7213 = 0xf7fdd000
7213.7213 <SYSCALL> close (3)7213.7213 = 0
7213.7213 <SYSCALL> open ("/lib/libpthread.so.0...",0,0)7213.7213 = 3
.....
7213.7213 <SYSCALL> execve (0xffbbdb2b,0xffbbbd74,0xffbbbd90)7213.7213
= 0
7213.7213 <SYSCALL> brk (NULL)7213.7213 = 5251072
7213.7213 <SYSCALL> mmap (NULL,4096,3,34,-1,0)7213.7213 =
0x2aaaaaaab000
7213.7213 <SYSCALL> uname (0x7fffa1271850)7213.7213 = 0
7213.7213 <SYSCALL> access ("/etc/ld.so.preload",4)7213.7213 = -1
ERRNO=2
7213.7213 <SYSCALL> open ("/etc/ld.so.cache",0,1)7213.7213 = 3
7213.7213 <SYSCALL> fstat (3,0x7fffa1270f20)7213.7213 = 0
7213.7213 <SYSCALL> mmap (NULL,130165,1,2,3,0)7213.7213 =
0x2aaaaaaac000
7213.7213 <SYSCALL> close (3)7213.7213 = 0
7213.7213 <SYSCALL> open
("/lib64/libpthread.so...",0,-1431654400)7213.7213 = 3
....
7213.7213 <SYSCALL> execve
(0x7fffa1272b81,0x7fffa1271ba8,0x7fffa1271bc0)7213.72
13 = 0
7213.7213 <SYSCALL> brk (NULL)7213.7213 = 5263360
7213.7213 <SYSCALL> mmap (NULL,4096,3,34,-1,0)7213.7213 =
0x2aaaaaaab000
7213.7213 <SYSCALL> uname (0x7fffb7ee9570)7213.7213 = 0
7213.7213 <SYSCALL> access ("/etc/ld.so.preload",4)7213.7213 = -1
ERRNO=2
7213.7213 <SYSCALL> open ("/etc/ld.so.cache",0,1)7213.7213 = 3
7213.7213 <SYSCALL> fstat (3,0x7fffb7ee8c40)7213.7213 = 0
7213.7213 <SYSCALL> mmap (NULL,130165,1,2,3,0)7213.7213 =
0x2aaaaaaac000
7213.7213 <SYSCALL> close (3)7213.7213 = 0
7213.7213 <SYSCALL> open ("/lib64/libc.so.6",0,-1431654400)7213.7213 =
3
Which shows a switch between an initial 64 bit process, to a 32 bit
process, back to a 64 bit process, (and then another 64 bit
process /bin/echo hello)