Date: Tue, 20 Nov 2007 00:37:46 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_timeout.c src/sys/sys callout.h Message-ID: <200711200037.lAK0bkoM067509@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
attilio 2007-11-20 00:37:45 UTC FreeBSD src repository Modified files: sys/kern kern_timeout.c sys/sys callout.h Log: Add the function callout_init_rw() to callout facility in order to use rwlocks in conjuction with callouts. The function does basically what callout_init_mtx() alredy does with the difference of using a rwlock as extra argument. CALLOUT_SHAREDLOCK flag can be used, now, in order to acquire the lock only in read mode when running the callout handler. It has no effects when used in conjuction with mtx. In order to implement this, underlying callout functions have been made completely lock type-unaware, so accordingly with this, sysctl debug.to_avg_mtxcalls is now changed in the generic debug.to_avg_lockcalls. Note: currently the allowed lock classes are mutexes and rwlocks because callout handlers run in softclock swi, so they cannot sleep and they cannot acquire sleepable locks like sx or lockmgr. Requested by: kmacy, pjd, rwatson Reviewed by: jhb Revision Changes Path 1.107 +57 -52 src/sys/kern/kern_timeout.c 1.32 +10 -3 src/sys/sys/callout.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711200037.lAK0bkoM067509>