Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 98e91bc877e03cf3582cd163550eb7e3 > files > 603

kernel-doc-html-2.4.19-16mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Unreliable Guide To Locking</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="NEXT"
TITLE="Introduction"
HREF="c21.html"></HEAD
><BODY
CLASS="BOOK"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="BOOK"
><A
NAME="LKLOCKINGGUIDE"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
></A
>Unreliable Guide To Locking</H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN5"
></A
>Paul Rusty Russell</H3
><DIV
CLASS="AFFILIATION"
><DIV
CLASS="ADDRESS"
><P
CLASS="ADDRESS"
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="EMAIL"
>&#60;<A
HREF="mailto:rusty@rustcorp.com.au"
>rusty@rustcorp.com.au</A
>&#62;</TT
><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
></DIV
><P
CLASS="COPYRIGHT"
><A
HREF="ln15.html"
>Copyright</A
> &copy; 2000 Paul Russell</P
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="c21.html"
>Introduction</A
></DT
><DD
><DL
><DT
><A
HREF="c21.html#RACES"
>The Problem With Concurrency</A
></DT
></DL
></DD
><DT
><A
HREF="c88.html"
>Two Main Types of Kernel Locks: Spinlocks and Semaphores</A
></DT
><DD
><DL
><DT
><A
HREF="c88.html#UNIPROCESSOR"
>Locks and Uniprocessor Kernels</A
></DT
><DT
><A
HREF="x105.html"
>Read/Write Lock Variants</A
></DT
><DT
><A
HREF="x111.html"
>Locking Only In User Context</A
></DT
><DT
><A
HREF="x126.html"
>Locking Between User Context and BHs</A
></DT
><DT
><A
HREF="x138.html"
>Locking Between User Context and Tasklets/Soft IRQs</A
></DT
><DT
><A
HREF="x144.html"
>Locking Between Bottom Halves</A
></DT
><DD
><DL
><DT
><A
HREF="x144.html#LOCK-BH-SAME"
>The Same BH</A
></DT
><DT
><A
HREF="x144.html#LOCK-BH-DIFFERENT"
>Different BHs</A
></DT
></DL
></DD
><DT
><A
HREF="x153.html"
>Locking Between Tasklets</A
></DT
><DD
><DL
><DT
><A
HREF="x153.html#LOCK-TASKLETS-SAME"
>The Same Tasklet</A
></DT
><DT
><A
HREF="x153.html#LOCK-TASKLETS-DIFFERENT"
>Different Tasklets</A
></DT
></DL
></DD
><DT
><A
HREF="x165.html"
>Locking Between Softirqs</A
></DT
><DD
><DL
><DT
><A
HREF="x165.html#LOCK-SOFTIRQS-SAME"
>The Same Softirq</A
></DT
><DT
><A
HREF="x165.html#LOCK-SOFTIRQS-DIFFERENT"
>Different Softirqs</A
></DT
></DL
></DD
></DL
></DD
><DT
><A
HREF="c181.html"
>Hard IRQ Context</A
></DT
><DD
><DL
><DT
><A
HREF="c181.html#HARDIRQ-SOFTIRQ"
>Locking Between Hard IRQ and Softirqs/Tasklets/BHs</A
></DT
></DL
></DD
><DT
><A
HREF="c196.html"
>Common Techniques</A
></DT
><DD
><DL
><DT
><A
HREF="c196.html#TECHNIQUES-NO-WRITERS"
>No Writers in Interrupt Context</A
></DT
><DT
><A
HREF="x214.html"
>Deadlock: Simple and Advanced</A
></DT
><DD
><DL
><DT
><A
HREF="x214.html#TECHS-DEADLOCK-PREVENT"
>Preventing Deadlock</A
></DT
><DT
><A
HREF="x214.html#TECHS-DEADLOCK-OVERPREVENT"
>Overzealous Prevention Of Deadlocks</A
></DT
></DL
></DD
><DT
><A
HREF="x250.html"
>Per-CPU Data</A
></DT
><DT
><A
HREF="x256.html"
>Big Reader Locks</A
></DT
><DT
><A
HREF="x261.html"
>Avoiding Locks: Read And Write Ordering</A
></DT
><DT
><A
HREF="x286.html"
>Avoiding Locks: Atomic Operations</A
></DT
><DT
><A
HREF="x298.html"
>Protecting A Collection of Objects: Reference Counts</A
></DT
><DD
><DL
><DT
><A
HREF="x298.html#HELPFUL-MACROS"
>Macros To Help You</A
></DT
></DL
></DD
><DT
><A
HREF="x315.html"
>Things Which Sleep</A
></DT
><DT
><A
HREF="x348.html"
>The Fucked Up Sparc</A
></DT
><DT
><A
HREF="x356.html"
>Racing Timers: A Kernel Pastime</A
></DT
></DL
></DD
><DT
><A
HREF="c374.html"
>Further reading</A
></DT
><DT
><A
HREF="c383.html"
>Thanks</A
></DT
><DT
><A
HREF="g388.html"
>Glossary</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="c21.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Introduction</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>