[9fans] taslock.c change. - Plan9

This is a discussion on [9fans] taslock.c change. - Plan9 ; can someone explain why this panic was removed from taslock.c? taslock.c:145,153 - /n/sources/plan9/sys/src/9/port//taslock.c:145,150 panic("corrupt ilock %p pc=%luX m=%p isilock=%d", l, l->pc, l->m, l->isilock); } - if(l->m == MACHP(m->machno)) - panic("ilock: deadlock on cpu%d pc=%luX lockpc=%luX\n", - m->machno, pc, l->pc); for(; ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: [9fans] taslock.c change.

  1. [9fans] taslock.c change.

    can someone explain why this panic was removed from taslock.c?

    taslock.c:145,153 - /n/sources/plan9/sys/src/9/port//taslock.c:145,150
    panic("corrupt ilock %p pc=%luX m=%p isilock=%d",
    l, l->pc, l->m, l->isilock);
    }
    - if(l->m == MACHP(m->machno))
    - panic("ilock: deadlock on cpu%d pc=%luX lockpc=%luX\n",
    - m->machno, pc, l->pc);
    for(;{
    lockstats.inglare++;
    splx(x);

  2. Re: [9fans] taslock.c change.

    > taslock.c:145,153 - /n/sources/ plan9/sys/src/9/port//taslock.c:145,150
    > panic("corrupt ilock %p pc=%luX m=%p isilock=%d",
    > l, l->pc, l->m, l->isilock);
    > }
    > - if(l->m == MACHP(m->machno))
    > - panic("ilock: deadlock on cpu%d pc=%luX lockpc=%luX\n",
    > - m->machno, pc, l->pc);
    > for(;{
    > lockstats.inglare++;
    > splx(x);


    i removed them because they contradicted the
    comment a few lines up:

    /*
    * Cannot also check l->pc and l->m here because
    * they might just not be set yet, or the lock might
    * even have been let go.
    */

    and so i thought the deadlock message i was getting
    was actually incorrect.

    it should go back, i suppose -- my problem turned
    out that the deadlock message was mostly correct
    and that some stray kernel code was scribbling on
    other people's memory. but if it does go back
    the coherence lines in iunlock should move up one
    statement, i believe.

    russ


+ Reply to Thread