Ticketing spinlocks - How to get to the owner who locked the spinlock?
manty kuma
mantykuma at gmail.com
Tue Jan 27 01:22:30 EST 2015
Dear Arun,
typedef struct raw_spinlock {
arch_spinlock_t raw_lock;
#ifdef CONFIG_GENERIC_LOCKBREAK
unsigned int break_lock;
#endif
#ifdef CONFIG_DEBUG_SPINLOCK
unsigned int magic, owner_cpu;
void *owner;
#endif
#ifdef CONFIG_DEBUG_LOCK_ALLOC
struct lockdep_map dep_map;
#endif
} raw_spinlock_t;
Unfortunately, CONFIG_DEBUG_SPINLOCK is disabled on my sw. So i do not have
this information. :(
Any other way?
On Tue, Jan 27, 2015 at 3:12 PM, Arun KS <getarunks at gmail.com> wrote:
> Hello Manty,
>
> On Tue, Jan 27, 2015 at 11:27 AM, manty kuma <mantykuma at gmail.com> wrote:
> >
> > Hi All,
> >
> > Currently I am looking into an issue which is holding the printk
> lock(logbuf_lock)
> >
> > logbuf_lock = {
> > raw_lock = {
> > owner = 0,
> > next = 4
> > }
> > }
> >
> > I read about ticketing spinlocks to understand the above output. I
> understood that 4 cpu's are waiting for the lock while someone already has
> it.
> >
> > I would like to know who has it? Is there a way I can know which process
> is acquiring a given spinlock? Is the information not stored in it?
> >
> > I am using crash tool to analyse the dump
>
>
> crash> raw_spinlock_t
> typedef struct raw_spinlock {
> arch_spinlock_t raw_lock;
> unsigned int magic;
> unsigned int owner_cpu;
> void *owner;
> } raw_spinlock_t;
> SIZE: 16
>
> The owner field points to task holding the lock, if locked.
>
> Here is what i have in one of my dumps,
> crash> logbuf_lock
> logbuf_lock = $6 = {
> raw_lock = {
> {
> slock = 464001960,
> tickets = {
> owner = 7080,
> next = 7080
> }
> }
> },
> magic = 3735899821,
> owner_cpu = 4294967295,
> owner = 0xffffffff
> }
>
> since lock is not acquired, it shows 0xFFFFFFFF.
> Otherwise point to a task_struct *.
>
> thanks,
> Arun
>
> >
> >
> > Regards,
> > Manty
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150127/05865fb6/attachment.html
More information about the Kernelnewbies
mailing list