[openib-general] Re: mstflint failing on sparc64
Michael S. Tsirkin
mst at mellanox.co.il
Tue Jan 11 10:11:15 PST 2005
Hello!
Quoting r. Tom Duffy (tduffy at sun.com) "Re: [openib-general] Re: mstflint failing on sparc64":
> On Tue, 2005-01-11 at 12:37 +0200, Michael S. Tsirkin wrote:
> > I am guessing that the last test you sent me was on a 32 bit
> > platform though?
>
> No, userspace is 32bit on sparc64, but kernel is 64 bit.
>
> tat:~# file mstflint
> mstflint: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), for
> GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped
> tat:~# uname -a
> Linux tat 2.6.10openib #14 SMP Mon Jan 3 12:30:51 PST 2005 sparc64
> GNU/Linux
>
> > I think I've got it.
> > Could you please update to 1506 or later and try again (with strace),
> > if possible on sparc64 first?
Here's a patch that adds some debug printouts.
Cold you run with this applied, please, mayba I'll se what is wrong?
Index: mtcr.h
===================================================================
--- mtcr.h (revision 1506)
+++ mtcr.h (working copy)
@@ -236,6 +236,8 @@
else
goto error;
+ fprintf(stderr,"found line :\"%s\"\n", buf);
+
if (cnt != 17 || size[1] != 0 || size[0] != 0x100000)
{
fprintf(stderr,"proc: unexpected region size values: "
@@ -252,10 +254,13 @@
goto error;
}
+ fprintf(stderr,"base_addr[0]=%#llx, base_addr[1]=%#llx\n",
+ base_addr[0], base_addr[1]);
offset=((unsigned long long)(base_addr[1])<<32)+
((unsigned long long)(base_addr[0])&~(unsigned long long)(0xfffff));
+ fprintf(stderr,"mfind offset=%#llx\n", offset);
*offset_p=offset;
fclose(f);
@@ -302,6 +307,8 @@
if (mfind(name,&offset)) goto map_failed;
+ fprintf(stderr,"mmap offset=%#llx\n", offset);
+
mf->ptr = mmap(NULL, 0x100000, PROT_READ | PROT_WRITE,
MAP_SHARED, mf->fd, offset);
More information about the general
mailing list