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>