update roadmap
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 10 Nov 2006 19:33:59 +0000 (19:33 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 10 Nov 2006 19:33:59 +0000 (19:33 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@2253 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/doc/developer/lttng-atomic-up.txt
ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html

index e104cb16e7291c046aeca2ee412011c19c29d493..9ce3482cc4517ebfbca6d926775584e0cf660694 100644 (file)
@@ -81,6 +81,50 @@ irq save/restore 12636562/20000 = 631.82 cycles 210.60 ns
 
 
 
+* Memory ordering
+
+offset
+written by local CPU
+read by local CPU and other CPUs (reader)
+
+commit count
+written by local CPU
+read by local CPU and other CPUs (reader)
+
+consumed
+written by any CPU
+read by any CPU
+
+data
+written by local CPU
+read by any CPU
+
+
+test done in the reader :
+if ( consumed < offset )
+  if ( subbuf.commit_count == multiple of SUBBUFSIZE)
+    read data
+    inc consumed
+
+
+We must guarantee the following ordering :
+* offset
+Seen from the local CPU :
+offset must always be incremented before the data is written (already
+consistent)
+
+Seen from other cpus :
+offset and data can be written out of order
+(because offset is always incremented : in an out of order case, offset is lower
+than the actual data ready, but the commit_count _has_ to be incremented to read
+the data (and is preceded by a store fence)
+
+* commit_count
+commit_count must always be seen by other CPUs after the data has been written.
+Therefore, we must put a store fence before the commit_count write. (smp_wmb)
+
+* consumed
+Rarely updated, use LOCK prefix. Acts as a full memory barrier.
 
 
 
index 8d7f702b7c882855022256669f7f840abbbfcd8a..6f047b8c5a6e5a9593676bbfa79b6ba7204fd528 100644 (file)
@@ -72,6 +72,7 @@ informatinon.<br>
 (4) Probe calibration kernel module.<br>
 (4) Make page faults detect nested fault without nesting 4 times in the page
 fault handler.<br>
+(5) CPU Hotplug support.<br>
 (5) Support CPUs with scalable frequency.<br>
 (5) Add boot time tracing support.<br>
 (5) Integrate LTTng and lttd with LKCD.<br>
This page took 0.024663 seconds and 4 git commands to generate.