-
RSS Links
Categories
- /bike
- /blog
- /categoryless
- /coffee
- /dev/random
- /food
- /freenetworks
- /friends
- /funny
- /geek
- /GirTheCadillac
- /Lebowski
- /Life
- /LifeWithDog
- /me
- /metrix
- /music
- /National Wireless Summit 2006
- /phonecamera
- /photo
- /potpourri
- /seadrunks
- /seattle
- /seattlewireless
- /shmoocon
- /softball
- /StupidShellTricks
- /sysadmin
- /travel
- /unix
- /work
- cons
- monitoring
- pyramid
- ruby
Archives
- January 2011
- December 2010
- September 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- December 2007
- August 2007
- July 2007
- May 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- June 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- February 2004
- January 2004
- December 2003
- November 2003
- August 2003
Whats is ipl31?
Ipl31.net is the domain for all my personal mail and web content. Ipl31 is also the handle II use on irc.
To learn what it means read on.
This is taken from OpenVMS, Ask the Wizard,
Can you please explain the various IPL levels and what type functions occur at
each level:
IPL stands for Interrupt Priority Level. This is one of several
synchronization mechanisms used by the operating system to coordinate
and control the use of various physical and logical resources. Normal
user code always runs at IPL 0.
Often, IPLs are described in terms what operations can NOT occur at a
particular level, rather than what operations CAN be performed. This is
because changing IPL is usually done to BLOCK certain operations.
Think of IPLs as being a series of work queues. Different tasks get
scheduled on different queues. When looking for something to do, the system
will take the first entry off the highest numbered queue. Only after all
entries on a queue have been completed will a lower numbered queue be
addressed. Some entries are posted by hardware events, others may be posted
by software events. When an event gets posted to a higher queue than the
current IPL level of the current thread, the thread is interrupted to service
the higher priority event. Software threads can change their IPL up or down
to block events that will be scheduled on lower IPL queues There are some
fairly complex rules that dictate exactly when and how IPL can be changed,
especially downwards.
For complete details you would need to read the Internals and Data Structures
Manual, but here is a very brief and highly simplified description of some
of the more popular IPL levels.
IPL 31 IPL$_POWER – blocks ALL interrupts used to initialise the system
or to crash the system
IPL 30 powerfail used to notify the system that power has failed
IPL 24 or 22 (varies depending on hardware) hardware clock interrupt
DEVICE IPLs – specific to the device
FORK IPLs – see IDSM, used to allow device drivers to lower IPL in
a consistent manner
IPL 8 IPL$_SYNCH – used to control access to various system wide
data structures, such as the scheduler data base, lock manager and
cluster communications.
IPL 7 – Software timer interrupt
IPL 6 IPL$_QUEUEAST – used to deliver ASTs
IPL 4 – used for I/O post processing
IPL 3 – the resheduling interrupt
IPL 2 – used to block delivery of all ASTs at all modes, as a
consequence it also blocks process deletion and suspension
Note that the IPL mechanism can only effectively synchronise multiple
threads of execution on a SINGLE CPU. For that reason, most IPL levels
also have an associated spinlock to allow synchronisation with other
CPUs in an SMP environment.