Date: Wed, 1 Oct 2014 15:32:29 +0000 (UTC) From: Will Andrews <will@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r272366 - head/sys/kern Message-ID: <201410011532.s91FWTZL050853@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: will Date: Wed Oct 1 15:32:28 2014 New Revision: 272366 URL: https://svnweb.freebsd.org/changeset/base/272366 Log: In the syncer, drop the sync mutex while patting the watchdog. Some watchdog drivers (like ipmi) need to sleep while patting the watchdog. See sys/dev/ipmi/ipmi.c:ipmi_wd_event(), which calls malloc(M_WAITOK). Submitted by: asomers MFC after: 1 month Sponsored by: Spectra Logic MFSpectraBSD: 637548 on 2012/10/04 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Wed Oct 1 15:23:23 2014 (r272365) +++ head/sys/kern/vfs_subr.c Wed Oct 1 15:32:28 2014 (r272366) @@ -1863,8 +1863,15 @@ sched_sync(void) continue; } - if (first_printf == 0) + if (first_printf == 0) { + /* + * Drop the sync mutex, because some watchdog + * drivers need to sleep while patting + */ + mtx_unlock(&sync_mtx); wdog_kern_pat(WD_LASTVAL); + mtx_lock(&sync_mtx); + } } if (syncer_state == SYNCER_FINAL_DELAY && syncer_final_iter > 0)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410011532.s91FWTZL050853>