Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Oct 2002 11:01:04 -0400
From:      "Brian Kohn" <bkohn@veranet.net>
To:        <freebsd-alpha@freebsd.org>
Subject:   Diskless problem with 4.6
Message-ID:  <BKEMJFBPOBHCDAGLGNFJOEKECGAA.bkohn@veranet.net>

next in thread | raw e-mail | index | archive | help


I have an Intel master server running 4.6.2p2. When I startup a diskless
alpha using the 4.5p20-RELEASE kernel and lower with BOOTP enabled it boots
with no problems. I have tested with 4.0, 4.1 and now 4.5p20. I have tried
to use 4.6.1p1 and now 4.6.2p2 and it only works about 50% of the time. I
get the kernel trap included below. I have tried using different master
servers, different alphas (same hardware specs), different switches and
cables, and also different kernel options in my config (included below) all
with the same results. I also have an Intel diskless cluster environment
that works with no problem using 4.6.2p2. After testing I narrowed the
problem down to a change that was made between 4.5 and 4.6 with
src/sys/netinet/in.c. I have included a patch below of how to revert that
section of code to what I have found in 4.5p20, this fixes my problem and
allows my alphas to boot 100% of the time, but I don't believe this fix is
the way to go for future development of FreeBSD. I hope this is enough
information. If there is any further testing that I can do to help please
let me know.

Brian Kohn
VeraNet Solutions
BiznessOnline
bkohn@veranet.net

Alpha Hardware:
  Compaq AlphaServer DS10 466 MHz with 576 Megs of RAM
  Dual DE500-BA Network Controllers

Kernel Trap:
----------------------------------------------------------------------------
-

Mounting root from nfs:
da0 at isp0 bus 0 target 0 lun 0
da0: <DEC RZ2DD-KS (C) DEC 0306> Fixed Direct Access SCSI-2 device
da0: 40.000MB/s transfers (20.000MHz, offset 8, 16bit), Tagged Queueing
Enabled
da0: 8678MB (17773524 512 byte sectors: 255H 63S/T 1106C)
bootpc_init: wired to interface 'dc1'
Sending DHCP Discover packet from interface dc1 (08:00:2b:86:72:c8)
Received DHCP Offer packet on dc1 from 172.16.0.4 (accepted) (no root path)

fatal kernel trap:

    trap entry = 0x2 (memory management fault)
    a0         = 0x0
    a1         = 0x1
    a2         = 0xffffffffffffffff
    pc         = 0x0
    ra         = 0xfffffc00005a60c0
    curproc    = 0

panic: trap

syncing disks...
done
Uptime: 11s
Automatic reboot in 15 seconds - press a key on the console to abort
--> Press a key on the console to reboot,
--> or switch off the system now.

----------------------------------------------------------------------------
-

Patch:
----------------------------------------------------------------------------
-


--- in.c.orig   Wed May  1 04:30:36 2002
+++ in.c        Thu Sep 26 13:06:31 2002
@@ -729,25 +729,11 @@
                        return (0);
                flags |= RTF_HOST;
        }
-
-       /*-
-        * Don't add host routes for interface addresses of
-        * 0.0.0.0 --> 0.255.255.255 netmask 255.0.0.0.  This makes it
-        * possible to assign several such address pairs with consistent
-        * results (no host route) and is required by BOOTP.
-        *
-        * XXX: This is ugly !  There should be a way for the caller to
-        *      say that they don't want a host route.
-        */
-       if (ia->ia_addr.sin_addr.s_addr != INADDR_ANY ||
-           ia->ia_netmask != IN_CLASSA_NET ||
-           ia->ia_dstaddr.sin_addr.s_addr != htonl(IN_CLASSA_HOST)) {
-               if ((error = rtinit(&ia->ia_ifa, (int)RTM_ADD, flags)) != 0)
{
-                       ia->ia_addr = oldaddr;
-                       return (error);
-               }
+       if ((error = rtinit(&(ia->ia_ifa), (int)RTM_ADD, flags)) == 0)
                ia->ia_flags |= IFA_ROUTE;
-       }
+       /* XXX check if the subnet route points to the same interface */
+       if (error == EEXIST)
+               error = 0;

        /*
         * If the interface supports multicast, join the "all hosts"


----------------------------------------------------------------------------
-

Kernel Config:
----------------------------------------------------------------------------
-

machine         alpha
cpu             EV4
cpu             EV5
ident           DISKLESS-ALPHA

# Platforms supported
options         DEC_ST6600              # XP1000, DP264, DS20, DS10, family

options         INET                    #InterNETworking
options         FFS                     #Berkeley Fast Filesystem
options         FFS_ROOT                #FFS usable as root device [keep
this!]
options         SOFTUPDATES             #Enable FFS soft updates support
options         UFS_DIRHASH             #Improve performance on big
directories
options         MFS                     #Memory Filesystem
options         MD_ROOT                 #MD is a potential root device
options         NFS                     #Network Filesystem
options         NFS_ROOT                #NFS usable as root device
options         MSDOSFS                 #MSDOS Filesystem
options         CD9660                  #ISO 9660 Filesystem
options         CD9660_ROOT             #CD-ROM usable as root device
options         PROCFS                  #Process filesystem
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP
THIS!]
options         SCSI_DELAY=3000         #Delay (in ms) before probing SCSI
options         UCONSOLE                #Allow users to grab the console
options         KTRACE                  #ktrace(1) syscall trace support
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores
options         P1003_1B                #Posix P1003_1B real-time extentions
options         _KPOSIX_PRIORITY_SCHEDULING
options         ICMP_BANDLIM            #Rate limit bad replies

# Standard busses
device          isa
device          pci

# Floppy drives
device          fdc0    at isa? port IO_FD1 irq 6 drq 2
device          fd0     at fdc0 drive 0

# ATA and ATAPI devices
device          ata
device          atadisk         # ATA disk drives
device          atapicd         # ATAPI CDROM drives
device          atapifd         # ATAPI floppy drives
device          atapist         # ATAPI tape drives

# SCSI Controllers
device          ahc             # AHA2940 and onboard AIC7xxx devices
device          isp             # Qlogic family
device          ncr             # NCR/Symbios Logic
device          sym             # NCR/Symbios Logic (newer chipsets)

# SCSI peripherals
device          scbus           # SCSI bus (required)
device          da              # Direct Access (disks)
device          sa              # Sequential Access (tape etc)
device          cd              # CD
device          pass            # Passthrough device (direct SCSI access)

# RAID controllers
device          amr             # AMI MegaRAID
device          mlx             # Mylex DAC960 family

# RAID controllers
device          amr             # AMI MegaRAID
device          mlx             # Mylex DAC960 family

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc0 at isa? port IO_KBD
device          atkbd0  at atkbdc? irq 1
device          psm0    at atkbdc? irq 12

device          vga0    at isa?

# splash screen/screen saver
pseudo-device   splash

# syscons is the default console driver, resembling an SCO console
device          sc0     at isa?

# real time clock
device          mcclock0 at isa? port 0x70

# Serial (COM) ports
device          sio0    at isa? port IO_COM1 irq 4
device          sio1    at isa? port IO_COM2 irq 3 flags 0x50

# Parallel port
device          ppc0    at isa? irq 7
device          ppbus           # Parallel port bus (required)
device          lpt             # Printer
device          plip            # TCP/IP over parallel
device          ppi             # Parallel port interface device
#device         vpo             # Requires scbus and da

# PCI Ethernet NICs.
device          de              # DEC/Intel DC21x4x (``Tulip'')
device          txp             # 3Com 3cR990 (``Typhoon'')
device          le              # Lance

# PCI Ethernet NICs that use the common MII bus controller code.
device          miibus          # MII bus support
device          dc              # DEC/Intel 21143 and workalikes
device          fxp             # Intel EtherExpress PRO/100B (82557, 82558)
device          pcn             # AMD Am79C97x PCI 10/100 NICs
device          rl              # RealTek 8129/8139
device          sf              # Adaptec AIC-6915 (``Starfire'')
device          sis             # Silicon Integrated Systems SiS 900/SiS
7016
device          ste             # Sundance ST201 (D-Link DFE-550TX)
device          tl              # Texas Instruments ThunderLAN
device          vr              # VIA Rhine, Rhine II
device          wb              # Winbond W89C840F
device          wx              # Intel Gigabit Ethernet Card (``Wiseman'')
device          xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device   loop            # Network loopback
pseudo-device   ether           # Ethernet support
pseudo-device   pty             # Pseudo-ttys (telnet etc)
pseudo-device   md              # Memory "disks"

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device   bpf             #Berkeley packet filter

# Firewall
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_DEFAULT_TO_ACCEPT
#
# Diskless
options         BOOTP
options         BOOTP_NFSROOT
options         BOOTP_NFSV3
options         BOOTP_COMPAT
options         BOOTP_WIRED_TO=dc1

----------------------------------------------------------------------------
-


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BKEMJFBPOBHCDAGLGNFJOEKECGAA.bkohn>