From owner-freebsd-alpha Tue Oct 1 7:50:12 2002 Delivered-To: freebsd-alpha@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 28D5037B401 for ; Tue, 1 Oct 2002 07:50:06 -0700 (PDT) Received: from mx1.thebiz.net (mx1.thebiz.net [216.238.0.21]) by mx1.FreeBSD.org (Postfix) with SMTP id 5251943E75 for ; Tue, 1 Oct 2002 07:50:05 -0700 (PDT) (envelope-from bkohn@veranet.net) Received: (qmail 27524 invoked from network); 1 Oct 2002 10:50:04 -0400 Received: from unknown (172.16.0.72) by mx1.backend.thebiz.net with QMQP; 1 Oct 2002 10:50:04 -0400 Received: from unknown (HELO bkohn) (216.238.1.32) by mail.thebiz.net with SMTP; 1 Oct 2002 10:50:04 -0400 From: "Brian Kohn" To: Subject: Diskless problem with 4.6 Date: Tue, 1 Oct 2002 11:01:04 -0400 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300 Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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: 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