Re: [GnomeMeeting-devel-list] GnomeMeeting on 2.6



On Fri, 2004-01-30 at 11:41, Damien Sandras wrote:
> Who is using the 2.6 kernel and is ready to test the latest changes with
> it?
> 
> Craig, given the fact that many packagers will compile on 2.4, what is
> your suggestion?
> 
> I tried on the 2.4 kernel to force the P_HAS_SEMAPHORES to 0 and I have a
> bad sound quality when compiling, which I had not with P_HAS_SEMAPHORES
> set to 1.
> 
> The problem becomes complex. Having a bad sound quality is not
> problematic. What was problematic on 2.6 was to have people having bad
> sound quality as soon as they were moving a window.
> 
> What are your comments?
> 

Hi,

I took the gnomemeeting on 2.6 problem to linux-kernel around Christmas
last year and I'm happily running gnomemeeting daily and stable since
the discussion back then.

Unfortunately I switched my laptop from a PIII 450Mhz to PIV 2GHz where
the problem is less obvious. But still even on the 2 GHz laptop the
sound gets distorted with slight load on the machine in the
gnomemeeting-cvs Debian default packaging.

BTW it's really unlikely that the problem has anything to do with audio
drivers as the problem persisted whether I used OSS or ALSA on a
mastro2e chipset (450 MHz) or ALSA on the intel8x0 (2GHz).

Ingo Molnar (the Linux scheduler maintainer) pointed out in December
that the sched_yield usage in pwlib is broken. He suggested to just
nanosleep for 1 timeslice instead.

I tested two approaches:

* compile a shared library with sched_yield defined to a noop and run
gnomemeeting via library preloading with this shared library, called the
romp hack in a paper by David Mosberger-Tang

* substitute the Yield function in pwlib with nanosleep

The first approach seems to hang the GUI and slow down the GUI update
rate resulting in a very sluggish gnomemeeting feeling. Nevertheless
audio quality is improved but at a GUI usability cost.

The second approach is what I'm using since December and audio quality
is rock stable even under heavy load for me.

--- pwlib-cvs-20040128.CVS.orig/src/ptlib/unix/tlibthrd.cxx
+++ pwlib-cvs-20040128.CVS/src/ptlib/unix/tlibthrd.cxx
@@ -1057,7 +1057,8 @@
                                                                                
 void PThread::Yield()
 {
-  sched_yield();
+  struct timespec timer = { 0, 1 };
+  nanosleep (&timer, NULL);
 }


Note that I didn't try to play around with the P_HAS_SEMAPHORES because
I just wanted to fix the sched_yield usage without changing much else.

So in summary after compiling a patched pwlib my gnomemeeting problems
where gone. Without the patched pwlib gnomemeeting was unusable even
with the slightest load on the machine be it a 450 MHz or 2 Ghz
processor.

I'm interested in experiences from others.




			Christian

-- 
Christian Meder, email: chris onestepahead de
 
What's the railroad to me ?
I never go to see
Where it ends.
It fills a few hollows,
And makes banks for the swallows, 
It sets the sand a-blowing,
And the blackberries a-growing.
                      (Henry David Thoreau)
 







[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]