]> Joshua Wise's Git repositories - netwatch.git/blobdiff - README
Remove demapper from pagingstub.c, since that code is now elsewhere. Correct locatio...
[netwatch.git] / README
diff --git a/README b/README
index 2977c05d94690dc76a2ea4bcf6672793de51241d..a673c336eb29d3e9a8fa92eb4e939e619b62aa2b 100644 (file)
--- a/README
+++ b/README
@@ -6,12 +6,19 @@ taking over a second network card to provide a standard VNC server, such that
 a machine elsewhere on the network can see the text or graphics console of the
 machine and inject keystrokes as needed.
 
-       <description of SMM and what we do with it>.
-
-       <benchmarks here>.
-
-       Because NetWatch is invisible to the OS, its CPU usage is difficult to
-monitor; we do so by comparing the MD5 throughput of the system with NetWatch
+       System management mode, introduced with the 386SL, essentially allows
+system driver code to run outside of OS control, caused by a special interrupt
+pin on the CPU. This was originally intended for applications such as laptop
+fan control; it is also the mechansim by which USB legacy keyboard emulation
+occurs. When a system management interrupt occurs, the northbridge remaps
+portions of memory to expose previously-hidden code, and asserts an SMI# signal,
+causing the CPU to save all its state into system management RAM and vector to
+a magic entry point.
+
+       This is somewhat slow, and so there is a moderate performance impact
+caused by running NetWatch, more significant when a VNC session is open.
+Because NetWatch is invisible to the OS, its CPU usage is difficult to monitor;
+we do so by comparing the MD5 throughput of the system with NetWatch
 running versus without. The only way that the OS could detect this performance
 drain is by spinning tightly and watching for a sudden jump in the CPU's time
 stamp counters.
@@ -49,4 +56,5 @@ implementation requires:
   - BIOS which does not set the D_LCK bit. Any system old enough to be
     based on the ICH2 is very likely to have a suitable BIOS.
 
-       Current open issues are listed in the TODO file.
+       Current open issues are listed in the TODO file. See GUIDE for an
+overview of which source files do what.
This page took 0.026173 seconds and 4 git commands to generate.