Skip site navigation (1)Skip section navigation (2)
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>