[OpenAFS] Re: Debugging opportunity (time-sensitive)
Andrew Deason
adeason@sinenomine.net
Wed, 18 May 2011 12:25:01 -0500
This is a multi-part message in MIME format.
--Multipart=_Wed__18_May_2011_12_25_01_-0500_ePG7UFEbB/tBAWzK
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
On Wed, 18 May 2011 11:42:45 -0400
Jeff Blaine <jblaine@kickflop.net> wrote:
> 0 -> afs_GetDCache
> 0 -> afs_MemGetDSlot
> 0 -> Afs_Lock_ReleaseR
> 0 -> afs_osi_Wakeup
> 0 -> afs_getevent
> 0 <- afs_getevent
> 0 <- afs_osi_Wakeup
> 0 <- Afs_Lock_ReleaseR
> 0 <- afs_MemGetDSlot
> 0 -> afs_osi_Sleep
> 0 -> afs_getevent
> 0 <- afs_getevent
So, waiting on tdc->lock, I think?
Try the same thing with the attached D script; it may say who's holding
it.
--
Andrew Deason
adeason@sinenomine.net
--Multipart=_Wed__18_May_2011_12_25_01_-0500_ePG7UFEbB/tBAWzK
Content-Type: text/x-dsrc;
name="traceafs.d"
Content-Disposition: attachment;
filename="traceafs.d"
Content-Transfer-Encoding: 7bit
#pragma D option flowindent
fbt:afs::entry /pid == $target/ {}
fbt:afs::return /pid == $target/ {}
fbt:afs:afs_GetDCache:entry /pid == $target/ {
self->traceme = 1;
}
fbt:afs:afs_GetDCache:return /self->traceme/ {
self->traceme = 0;
}
self unsigned *p;
fbt:afs:afs_osi_Sleep:entry /pid == $target && self->traceme/ {
self->p = (unsigned*)(arg0 & 0xfffffffffffffff8);
printf("event %p = %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u\n",
(void*)arg0
,self->p[0]
,self->p[1]
,self->p[2]
,self->p[3]
,self->p[4]
,self->p[5]
,self->p[6]
,self->p[7]
,self->p[9]
,self->p[10]
,self->p[11]
);
self->p = 0;
}
--Multipart=_Wed__18_May_2011_12_25_01_-0500_ePG7UFEbB/tBAWzK--