any ideas appreciated.

when running plan 9 ip stack under 9vx, i get
a curious situation where the mount table goes
missing, but only for the namec called from
etherbind.  it seems that up->pg isn't right.
the pgrpid is 2 for the call from namec but
3 for the call from the shell.  both seem
wrong.

here's what happens, annotated
with some debugging.

; ip/ipconfig
netifwalk 0 [ipifc]
gen 0 0 00      80.3 ether0
gen 0 0 01      -> -1 (top)
netifwalk 0 [ipifc]
gen 0 0 00      80.3 ether0
gen 0 0 01      -> -1 (top)
netifwalk 0 [ipifc clone]
gen 0 0 00      80.3 ether0
gen 0 0 01      -> -1 (top)
etherbind
chandial /net/ether0!0x800
who you gonna call? /net/ether0/clone
namec /net/ether0/clone
slash 829f860
dumpmount-> pgrpid=2
<-dumpmount
parsename /net: 1 4 11 17
walk error 2: does not exist
error: '/net/ether0' does not exist
ipconfig: /net/ipifc/clone: bind ether /net/ether0: '/net/ether0' does not exist

however, if i inspect the same path from
the shell,

; ls -l /net/ether0/clone
slash 829f860
dumpmount-> pgrpid=3
head: 829d8b0: / 0x0.0 / 0 -> 
        82b2000: / (umh 0) (path 00000000 dev / 0)
        82b2438: /root (umh 82b0af8) (path 0000000b dev / 0)
        829e2e0: #Zplan9 (umh 0) (path 100000002c213 dev Z 2)
[...]

one more tidbit, cat /proc/2/ns ->
; cat /proc/2/ns
9vx panic: kernel fault: signo=11 addr=f8[6830c0f8] 1 eip=807385f esp=93988960
aborting, to dump core.
0x807385f is in procread (9vx/a/devproc.c:897).
892                             return 0;
893                     }
894                     mntscan(mw, p);
895                     if(mw->mh == 0){
896                             mw->cddone = 1;
897                             i = snprint(a, n, "cd %s\n", p->dot->path->s);

- erik

Reply via email to