Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Dec 2001 14:21:54 +0100
From:      Willem van Engen <wvengen@stack.nl>
To:        "Andrew Gallatin" <gallatin@cs.duke.edu>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: flexlm: works with linux_base-6, fails with linux_base-7
Message-ID:  <20011212142154.2fcf4740.wvengen@stack.nl>
In-Reply-To: <15382.23861.710621.118157@grasshopper.cs.duke.edu>
References:  <20011210115204.6ddde325.wvengen@stack.nl> <15382.5752.295875.987980@grasshopper.cs.duke.edu> <20011211184131.0425b1fd.wvengen@stack.nl> <15382.23861.710621.118157@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 11 Dec 2001 14:23:33 -0500 (EST)
"Andrew Gallatin" <gallatin@cs.duke.edu> wrote:

> 
> Willem van Engen writes:
> 
>  > So this is a fcntl64(fd, F_SETLK, {0,0,0,F_WRLCK,SEEK_CUR}).
>  > When I look at it with linux_base-6, the same arguments are used.
>  > At the moment I have no clue.
> 
> I don't see anything obvious either.  Are you sure that the 
> bsd_flock contains the same thing in the linux_base-6 case?
Acutally no, there is a difference. I got lost in printf %[l][l]x stuff.

linux_base-7:
  linux(2810): fcntl64(4, 00000006, *)
  > fcntl_bsd(4, F_SETLK, flock)
  > bsd.l_start = 0, lin.l_start = 0
  > bsd.l_len = bfbff15000000000, lin.l_len = bfbff15000000000
  > bsd.l_pid= 280cbc80, lin.l_pid = 280cbc80
  > bsd.l_type= 3, lin.l_type = 1
  > bsd.l_whence= 1, lin.l_whence = 1
linux_base-6:
  linux(2801): fcntl(4, 00000006, *)
  > fcntl_bsd(4, F_SETLK, flock)
  > bsd.l_start = 0, lin.l_start = 0
  > bsd.l_len = 0, lin.l_len = 0
  > bsd.l_pid= 0, lin.l_pid = 0
  > bsd.l_type= 3, lin.l_type = 1
  > bsd.l_whence= 1, lin.l_whence = 1

> If so, there might be some other difference that's causing the
> fnctl to fail.
> 
> The next thing I'd do is to set a ddb breakpoint in linux_fcntl64 &
> step through its call to fcntl().  Or just instrument the F_SETLK path
> of fcntl, but that mgith lead to too many printfs.

I did some kernel debugging, and iirc the error 22 occured in
/sys/kern/kern_descrip.c line 324 at VOP_ADVLOCK. But I'm not entirely
sure and currently I have problems with symbols tables and remote kgdb, so
I can't check it now.
Anyway, if you see anything, great, but it's getting time-consuming so
I'll investigate it further at a later time.
Thanks for your help so far :)

- Willem

> 
> Cheers,
> 
> Drew

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message




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