Date: Mon, 10 Nov 2003 18:14:14 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: John Baldwin <jhb@FreeBSD.org> Cc: Seigo Tanimura <tanimura@FreeBSD.org> Subject: RE: cvs commit: src/sys/cam/scsi scsi_target.c src/sys/codacoda_psdev.csrc/sys/dev/firewire firewire.c src/sys/dev/kbd kbd.c src/sys/dev/nmdm nmdm. Message-ID: <20031110180540.P2148@gamplex.bde.org> In-Reply-To: <XFMail.20031109194035.jhb@FreeBSD.org> References: <XFMail.20031109194035.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 9 Nov 2003, John Baldwin wrote: > On 09-Nov-2003 Seigo Tanimura wrote: > > tanimura 2003/11/09 01:17:26 PST > > > > FreeBSD src repository > > > > Modified files: > > sys/cam/scsi scsi_target.c > > sys/coda coda_psdev.c > > ... > > Log: > > - Implement selwakeuppri() which allows raising the priority of a > > thread being waken up. The thread waken up can run at a priority as > > high as after tsleep(). > > > > - Replace selwakeup()s with selwakeuppri()s and pass appropriate > > priorities. > > > > - Add cv_broadcastpri() which raises the priority of the broadcast > > threads. Used by selwakeuppri() if collision occurs. > > > > Not objected in: -arch, -current > > Sorry I didn't speak up on arch@, just too busy. But, why do you need > to bump up the priority of the thread you are waking up? I left the reply to someone else :-). The priority may need to be bumped because the thread is a user thread that is sleeping at a low user priority. As I understand this change, the thread priority may be low for cases that don't use tsleep() so they can't set the thread priority using that. So this changes is needed to get the same behaviour as using tsleep(). However, I think that behaviour is not quite right -- if the thread is a user thread then it waking it up is only urgent if it needs to do some urgent things in kernel mode on wakeup. It should not return to user mode until its user priority permits its scheduling. However2, we still have the bugfeature that user threads keep the kernel priority that they wake up at all the way back to user mode, and this may be necessary for interactivity. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031110180540.P2148>