[Click] SMP SpinLock and Deadlocks
Eddie Kohler
kohler at cs.ucla.edu
Sat Feb 3 18:35:15 EST 2007
Thomas,
Long-delayed reply: I wonder if you compiled your kernel with preemption. I
bet you did. Have you tried without it?
Eddie
Paine, Thomas Asa wrote:
> Beyers,
>
> The last configuration used was...
>
> ./configure --prefix=/backups/staging/click --disable-userlevel
> --enable-multithread=2 --enable-intel-cpu --disable-dynamic-linking
>
> Adding the additional output in sync.hh of course generated what I would
> suspect...
> .
> .
> releasing someone else's lock - owner 0 current cpu 1
> releasing someone else's lock - owner 1 current cpu 0
> releasing someone else's lock - owner 0 current cpu 1
> releasing someone else's lock - owner 1 current cpu 0
> .
> .
>
> As of now, I am not using any additional click-install
> parameters when the module is installed. Adding threads would just
> aggravate the situation. Likewise, since there is only one thread, I am
> not using the StaticThreadSched option to bind elements to threads.
> Right now I am using the sched_setaffinity() system call from
> another process to set the affinity for the click PID, gathered from
> /proc/click/threads after click is running, to keep the thread on one
> virtual CPU, and the system stable.
>
> Thanks,
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Thomas Paine (paineta at uwec.edu)
> University of Wisconsin - Eau Claire
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
> ________________________________
>
> From: Beyers Cronje [mailto:bcronje at gmail.com]
> Sent: Saturday, September 16, 2006 6:27 AM
> To: Paine, Thomas Asa
> Cc: click at pdos.csail.mit.edu
> Subject: Re: [Click] SMP SpinLock and Deadlocks
>
>
> HI Thomas,
>
> What is your click './configure' line used and also what click-install
> parameters are you specifying? Are you using StaticThreadSched in your
> click configuration?
>
> If you are using StaticThreadSched change the Spinlock::Release line to:
>
>
> click_chatter("releasing someone else's lock - owner %i current cpu %i",
> _owner, my_cpu);
>
> This should help narrow down if the problem is in the push/pull path or
> timer/handler related.
>
> Beyers
>
>
> On 9/12/06, Paine, Thomas Asa <PAINETA at uwec.edu> wrote:
>
>
> I have a click package, which contains my custom
> elements.
> Those elements basically maintain maps of IP and data. To
> protect the
> maps during read/write handler operations, I have wrapped the
> critical
> sections using the SpinLock found in the sync.hh.
>
> My typical usage...
>
> ...
> _lock.acquire();
> bleMap->clear();
> _lock.release();
> ...
>
>
> ...
> _lock.acquire();
> bleMap->insert(n, type);
> _lock.release();
> ...
>
>
>
> However, I'm experiencing periodic deadlocks and am seeing these
> types
> of messages very frequently...
>
> "chatter: releasing someone else's lock" ...which is
> coming from
> the SpinLock
>
> I'm seeing these messages even when handlers are not being
> called and I
> nice it a bit... "echo -19 > /click/priority", so I'm not sure
> of the
> scope of the problem. Clearly calling _depth-- on the wrong
> lock would
> lead to accounting problems with the semaphore and deadlock.
> The configuration is currently running on an appliance
> using the
> latest CVS code and the 2.6.16.3 kernel. The appliance is using
> an
> Intel(R) Pentium(R) 4 CPU 3.20GHz with hyperthreading, and the
> kernel is
> running with SMP support. This configuration has been run on
> SMP
> enabled machines before, but with 2 physical processors, and was
> still
> using the 2.4 kernel, so I don't want to make too many
> comparisons
> there. I can say I have not experienced any behavior like this
> in the
> past with the my elements or with click.
>
> The click and custom packages were last configured using the
> following,
> and I've tried several variations of config options to see if I
> could at
> least cause a change, but I haven't seemed to find what's
> broken.
>
> "./configure --prefix=/backups/staging/click
> --disable-userlevel"
>
> At this point, I'm not quite sure where the problem may lie. Is
> this an
> affinity problem with the click kernel module, SpinLock,
> hyperthreading,
> kernel compilation option, or am I just not configuring/using
> something
> correctly? Has anyone else seen these messages unexpectedly?
>
>
>
> Thanks,
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Thomas Paine (paineta at uwec.edu)
> University of Wisconsin - Eau Claire
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
>
>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
More information about the click
mailing list