Date: Sun, 24 Jul 2011 15:35:37 -0500 From: Nathan Whitehorn <nwhitehorn@freebsd.org> To: Paul Mather <paul@gromit.dlib.vt.edu> Cc: freebsd-ppc@freebsd.org Subject: Re: "sysctl -a" hangs multiuser boot Message-ID: <4E2C8219.6060907@freebsd.org> In-Reply-To: <76CAEDC6-A527-4AEA-9CE8-1ED9B65CACB8@gromit.dlib.vt.edu> References: <76CAEDC6-A527-4AEA-9CE8-1ED9B65CACB8@gromit.dlib.vt.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --Boundary_(ID_McmDJIiro9Bss+VMmCKQuQ) Content-type: text/plain; CHARSET=US-ASCII; format=flowed Content-transfer-encoding: 7BIT On 07/19/11 11:19, Paul Mather wrote: > I'm having problems with a kernel built today from a csup done today. I'm using an Xserve G5 running FreeBSD/powerpc64 9-CURRENT. The system will not boot up multiuser: it hangs at "Entropy harvesting: interrupts ethernet point_to_point" and gets no further. I can't Ctrl-C to get the boot past that point. > > It appears it is the "sysctl -a" in the entropy kickstart portion of /etc/rc.d/initrandom that is causing the problem. > > If I do "sysctl -a" manually it will produce output so far and then no further. Here are the last few lines before it stops outputting anything more: > > [[...]] > hw.usb.ugen.debug: 0 > hw.usb.power_timeout: 30 > hw.usb.uhub.debug: 0 > hw.usb.no_pf: 0 > hw.usb.proc.debug: 0 > hw.usb.pr_recovery_delay: 250 > hw.usb.pr_poll_delay: 50 > hw.usb.uhid.debug: 0 > hw.usb.ukbd.no_leds: 0 > hw.usb.ukbd.debug: 0 > hw.usb.ums.debug: 0 > > > > The system doesn't hang, but console input ceases to work and I can't SSH into the system any more. I can still ping the machine, but ping times vary wildly, e.g., > > 27 packets transmitted, 26 packets received, 3.7% packet loss > round-trip min/avg/max/stddev = 57.076/708.818/1395.450/280.318 ms > > Those ping times are way higher than normal. Here is an example of pinging the machine when it is not under the influence of doing a "sysctl -a": > > 23 packets transmitted, 23 packets received, 0.0% packet loss > round-trip min/avg/max/stddev = 0.421/0.591/0.758/0.096 ms > > > Also, at occasional intervals, this will be output on the console after having done a "sysctl -a": > > max66900: iicbus read failed > > Could you please try the attached patch? -Nathan --Boundary_(ID_McmDJIiro9Bss+VMmCKQuQ) Content-type: text/plain; name=fcu.diff Content-transfer-encoding: 7BIT Content-disposition: attachment; filename=fcu.diff Index: powerpc/powermac/fcu.c =================================================================== --- powerpc/powermac/fcu.c (revision 224288) +++ powerpc/powermac/fcu.c (working copy) @@ -282,14 +282,14 @@ fan->setpoint = rpm; } else { device_printf(fan->dev, "Unknown fan type: %d\n", fan->type); - return (-1); + return (ENXIO); } buf[0] = rpm >> (8 - fcu_rpm_shift); buf[1] = rpm << fcu_rpm_shift; if (fcu_write(sc->sc_dev, sc->sc_addr, reg, buf, 2) < 0) - return (-1); + return (EIO); return (0); } @@ -377,7 +377,7 @@ buf[0] = (pwm * 2550) / 1000; if (fcu_write(sc->sc_dev, sc->sc_addr, reg, buf, 1) < 0) - return (-1); + return (EIO); return (0); } @@ -536,12 +536,12 @@ if (fan->type == FCU_FAN_RPM) { rpm = fcu_fan_get_rpm(fan); if (rpm < 0) - return (-1); + return (EIO); error = sysctl_handle_int(oidp, &rpm, 0, req); } else { error = fcu_fan_get_pwm(fcu, fan, &pwm, &rpm); if (error < 0) - return (-1); + return (EIO); switch (arg2 & 0xff00) { case FCU_PWM_SYSCTL_PWM: @@ -552,7 +552,7 @@ break; default: /* This should never happen */ - error = -1; + return (EINVAL); }; } --Boundary_(ID_McmDJIiro9Bss+VMmCKQuQ)--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E2C8219.6060907>