*BSD News Article 74196


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!spool.mu.edu!howland.reston.ans.net!gatech!news.mathworks.com!fu-berlin.de!irz401!orion.sax.de!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: User PPP connection is s......l......o.......w......!
Date: 19 Jul 1996 08:00:41 GMT
Organization: Private BSD site, Dresden
Lines: 27
Message-ID: <4snfb9$35r@uriah.heep.sax.de>
References: <01bb6e37.014cfd20$38673fcb@simonh.addease.com.au>
  <4s1g7h$fr@anorak.coverform.lan> <4s3ul6$h0c@godzilla.zeta.org.au>
  <4scjps$92@anorak.coverform.lan> <4sfus4$meq@uriah.heep.sax.de>
  <4sj25l$k6@anorak.coverform.lan>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.6
X-Phone: +49-351-2012 669
X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F  93 21 E0 7D F9 12 D6 4E

brian@awfulhak.demon.co.uk (Brian Somers) wrote:

> As I said, if the interrupt handler can get preempted - this is brilliant.
> 
> I wondered if he *meant* calling something like preempt() (or whatever)
> every now and again to allow higher priorities in.  If interrupt
> handlers can be preempted by higher level IPL routines (by swtch),
> this implies (I think) that FreeBSD has to somehow lock any relevent
> data structures (ones shared by interrupts of a different IPL) in a given
> interrupt routine.  Surely this is an overhead on a uniprocessor
> machine....

They are not being preempted by swtch(), this one is only appropriate
for process context switches.  (Actually, what Vahalia describes as
swtch() is mi_switch() in BSD, which in turn calls cpu_switch().)

Interrupt handlers of the same priority cannot be preempted, but other
SPLs are always treated as ``higher priority'', i.e. the various SPLs
are mutually independant.  I haven't looked into what might be locked
inside the generic interrupt code.

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)