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. :(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;
On Tue, Jan 27, 2015 at 3:12 PM, Arun KS <getarunks@xxxxxxxxx> wrote:
Hello Manty,
crash> raw_spinlock_t
On Tue, Jan 27, 2015 at 11:27 AM, manty kuma <mantykuma@xxxxxxxxx> 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
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@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies