Re: i386 hangs during halt "vnodes remaining... 0 time out"

From: Cy Schubert <Cy.Schubert_at_cschubert.com>
Date: Sat, 21 Apr 2018 15:27:51 -0700
In message <20180421234934.10d7dfab_at_kalimero.tijl.coosemans.org>, Tijl 
Cooseman
s writes:
> --MP_/TDsO+CDIra7UXGs=vVO3NTB
> Content-Type: text/plain; charset=US-ASCII
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> On Sat, 21 Apr 2018 21:09:09 +0000 Rick Macklem <rmacklem_at_uoguelph.ca> wrote:
> > With a recent head/current kernel (doesn't happen when running a Dec.
> > 2017 one), when I do a halt, it gets as far as:
> > 
> > vnodes remaining... 0 time out
> > 
> > and that's it (the time out appears several seconds after the first "0").
> > With a Dec. 2017 kernel there would be several "0"s printed.
> > It appears that it is stuck in the first iteration of the sched_sync()
> > loop after it is no longer in SYNCER_RUNNING state.
> > 
> > Any ideas? rick
>
> See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227404
> I have a patch (attached) but haven't been able to test it yet.

I've noticed this as well on my old Penium-M laptop (updated about 
twice a year). I'll try your patch this weekend or early next week.

~cy

>
> --MP_/TDsO+CDIra7UXGs=vVO3NTB
> Content-Type: text/x-patch
> Content-Transfer-Encoding: 7bit
> Content-Disposition: attachment; filename=bufdaemon.patch
>
> Index: sys/kern/vfs_bio.c
> ===================================================================
> --- sys/kern/vfs_bio.c	(revision 332165)
> +++ sys/kern/vfs_bio.c	(working copy)
> _at__at_ -791,9 +791,12 _at__at_ bufspace_daemon(void *arg)
>  {
>  	struct bufdomain *bd;
>  
> +	EVENTHANDLER_REGISTER(shutdown_pre_sync, kthread_shutdown, curthread,
> +	    SHUTDOWN_PRI_LAST);
> +
>  	bd = arg;
>  	for (;;) {
> -		kproc_suspend_check(curproc);
> +		kthread_suspend_check();
>  
>  		/*
>  		 * Free buffers from the clean queue until we meet our
> _at__at_ -3357,7 +3360,7 _at__at_ buf_daemon()
>  	/*
>  	 * This process needs to be suspended prior to shutdown sync.
>  	 */
> -	EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown, bufdaemonproc,
> +	EVENTHANDLER_REGISTER(shutdown_pre_sync, kthread_shutdown, curthread,
>  	    SHUTDOWN_PRI_LAST);
>  
>  	/*
> _at__at_ -3381,7 +3384,7 _at__at_ buf_daemon()
>  		bd_request = 0;
>  		mtx_unlock(&bdlock);
>  
> -		kproc_suspend_check(bufdaemonproc);
> +		kthread_suspend_check();
>  
>  		/*
>  		 * Save speedupreq for this pass and reset to capture new
>
> --MP_/TDsO+CDIra7UXGs=vVO3NTB
> Content-Type: text/plain; charset="us-ascii"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
>
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
> --MP_/TDsO+CDIra7UXGs=vVO3NTB--
>

-- 
Cheers,
Cy Schubert <Cy.Schubert_at_cschubert.com>
FreeBSD UNIX:  <cy_at_FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.
Received on Sat Apr 21 2018 - 20:28:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:15 UTC