From owner-freebsd-current@FreeBSD.ORG Wed Aug 10 12:14:09 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1800E16A41F for ; Wed, 10 Aug 2005 12:14:09 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [204.156.12.53]) by mx1.FreeBSD.org (Postfix) with ESMTP id AFEB043D58 for ; Wed, 10 Aug 2005 12:14:08 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by cyrus.watson.org (Postfix) with ESMTP id DA9BE46B7F; Wed, 10 Aug 2005 08:14:07 -0400 (EDT) Date: Wed, 10 Aug 2005 13:17:30 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Momtchil Momtchev In-Reply-To: <200508101342.15211.momtchil.momtchev@netasq.com> Message-ID: <20050810131518.T22763@fledge.watson.org> References: <20050810084015.40585.qmail@web54409.mail.yahoo.com> <200508101342.15211.momtchil.momtchev@netasq.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-current@freebsd.org, Bsderss Subject: Re: RTCoreBSD X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Aug 2005 12:14:09 -0000 On Wed, 10 Aug 2005, Momtchil Momtchev wrote: > No, kqueue/kevent is not realtime, as the whole FreeBSD kernel doesn't > support hard real-time scheduling. In order to have hard real-time > scheduling you should have a fully preemtible kernel, which schedules > and preempts everything (even interrupt handlers). The RTCoreBSD uses a > two-kernel approach with a real-time microkernel which runs the FreeBSD > kernel as a process, providing a virtual interrupt controller. The > real-time processes run directly on the microkernel and can't directly > use the FreeBSD kernel services. While FreeBSD is not a hard realtime system, it does have increasing propertis of one: FreeBSD 6.0 ships with kernel preemption enabled by default, and the priority propagation and priority management in the SMPng locking primitives moves in that direction also. FreeBSD will preempt one running ithread with one associated with a new interrupt if the scheduler decides that's appropriate based on their priorities. With Giant off most of the kernel, a lot of problems with deferred processing due to large lock size have gone away. Robert N M Watson