Date: Sun, 7 May 2006 19:04:30 -0400 From: Kris Kennaway <kris@obsecurity.org> To: Kris Kennaway <kris@obsecurity.org> Cc: performance@FreeBSD.org, Robert Watson <rwatson@FreeBSD.org>, current@FreeBSD.org Subject: Re: Fine-grained locking for POSIX local sockets (UNIX domain sockets) Message-ID: <20060507230430.GA6872@xor.obsecurity.org> In-Reply-To: <20060507214153.GA5275@xor.obsecurity.org> References: <20060506150622.C17611@fledge.watson.org> <20060506221908.GB51268@xor.obsecurity.org> <20060507210426.GA4422@xor.obsecurity.org> <20060507214153.GA5275@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--EeQfGwPcQSOJBaQU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, May 07, 2006 at 05:41:53PM -0400, Kris Kennaway wrote: > static int > kern_sigtimedwait(struct thread *td, sigset_t waitset, ksiginfo_t *ksi, > struct timespec *timeout) > { > ... > td->td_sigmask =3D savedmask; > SIGSETNAND(td->td_sigmask, waitset); > signotify(td); > error =3D msleep(&ps, &p->p_mtx, PPAUSE|PCATCH, "sigwait", hz); >=20 > i.e. several threads in the process are all sleeping for 1 tick and > then doing a thundering herd on the same proc lock when they wake up. Oops, actually hz=3D0; it comes via sigwait(2). It's still a thundering herd situation though. I also profiled the sleepq_broadcast call to look at thundering herds from wakeup(), and I found that the umtxq_chain is waking the following distribution of CPUs at once: Before patch: Freq #CPUs 1111 1 366 2 136 3 54 4 17 5 2 6 After patch: Freq #CPUs 1139 1 332 2 139 3 44 4 12 5 2 6 i.e. apparently not a large difference, but still a large proportion of cases where multiple CPUs are woken at once on the same chain. Kris --EeQfGwPcQSOJBaQU Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQFEXnz+Wry0BWjoQKURAt9bAJ98pfbOhmC9J0RECAq9WEB9IEi5mwCfQkp7 rN1OtiYv5coGIatwx6cntG4= =9lr+ -----END PGP SIGNATURE----- --EeQfGwPcQSOJBaQU--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060507230430.GA6872>