[asterisk-dev] Channel locking mechanism in Asterisk
chaitra.bhat at lakecommunications.com
chaitra.bhat at lakecommunications.com
Wed Nov 3 05:29:36 CDT 2010
Hi Mark,
Thanks for your response.
I do not think we will be moving to ver 1.8.0 version of Asterisk since
the Asterisk 1.4.22 code has been customised to suit our platform. Also,
this huge a change might not be welcomed this late into our project. But
since we are looking for some performance improvement in Asterisk, we
might consider the hash table look-up for the channels.
At the same time, moving to reference counted objects for Asterisk
channels might be a bigger risk compared to the hashing of the Asterisk
channels. Could the hash table concept be ported independent of the
reference-counted objects for Asterisk channels?
Thanks,
Chaitra Bhat | Software Engineer
LAKE Communications
Beech House, Greenhills Road,
Dublin 24, IRELAND
Int: +353 1 4031067
fax. +353 1 452 0826
www.lakecommunications.com
Mark Michelson <mmichelson at digium.com>
Sent by: asterisk-dev-bounces at lists.digium.com
01/11/2010 14:34
Please respond to
Asterisk Developers Mailing List <asterisk-dev at lists.digium.com>
To
asterisk-dev at lists.digium.com
cc
Subject
Re: [asterisk-dev] Channel locking mechanism in Asterisk
On 11/01/2010 05:06 AM, chaitra.bhat at lakecommunications.com wrote:
Hi All,
We use Asterisk version 1.4.22 in our PBX product. But we have seen that
the locking mechanism that exists in the channel code today is highly
inefficient and CPU consuming. Also, if not careful with the locks order,
can lead to deadlocks.
So, was wondering if anything has changed with regard to this in the later
versions of Asterisk (1.4 or 1.6). There were talks of introducing a
reference counting mechanism - was this implemented?
If I see channel.c and lock.h in 1.4.36, I do not see any changes there
wrt the locking mechanism. And in ver 1.6.2, except for the RW locks, I do
not see any other difference.
Can somebody tell me what changes were introduced in Asterisk 1.6 to
manage and debug the locking of the channels efficiently please?
Thanks,
-Bhatc
You're not going to find any major changes to the channel structure in the
1.6.X series. In the recently released 1.8 series, the ast_channel
structure has been converted to a reference-counted object and is stored
in a hash table instead of a linked list. The biggest gain here is quicker
lookups of channels. Regarding locking mechanisms, there's not much change
there, so you still need to be careful and respect the defined locking
order. There were a small set of cases where a channel lock was replaced
by grabbing a reference to the channel instead, but there may be 2 or 3
cases of this total in the whole code base.
Mark Michelson--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev
************************************************************************************
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify mailadmin at lakecommunications.com
This footnote also confirms that this email message has been scanned for the presence of computer viruses and other security threats.
Registered Office: Lake Communications Ltd, Beech House, Greenhills Road, Dublin 24, Ireland.
Registered No. 59890
************************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20101103/959e9398/attachment.htm
More information about the asterisk-dev
mailing list