Hi all,

Small update from my side: I'm currently trying to determine the exact patch or patch set that is responsible for the described problem.

Earlier I assumed a change in `[...]/sys/netinet/if_ether.c` could be responsible, but from my testing this is not the case (see below).

I compiled a bsd.IP22 kernel for every change date for `[...]/sys/netinet/if_ether.c` between 5.5 and 5.6 after using `cvs update -d-R -D <DATE>` (I started with the content of [1]). As I'm totally new to CVS, please let me know if I made a mistake with that command. My intention was to update my sandbox with all changes up to a specific date.

[1]: http://ftp.vim.org/OpenBSD/5.5/sys.tar.gz

I then booted all the resulting kernels with the Indy and so could at least find out that the assumed responsible change must have happened between:

"Mon Jun 16 19:47:21 2014 UTC"

...and:

"Sat Jul 12 14:26:00 2014 UTC"

...because the kernel from June still works, but the kernel from July cannot successfully complete the reverse ARP.

I ruled out that a change in `[...]/sys/netinet/if_ether.c` alone could be responsible, because when reverting the change to this file from "Sat Jul 12 14:26:00 2014 UTC" and compiling the bsd.IP22 kernel with this repo state it's still not working properly.

Do you have any suggestions on how to proceed, because there were still a lot of changes between those two dates. Even when removing changes to other architectures, the remaining patches are still about 1 MiB.

If time allows I'll try to do some manual bisecting with the dates of the remaining commits this weekend and try out the resulting IP22 kernels on my Indy. To be sure the issue still exists, I'll also try the final OpenBSD 6.0 kernel for IP22.

Bye
Frank

On 08/20/2016 05:11 PM, Frank Scheiner wrote:
>>Synopsis: SGI Indy netboot not working since OpenBSD 5.6 and still in
> 6.0-current (#686) (for GENERIC-IP22)
>
>>Category: kernel sgi
>
>>Environment (taken from OpenBSD 5.5):
> System      : OpenBSD 5.5
> Details : OpenBSD 5.5 (GENERIC-IP22) #127: Tue Mar 4 16:19:56 MST 2014
>
> dera...@sgi.openbsd.org:/usr/src/sys/arch/sgi/compile/GENERIC-IP22
>
> Architecture: OpenBSD.sgi
> Machine     : sgi
>
>>Description:
> I'm trying to netboot a SGI Indy (w/R4400) using `bootecoff` and the
> GENERIC-IP22 kernel of the respective OpenBSD versions (5.9 and
> 6.0-current (builddate: 1471615628)). Everything works fine until the
> kernel tries to determine the IP address of the network interface (sq0
> is the only network interface in this machine!) used for netbooting via
> RARP. It states that its RARP requests are not answered, but when
> sniffing the network traffic between the Indy and the next RARP server
> (same as the NFS server that serves the root FS of the Indy) I can see
> that all RARP requests that orginate from the Indy are answered with the
> designated IP address. But the Indy doesn't seem to recognize these
> answers or just ignores them. I then built a root FS using OpenBSD 5.2
> (the first version that had support for the Indy) and netbooted with
> this root FS and the respective loader and kernel, which worked fine.
> Some further root FS building and testing later I found out that the
> last OpenBSD version where netbooting works ok for the Indy is OpenBSD
> 5.5. The RARP problems described above start with OpenBSD 5.6. I sadly
> don't know if this is due to changes to the SGI specific part of the
> kernel or due to changes in the nfs ([...]/sys/nfs/nfs_boot.c) or RARP
> ([...]/sys/netinet/if_ether.c) related parts. I have an Octane2 ready
> for kernel compilation and would be glad to test out any proposed
> patches with my Indy.
>
>>How-To-Repeat:
> Netboot a SGI Indy with OpenBSD >= 5.6.
>
>>Fix:
> Unknown.
>
> These are the firmware messages, the boot messages for 6.0-current
> (builddate: 1471615628) until the kernel panics, the trace and the
> output of `ps` and `show registers`:
> ```
>>> version
> PROM Monitor SGI Version 5.0 Rev B6 IP24 Sep 28, 1994 (BE)
>>>  boot --s
> Setting $netaddr to 192.168.178.58 (from server )
> Obtaining /bootecoff from server
> 37920+192+2592 entry: 0x880020f0
>
> OpenBSD/sgi-IP22 ARCBios boot version 1.6
> arg 0: bootp()/bootecoff
> arg 1: -s
> arg 2: ConsoleIn=serial(0)
> arg 3: ConsoleOut=serial(0)
> arg 4: SystemPartition=bootp()
> arg 5: OSLoader=bootecoff
> arg 6: OSLoadPartition=bootp()
> arg 7: OSLoadFilename=indy
> arg 8: OSLoadOptions=-s
> Boot: bootp()indy
> Setting $netaddr to 192.168.178.58 (from server )
> Obtaining indy from server
> Setting $netaddr to 192.168.178.58 (from server )
> Obtaining indy from server
> 3538216+964696Setting $netaddr to 192.168.178.58 (from server )
> Obtaining indy from server
>  [78+240984+142551]=0x4a92c0
> ARCS32 Firmware Version 1.10
> Found SGI-IP22, setting up.
> Initial setup done, switching console.
> [ using 384320 bytes of bsd ELF symbol table ]
> Copyright (c) 1982, 1986, 1989, 1991, 1993
> The Regents of the University of California. All rights reserved.
> Copyright (c) 1995-2016 OpenBSD. All rights reserved.
> http://www.OpenBSD.org
>
> OpenBSD 6.0-current (GENERIC-IP22) #686: Fri Aug 19 04:16:19 MDT 2016
>     dera...@sgi.openbsd.org:/usr/src/sys/arch/sgi/compile/GENERIC-IP22
> real mem = 201326592 (192MB)
> rsvd mem = 802816 (1MB)
> avail mem = 193511424 (184MB)
> warning: no entropy supplied by boot loader
> mainbus0 at root: Indy
> cpu0 at mainbus0: MIPS R4400 CPU rev 3.0 150 MHz, R4010 FPC rev 0.0
> cpu0: cache L1-I 16KB D 16KB direct, L2 1024KB direct
> int0 at mainbus0 addr 0x1fbd9880
> imc0 at mainbus0: revision 3
> gio0 at imc0
> newport0 at gio0 addr 0x1f000000: Indy 8-bit (board rev 3, xmap rev 5,
> vc2 rev 0)
> newport0: 1040x768 8-bit frame buffer
> wsdisplay0 at newport0 mux 1
> wsdisplay0: screen 0 added (std, vt100 emulation)
> hpc0 at gio0 addr 0x1fb80000: SGI HPC3 (onboard)
> zs0 at hpc0 offset 0x00059830 irq 29: 85230
> zstty0 at zs0 channel 1: console
> zstty1 at zs0 channel 0
> pckbc0 at hpc0 offset 0x00059840 irq 28
> sq0 at hpc0 offset 0x00054000 irq 3: Seeq 80c03, address 08:00:69:12:34:56
> wdsc0 at hpc0 offset 0x00044000 irq 1: WD33C93B, 20.0 MHz, burst DMA
> wdsc0: microcode revision 0x0d, fast SCSI
> scsibus0 at wdsc0: 8 targets, initiator 0
> haltwo at hpc0 offset 0x00058000 irq 12 not configured
> pione at hpc0 offset 0x00059800 irq 5 not configured
> panel0 at hpc0 offset 0x00059850 irq 9: power and volume buttons
> dsclock0 at hpc0 offset 0x00060000
> clock0 at mainbus0: int 5
> vscsi0 at root
> scsibus1 at vscsi0: 256 targets
> softraid0 at root
> scsibus2 at softraid0: 256 targets
> boot device: sq0
> nfs_boot: using interface sq0, with revarp & bootparams
> panic: reverse arp not answered by rarpd(8) or dhcpd(8)
> Stopped at      Debugger+0x4:   jr      ra
> Debugger+0x8:    nop
>    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
> *    0      0      0     0x10000      0x200    0  swapper
> Debugger+0x4
> (fd3ebc734bfad760,900000001fbd9880,900000001fbd9830,ffffffff88007d
> 28)  ra 0xffffffff888b6030 sp 0xffffffff88007d60, sz 0
> panic+0x100
> (fd3ebc734bfad760,900000001fbd9880,ffffffff88b6b598,ffffffff88bf8c5
> 0)  ra 0xffffffff889a5120 sp 0xffffffff88007d60, sz 112
> nfs_boot_init+0x5c0
> (fd3ebc734bfad760,900000001fbd9880,ffffffff88b6b598,fffffff
> f88bf8c50)  ra 0xffffffff889bbad8 sp 0xffffffff88007dd0, sz 240
> nfs_mountroot+0x68
> (fd3ebc734bfad760,900000001fbd9880,ffffffff88b6b598,ffffffff
> 88bf8c50)  ra 0xffffffff88879fb0 sp 0xffffffff88007ec0, sz 208
> main+0xc48
> (fd3ebc734bfad760,900000001fbd9880,ffffffff88b6b598,ffffffff88bf8c50
> )  ra 0xffffffff88800098 sp 0xffffffff88007f90, sz 48
> kernel_text+0x98
> (fd3ebc734bfad760,900000001fbd9880,ffffffff88b6b598,ffffffff88
> bf8c50)  ra 0x0 sp 0xffffffff88007fc0, sz 0
> User-level: pid 0
> http://www.openbsd.org/ddb.html describes the minimum info required in bug
> reports.  Insufficient info makes it difficult to find and fix bugs.
> ddb> ps
>    TID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
>  33089      0      0      0  3     0x14200  bored         crynlk
>  77057      0      0      0  3     0x14200  bored         crypto
>  54291      0      0      0  3     0x14200  pftm          pfpurge
>  49248      0      0      0  3     0x14200  bored         softnet
>  23263      0      0      0  3     0x14200  bored         systqmp
>  79270      0      0      0  3     0x14200  bored         systq
>  44405      0      0      0  3  0x40014200                idle0
>  46118      0      0      0  3     0x14200  kmalloc       kmthread
>      1      0      0      0  3           0  initexec      swapper
> *    0     -1      0      0  7     0x10200                swapper
> ddb> show registers
> at                0xffffffff88b50000    userconf_cmds+0x18
> v0                               0x1
> v1                               0x1
> a0                0xfd3ebc734bfad760
> a1                0x900000001fbd9880
> a2                0x900000001fbd9830
> a3                0xffffffff88007d28
> a4                0xffffffff88007d28
> a5                0xffffffff88b75670    panicbuf.7792
> a6                0xc0000000038b83a4
> a7                0xc0000000038b83b0
> t0                0xffffffff88b6b1e0    vmspace0
> t1                0xffffffff88bf9140    kernel_pmap_store
> t2                                 0
> t3                0xffffffff88004000
> s0                0xffffffff88007d98
> s1                0xffffffff88aeb308    tau+0x3a0
> s2                             0x100
> s3                0xc0000000000e40e8
> s4                0xffffffff88007e60
> s5                0xffffffff88007e68
> s6                0xffffffff88bb57f0    nfs_diskless
> s7                0xffffffff9fc56394
> t8                0xffffffff88b5d934    rs_buf+0x14
> t9                0xffffffff88a85c08    int2_splx
> k0                0xffffffff88007e68
> k1                0xffffffff88bb57f0    nfs_diskless
> gp                0xffffffff88b52fd0    _gp
> sp                0xffffffff88007d60
> s8                0xffffffff9fc4be88
> ra                0xffffffff888b6030    panic+0x100
> sr                        0x1004cfa3
> lo                              0xae
> hi                                 0
> bad               0xc0000000000e8838
> cs                              0x24
> pc                0xffffffff88a70e74    Debugger+0x4
> Debugger+0x4:   jr      ra
> Debugger+0x8:    nop
> ```
>
> This is how it looks for OpenBSD 5.5:
> ```
> [...]
> [ using 327864 bytes of bsd ELF symbol table ]
> Copyright (c) 1982, 1986, 1989, 1991, 1993
> The Regents of the University of California. All rights reserved.
> Copyright (c) 1995-2014 OpenBSD. All rights reserved.
> http://www.OpenBSD.org
>
> OpenBSD 5.5 (GENERIC-IP22) #127: Tue Mar  4 16:19:56 MST 2014
>     dera...@sgi.openbsd.org:/usr/src/sys/arch/sgi/compile/GENERIC-IP22
> real mem = 201326592 (192MB)
> rsvd mem = 802816 (1MB)
> avail mem = 193806336 (184MB)
> warning: no entropy supplied by boot loader
> mainbus0 at root: Indy
> cpu0 at mainbus0: MIPS R4400 CPU rev 3.0 150 MHz, R4010 FPC rev 0.0
> cpu0: cache L1-I 16KB D 16KB direct, L2 1024KB direct
> int0 at mainbus0 addr 0x1fbd9880
> imc0 at mainbus0: revision 3
> gio0 at imc0
> newport0 at gio0 addr 0x1f000000: Indy 8-bit (board rev 3, xmap rev 5,
> vc2 rev 0)
> newport0: 1040x768 8-bit frame buffer
> wsdisplay0 at newport0 mux 1
> wsdisplay0: screen 0 added (std, vt100 emulation)
> hpc0 at gio0 addr 0x1fb80000: SGI HPC3 (onboard)
> zs0 at hpc0 offset 0x00059830 irq 29: 85230
> zstty0 at zs0 channel 1: console
> zstty1 at zs0 channel 0
> pckbc0 at hpc0 offset 0x00059840 irq 28
> sq0 at hpc0 offset 0x00054000 irq 3: Seeq 80c03, address 08:00:69:12:34:56
> wdsc0 at hpc0 offset 0x00044000 irq 1: WD33C93B, 20.0 MHz, burst DMA
> wdsc0: microcode revision 0x0d, fast SCSI
> scsibus0 at wdsc0: 8 targets, initiator 0
> haltwo at hpc0 offset 0x00058000 irq 12 not configured
> pione at hpc0 offset 0x00059800 irq 5 not configured
> panel0 at hpc0 offset 0x00059850 irq 9: power and volume buttons
> dsclock0 at hpc0 offset 0x00060000
> clock0 at mainbus0: int 5
> vscsi0 at root
> scsibus1 at vscsi0: 256 targets
> softraid0 at root
> scsibus2 at softraid0: 256 targets
> boot device: sq0
> nfs_boot: using interface sq0, with revarp & bootparams
> nfs_boot: client_addr=192.168.178.58
> nfs_boot: server_addr=192.168.178.3 hostname=indy
> root on 192.168.178.9:/srv/nfs/indy/root
> swap on 192.168.178.9:/srv/nfs/indy/swap
> Automatic boot in progress: starting file system checks.
> setting tty flags
> pf enabled
> starting network
> starting early daemons: syslogd pflogd.
> starting RPC daemons:.
> swapctl: adding 192.168.178.9:/srv/nfs/openbsd/5.5/sgi/indy/swap as swap
> device at priority 0
> savecore: no core dump (no dumpdev)
> checking quotas: done.
> clearing /tmp
> starting pre-securelevel daemons:.
> setting kernel security level: kern.securelevel: 0 -> 1
> creating runtime link editor directory cache.
> preserving editor files.
> starting network daemons: sshd sendmail sndiod.
> starting local daemons: cron.
> Sat Aug 20 07:44:45 MDT 2016
>
> OpenBSD/sgi (indy.domain.tld) (console)
>
> login:
> ```

Reply via email to