pjmedia only in linux kernel

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

 



Thanks, Dan.  

This is to add VoIP to a gateway box that spends a lot of time in
the kernel doing network processing... even with realtime scheduling,
i'm afraid that preemption by the kernel may result in unwanted latency.

I would think that this might also be of interest to someone who is 
dividing the work between two processors...
but i guess it is not an issue most people would face.

-Ted

>
> Putting pjmedia in kernel space in order to increase performance is the
> wrong way to go IMHO. If the performance and latency isn't what you require
> there are other ways to handle it than porting pjmedia to a kernel module.
> First of all read:
> http://trac.pjsip.org/repos/wiki/FAQ#Performance, and then read:
> http://trac.pjsip.org/repos/wiki/FAQ#media.
>
> If you're still having problems with performance there are(at least) two
> ways that has saved my day a couple of times:
>
> 1. Optimize the source code yourself. Coding the re-sample filter in
> in-line assembler can do wonders with the performance ;-)
>
> 2. When the sound device port is used as a clock source it is important
> that the thread handling the audio is interrupted as little as possible. To
> do this you may write you own audio back end that handles the sound in a
> thread with a high scheduling priority and a real-time scheduling
> policy(SCHED_RR or SCHED_FIFO). Note that the application needs to have
> superuser privileges in order to set the schedule policy to SCHED_RR or
> SCHED_FIFO.
>
> Regards,
> Dan
>
> Ted Merrill wrote:
> > Does anyone have opinions on whether putting putting pjmedia
> > into the linux kernel (with the remainder of pj stack in user
> > space for safety) would significantly reduce latency on a busy
> > system? The theory is that, in addition to avoiding round trips to
> > user space, the code in the kernel could be made to run at
> > signicantly higher priority than would be possible in user space
> > (aided by some suitable locking).
> >
> > Although the entire pj stack seems to have been ported to linux
> > kernel, there is no code provided to run pjmedia in a different
> > process (or processor!) than the upper part of the stack...
> > some sort of system of messages would need to be used to "remotely"
> > connect pjmedia with the upper stack.
> > Has anyone thought about issues involved with this?
> >
> > Has anyone recently run the entire pj stack in the linux kernel?
> > recently run parts of it? Is it still working?
> >
> > Thanks
> > Ted Merrill
> >
> > _______________________________________________
> > Visit our blog: http://blog.pjsip.org
> >
> > pjsip mailing list
> > pjsip at lists.pjsip.org
> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux