donderdag, april 29, 2004

TAO 1.3 problems on Linux 2.6

So TAO 1.3 doesn't seem to work on Linux 2.6.

I'm being flooded with futex(0xbffff510, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) messages from strace.

The problem seems to be resolved in TAO 1.4 but using 1.3 is easier since that's the version I'm also using on RTAI. To be able to run a CORBA application, I now have to keep compiling the IDL files with different versions of TAO, which is pretty annoying. So either I start testing the TAO 1.4 port I've been working on monday or I'll have to figure out what is causing the problems with Linux 2.6 and TAO 1.3. Using the old threading library doesn't seem to help. I should reboot using a 2.4 kernel to make sure I'm not hallucinating.

Threading issue

The threading problems were caused by a change of the default stacksize. And yes, some basic functionality has not yet been implemented in NPTL.

vrijdag, maart 05, 2004

NPTL issues

Yesterday, when testing the new TAO/ACE release, I noticed several tests were
failing. I assumed the mistake was ACE's, and debugged it for hours.
Unfortunately, the bug wasn't in ACE, but in the new POSIX threading library for
GNU/Linux (NPTL). This was rather disappointing to me, since I had read nothing
but good about the new threading implementation. The problem occurred because on
thread creation, NPTL just ignores the thread attributes. So, selecting a
scheduler or priority on thread creation doesn't work at all.

Furthermore, I noticed, that the new threading library only allowed me to create
255 threads, while LinuxThreads allowed me to create 1532 concurrent threads.
This is even stranger, as I have read reports on using 100k concurrent threads
with this new threading implementation. Apparantly, somethings wrong here, but I
can't figure out what could be causing this.

And, when I was trying to report these issues to the NPTL developers, I couldn't
find their mailinglist. I could find people referring to it, but I couldn't find
the address :-) Now, for some reason it's called the phil-list... not quiet easy
to associate this with a new threading lib.

maandag, januari 12, 2004

gettimeofday_rt

I just ported the gettimeofday_rt I wrote for the previous release of RTAI to the newest RTAI 3.0. It works just fine for the ACE test! :-) Now, there are just some minor issues related to the prefered style of linking... Next up, is the porting of ACE's debug framework.

zondag, januari 11, 2004


One thing that's still missing from the RTAI Kilauea tree, is a decent gettimeofday function. I've added an implementation to the stable RTAI tree (Stromboli) earlier, so I'll just have to port that one to Kilauea. Without that patch, some ACE/TAO tests will definitely fail.


Other than that, the ACE debugging code has to be ported as soon as possible. Don't know if it's best to shove the data through a real-time FIFO or to just implement is using rt_printk.



A few weeks ago, our TAO/ACE RTAI (Stromboli) port was starting to show some results. The CORBA benchmarking application I wrote about a year ago, worked on RTAI, both in soft and in hard realtime.


Last week, I started porting our TAO/ACE code to the new RTAI tree, called Kilauea. And about three hours ago, I ran all my (collocated) benchmarking code without any crashes! :-)


Furthermore, the official Collocation test included in TAO also works on RTAI 3.0 in hard realtime without any problems! Yay! :-)


I'm using the benchmarking results to create some charts which I'll post later on, to illustrate the achievable performance with TAO/RTAI.

woensdag, november 26, 2003

Last sunday I returned from St. Louis, MO where we worked on porting the TAO realtime CORBA ORB to RTAI. Pics are available here.

maandag, oktober 13, 2003

Today I started with the implementation of an OMG specification called DAIS using Java. The DAIS spec is rather big, so it is by no means a complete implementation. By starting this, I was hoping to get a better idea of the problems that will be encountered when implementing DAIS.

When I started the implementation of the same CORBA object using C++, I noticed that the DAIS specification does not conform to the CORBA 3 IDL specification :-( The CORBA 3 keywords home and typeid are used as typenames in the DAIS specification.

One of those issues was already reported at the OMG website. I just filed a report for the other issue.

And in reporting that issue I noticed that my earlier biographer regarding the Lightweight Log Service, which I thought had been ignored, was being processed (Issue 5884)

donderdag, september 11, 2003

My first post!!!