From owner-freebsd-hackers Wed Nov 29 01:22:51 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id BAA24061 for hackers-outgoing; Wed, 29 Nov 1995 01:22:51 -0800 Received: from ref.tfs.com (ref.tfs.com [140.145.254.251]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id BAA24055 for ; Wed, 29 Nov 1995 01:22:44 -0800 Received: (from julian@localhost) by ref.tfs.com (8.6.12/8.6.9) id BAA01693; Wed, 29 Nov 1995 01:22:15 -0800 From: Julian Elischer Message-Id: <199511290922.BAA01693@ref.tfs.com> Subject: Re: more device driver question 8) To: msmith@atrad.adelaide.edu.au (Michael Smith) Date: Wed, 29 Nov 1995 01:22:14 -0800 (PST) Cc: hackers@freebsd.org In-Reply-To: <199511290350.DAA10336@genesis.atrad.adelaide.edu.au> from "Michael Smith" at Nov 29, 95 03:50:42 am X-Mailer: ELM [version 2.4 PL24] Content-Type: text Content-Length: 1229 Sender: owner-hackers@freebsd.org Precedence: bulk > > > Ok, and another one 8) > > Driver read routine sets up buffers, etc. > Driver enables interrupts on peripheral. > Peripheral immediately interrupts, may satisfy whole read request. > Driver goes to sleep waiting for read request to be satsified. > ... > > I can't see how to avoid this race; I'm sure it must be possible, but > browsing other drivers yields no immediate inspiration. > Some sleep at raised interrupt level: > > spltty() > tsleep(...) > splx() > > Does this imply that tsleep() restores the base interrupt level while > it's running? exactly, It schedules another process, which will be at some OTHER interrupt priority level, it does it 'atomicly' too.. > > Because the peripheral's data rate is entirely dependant on an external > source, it's impossible to know how fast or slow it will be 8( > > -- > ]] Mike Smith, Software Engineer msmith@atrad.adelaide.edu.au [[ > ]] Genesis Software genesis@atrad.adelaide.edu.au [[ > ]] High-speed data acquisition and (GSM mobile) 041-122-496 [[ > ]] realtime instrument control (ph/fax) +61-8-267-3039 [[ > ]] "Who does BSD?" "We do Chucky, we do." [[ >