Date: Wed, 24 Jul 1996 01:43:33 -0400 (EDT) From: Dmitry Kohmanyuk <dk@dog.farm.org> To: phk@critter.tfs.com (Poul-Henning Kamp) Cc: dk+@ua.net, freebsd-hackers@freebsd.org Subject: Re: lp booting: first cut Message-ID: <199607240543.BAA00994@dog.farm.org> In-Reply-To: <406.838160103@critter.tfs.com> from Poul-Henning Kamp at "Jul 24, 96 00:15:03 am"
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Poul-Henning Kamp: > >Now if somebody would explain me how to trace this mysterious hang by DDB. > >I try to boot -s, and still get a hang. ctrl-alt-esc just throws me into > >debugger with stack trace down to idleloop() or something. `ps' in ddb > >doesn't show anything but a basic crowd (swapper init pagedaemon vmdaemon > >update). I would try to boot -d now. > > Try to run tcpdump on the server and see what comes your way. as I said, the tcpdump in 2.2-960501-SNAP doesn't work with lp0. I have carefully looked at BPF stuff in lpt.c and cannot understand why. I would be grateful for a patch. also, it appears that portmapper is broken at least twice in this snap: first, it cannot get list of all addresses (including aliases) - I have resorted to hack on from_local.c:from_local() to return TRUE always ;-( second, mountd doesn't work if hostname is bound to alias or to nearest end of slip interface, e.g.: working configuration: !ifconfig -au lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 193.124.48.195 --> 193.124.48.198 netmask 0xffffff00 ^^my hostname^^ ^^^diskless^^^ tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 10.0.2.15 --> 10.0.2.2 netmask 0xff000000 lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 inet 193.124.48.200 netmask 0xffffff00 inet 193.124.48.201 netmask 0xffffff00 inet 193.124.48.202 netmask 0xffffff00 if dog.farm.org (193.124.48.195) is bound as alias to lo0 instead (and I use other address for closer end of lp0), or if I bound it to closer end of sl0, mountd and nfsd cannot register with portmapper: not-working configuration: changed lp0: lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 193.124.48.197 --> 193.124.48.198 netmask 0xffffff00 added sl0: sl1: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 inet 193.124.48.195 --> 0.0.0.1 netmask 0xffffff00 I understand that binding addresses to separate slip interface is a kludge, but it is somewhat more reliable kludge than using interface alias. (and I have used to do it on SCO(tm) Unix(tm) 3.2.4.2 <horror>, which doesn't have aliases.) Also, after a couple of hours spent with DDB (btw, why a manual page mentions x/m which doesn't work??), I figured that the hang is inside infinite loop in nfs/nfs_socket.c:nfs_reply(). I have then changed the place where I put my hostname (e.g., changed from non-working to working configuration ;-)), and it started to work! So it seems that this is a multi-homed setup I have which causes this trouble. (probably nfs client sends packets to .195, and expects answers coming back from this address, but they arrive with .197. ) Now I managed to get it single-user (flags s in bootp config file) until `Enter pathname of shell or RETURN for sh:' and `Erase is...' line after that. Then, it hangs. (the only tool I have on the remote side is netstat -I lp0 4, which is pretty enough to see when the interface dies; I cannot ping anymore, I cannot even break to DDB on the client.) At this point, I start to think that my DTR-1 (Cyrix 486SLC, running at 8MHz since running it at 25MHz causes reboot just after loading kernel) is somewhat fundamentally broken and non-compatible with PLIP. I have already tweaked LPMAXSPIN[12]. Please somebody test my patches on more standard machine and report whether they work or not. I am 99% sure that they would be absolutely OK. Dmitry.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199607240543.BAA00994>