Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jan 2011 13:24:43 +0100
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        freebsd-emulation@freebsd.org, rdivacky@freebsd.org
Subject:   Re: epoll workaround for linux java?
Message-ID:  <20110117132443.12425wsnnktdbvk0@webmail.leidinger.net>
In-Reply-To: <4D3363A5.9000207@cs.duke.edu>
References:  <4D3363A5.9000207@cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Andrew Gallatin <gallatin@cs.duke.edu> (from Sun, 16 Jan 2011  
16:31:17 -0500):

> Hi,
>
> I'm trying to run SageTV, which is a commercial, closed source
> linux media server on -current.  It is a Java based application
> that uses "native" linux JNI libs for accessing video tuner
> cards, so unfortunately I must run the Linux JVM, and not
> a native JVM.
>
> I've installed the default linux_base-f10, and the
> linux-sun-jdk-1.6.0.22.
>
> When I start the application, it semi-works, but the
> clients cannot connect.  Using kdump && linux-ktrace,
> I think I've narrowed the problem to:
>
>
>   9613 java     CALL  linux_epoll_create
>   9613 java     RET   linux_epoll_create -1 errno 78 Function not implemented
>   9613 java     CALL  gettimeofday(0x513c9ea0,0)
>   9613 java     RET   gettimeofday 0
>   9613 java     CALL  gettimeofday(0x513c9eb4,0)
>   9613 java     RET   gettimeofday 0
>   9613 java     CALL  write(0x4,0x513c7cb0,0x78)
>   9613 java     GIO   fd 4 wrote 120 bytes
>        "Sun 1/16 12:05:57.648 [MiniUIServer@14b5f4a] MiniUI  
> ServerSocket died from:java.io.IOException: Function not impleme\
>         nted"
>
>
> I've done some googling, and it appears that epoll support
> was worked on as a SOC project in 2007 by rdivacky.  Eg:
> http://p4db.freebsd.org/fileLogView.cgi?FSPC=//depot/projects/soc2007/rdivacky/linux_epoll/sys/compat/linux/linux_epoll.c
> Were there problems with this code?

AFAIR it's not complete... Roman (CCed)?

> Last, is there any workaround to be able to use a linux
> jvm?  Perhaps by using a different linux base?  What
> would I be giving up?

Normally it is a combination of linux_base and the sysctl  
compat.linux.osrelease. In our kernel there is a difference between  
setting osrelease to 2.4 or to 2.6. For the glibc in the linux_base  
there _may_ be a difference even in the 3rd number (depends upon how  
the glibc is compiled). This can enable/disable some features glibc  
tries to use. AFAIR linux_base-f10 needs 2.6.x, IIRC fc6 is the latest  
version you can use with 2.4.x.

Bye,
Alexander.

-- 
Just because your doctor has a name for your
condition doesn't mean he knows what it is.

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137



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