Date: Fri, 12 May 2000 12:21:57 +0900 From: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> To: John Baldwin <jhb@FreeBSD.org> Cc: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>, current@FreeBSD.org Subject: Re: select(2) converted to use a condition variable, and optimis Message-ID: <200005120321.e4C3Lvp08649@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> In-Reply-To: <200105100006.f4A06Gj35470@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> References: <200105091020.f49AK7P05497@rina.r.dl.itc.u-tokyo.ac.jp> <XFMail.010509092109.jhb@FreeBSD.org> <200105100006.f4A06Gj35470@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 10 May 2001 09:06:15 +0900, Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> said: Seigo> A quick and hopefully efficient solution to those problems is to Seigo> fhold() struct file's first, then enter polling loop. That seems much Seigo> cheaper than to work on free()ing a vnode or a socket with holding a Seigo> process lock, provided that struct filedesc and file are protected Seigo> properly (and we have to do it anyway). That work is now in the patch at: http://people.FreeBSD.org/~tanimura/patches/selectopt.diff Another work in that patch is elimination of P_SELECT and nselcoll check just prior to waiting for selwait. As we now scan file descriptors with holding a process lock, race with selwakeup() should never occur during polling. Please note that netncp and netsmb are not in the scope the solution discussed above because we can neither lock nor hold a reference to a socket for now. Since several issues regarding to the file descriptor layer have risen up, I am planning to commit the patch soon and work on locking file descriptors. -- Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> <tanimura@FreeBSD.org> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005120321.e4C3Lvp08649>