Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Oct 2012 22:16:44 +0200
From:      Egoitz Aurrekoetxea Aurre <egoitz@ramattack.net>
To:        Mark Felder <feld@feld.me>
Cc:        freebsd-xen@freebsd.org, =?windows-1252?Q?G=F3t_Andr=E1s?= <got.andras@deployis.eu>
Subject:   Re: xenbusb_nop_confighook_cb timeout
Message-ID:  <E8FB52A5-FCB8-4773-814A-72D4F44B03F2@ramattack.net>
In-Reply-To: <op.wly779dz34t2sn@tech304>
References:  <50757ADA.7060101@deployis.eu> <88AB8E8E-0D6C-4ED7-B0DC-7466DB7D3634@ramattack.net> <F826C6FD-AE9C-46A5-9029-85D79B1B937C@ramattack.net> <op.wly779dz34t2sn@tech304>

next in thread | previous in thread | raw e-mail | index | archive | help
mmmm...

one thing mates=85 I need to check this in a more slower and =
conscientiously way but...

I think=85 in subr_autoconf.c file in function =
boot_run_interrupt_driven_config_hooks it's entering in a while causing =
to be looped there forever=85 because it doesn't see the NULL it's =
awaiting the while and apart of this, seems nothing changes in the given =
structures when calling msleep=85. because perhaps=85 nothing should =
change and it's always basically not seen NULL too=85.. So loops six =
times and gets there=85. panicked=85 Look=85

root@pruebas:/root # diff -u /usr/src/sys/kern/subr_autoconf.c-defecto =
/usr/src/sys/kern/subr_autoconf.c
--- /usr/src/sys/kern/subr_autoconf.c-defecto	2012-10-10 =
13:51:27.000000000 +0200
+++ /usr/src/sys/kern/subr_autoconf.c	2012-10-10 18:21:51.000000000 =
+0200
@@ -133,16 +133,17 @@
 	/* Block boot processing until all hooks are disestablished. */
 	mtx_lock(&intr_config_hook_lock);
 	warned =3D 0;
-	while (!TAILQ_EMPTY(&intr_config_hook_list)) {
+	/* while (!TAILQ_EMPTY(&intr_config_hook_list)) { */
 		if (msleep(&intr_config_hook_list, =
&intr_config_hook_lock,
 		    0, "conifhk", WARNING_INTERVAL_SECS * hz) =3D=3D
 		    EWOULDBLOCK) {
+			printf("\n\n SARENET Individual lock name antes =
de unlock es : %s", intr_config_hook_lock.lock_object.lo_name);
 			mtx_unlock(&intr_config_hook_lock);
 			warned++;
 			=
run_interrupt_driven_config_hooks_warning(warned);
 			mtx_lock(&intr_config_hook_lock);
 		}
-	}
+	/* } */
 	mtx_unlock(&intr_config_hook_lock);
 }
=20
TAILQ_EMPTY is at queue.h :=20

#define	STAILQ_EMPTY(head)	((head)->stqh_first =3D=3D NULL)

With the printf line entered by me=85 have not seen any text in =
intr_config_hook_lock.lock_object.lo_name struct element=85 So=85. I =
commented the while as seen in the patch=85.

and the system is booting :)

root@pruebas:/root #=20
root@pruebas:/root #=20
root@pruebas:/root #=20
root@pruebas:/root # uptime
 7:08PM  up 23 secs, 1 user, load averages: 0.96, 0.25, 0.09
root@pruebas:/root # uname -ar
FreeBSD pruebas.sare.net 9.1-RC2 FreeBSD 9.1-RC2 #0: Wed Oct 10 18:33:54 =
CEST 2012     root@pruebas.sare.net:/usr/obj/usr/src/sys/XENHVM11  amd64
root@pruebas:/root #=20

So=85. I'm guessing perhaps enters in the loop because the value is not =
exactly NULL and stays there till it attempts six times=85 and get there =
indefinitely like panicked=85.

Have tried it too with FreeBSD 9.0 RELENG_9_0=85.

As said at the beginning need to investigate further=85 but seems like =
we're going in the proper direction=85.=20

Cheers,



El 10/10/2012, a las 20:56, Mark Felder <feld@feld.me> escribi=F3:

> This is also preventing my XCP 1.5beta to 1.6 testing :-(
>=20
>=20
> Any suggestions are appreciated!




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E8FB52A5-FCB8-4773-814A-72D4F44B03F2>