harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Zakharov" <alexei.zakha...@gmail.com>
Subject Re: [classlib][nio] epoll()-based Selector
Date Tue, 09 Oct 2007 06:18:18 GMT
AFAIK Harmony snapshots will not work on pre-2.6 kernels anyway since
DRLVM has some issues with it. For details please see an old
discussion at [1] and especially Salikh's reply at [2]. As far as I
understand the issue is still relevant for the current version of
DRLVM, at least I haven't seen any discussions about it since then.

[1] http://gmane.comp.java.harmony.devel/23045
[2] http://gmane.comp.java.harmony.devel/23167

With Best Regards,
Alexei

2007/10/8, Alexei Fedotov <alexei.fedotov@gmail.com>:
> Hello Jimmy,
>
> > However I have a concern that, shall we offer a build for the
> > users with a previous version of Linux kernel 2.6 (maybe there's a lot
> > of them who also require JDK)?
>
> I believe we need to look forward and take advantage of new OS and
> hardware features. We offer stable releases (harmony trunks) of older
> versions and may support and patch them if a customer requests. But
> generally we should be going forward and becoming more effective.
>
> Thanks!
>
> On 10/8/07, Jimmy,Jing Lv <firepure@gmail.com> wrote:
> > Hi,
> >
> >    It's really cool ! :)
> >
> >    However I have a concern that, shall we offer a build for the
> > users with a previous version of Linux kernel 2.6 (maybe there's a lot
> > of them who also require JDK)? IMHO, at least we can reserve a copy of
> > previous implementation of select for that?
> >    We may modify the makefile or build.xml for that?
> >
> > 2007/10/4, Aleksey Shipilev <aleksey.shipilev@gmail.com>:
> > > Hi again,
> > >
> > > I have updated the JIRA [1] with the final patch, all known
> > > performance issues were resolved. I have also run extensive experiment
> > > for measuring the performance of Selector.selectNow() operation on
> > > current and epoll-based implementations comparing to Sun 1.6.0. You
> > > might find the results in the JIRA attachment: comparison of current
> > > and epoll-based implementation [2].
> > >
> > > This implementation successfully passes JUnit tests and simple
> > > workloads. It's also does not change anything in the classlib (not
> > > saying about makefiles), additional option should be specified to
> > > enable epoll functionality, so it's safe to apply this patch at any
> > > time.
> > >
> > > BTW, as I found not so long ago, epoll-based Selector is the main
> > > improvement for java.nio.* in Sun 1.6.0 classlib [3], and we're going
> > > neck and neck with them [4] :)
> > >
> > > Thanks,
> > > Aleksey Shipilev,
> > > ESSD, Intel
> > >
> > > [1] https://issues.apache.org/jira/browse/HARMONY-4879
> > > [2] https://issues.apache.org/jira/secure/attachment/12367060/2000-all.png
> > > [3] http://java.sun.com/javase/6/docs/technotes/guides/io/enhancements.html
> > > [4] https://issues.apache.org/jira/secure/attachment/12367060/2000-best.png
> > >
> > > On 10/1/07, Aleksey Shipilev <aleksey.shipilev@gmail.com> wrote:
> > > > Hi all,
> > > >
> > > > I would like to present the epoll()-based java.nio.channels.Selector
> > > > for Harmony. Epoll facility [1] was developed as the part on Linux
> > > > Kernel starting from version 2.5.44, and its interface was finalized
> > > > starting before 2.6.x kernels. Epoll is generally driven by callbacks
> > > > inside the kernel and thus it strives to be O(1), whereas legacy
> > > > poll() and select() are driven by traversing linked lists and thus
> > > > being O(n).
> > > >
> > > > You can find draft implementation at HARMONY-4879 [2]. This version is
> > > > ready to play, but not intended for inclusion, since there are a
> > > > couple of performance problems persist (like possible O(n^2) at
> > > > processSelectResults()). I will try to eliminate them in several days.
> > > > However, this patch successfully passes JUnit tests and might be ready
> > > > to be tried on some networking-heavy workloads.
> > > >
> > > > Speaking about performance results, simple test which registers 2000
> > > > channels on one Selector and then continuously calls selectNow()
> > > > reveals this:
> > > >
> > > > Harmony-r576670:
> > > >  connect time: 100538 msecs
> > > >  selectNow() time (10000 times): 27777 msecs
> > > >
> > > > Harmony-r576670 + HARMONY-4879:
> > > >  connect time: 832 msecs
> > > >  selectNow() time (10000 times): 87 msecs
> > > >
> > > > Speedups:
> > > >  connect: 120x
> > > >  selectNow(): 320x
> > > >
> > > > More details are in JIRA.
> > > >
> > > > Is someone interested in the topic?
> > > > I would like to collaborate with you then - to prevent duplication of
work :)
> > > >
> > > > [1] http://lse.sourceforge.net/epoll/index.html
> > > > [2] https://issues.apache.org/jira/browse/HARMONY-4879

Mime
View raw message