From 7c5922fcf391a55265149b20435bca935304878a Mon Sep 17 00:00:00 2001 From: compudj Date: Fri, 10 Nov 2006 19:33:59 +0000 Subject: [PATCH] update roadmap git-svn-id: http://ltt.polymtl.ca/svn@2253 04897980-b3bd-0310-b5e0-8ef037075253 --- .../poly/doc/developer/lttng-atomic-up.txt | 44 +++++++++++++++++++ .../doc/developer/lttng-lttv-roadmap.html | 1 + 2 files changed, 45 insertions(+) diff --git a/ltt/branches/poly/doc/developer/lttng-atomic-up.txt b/ltt/branches/poly/doc/developer/lttng-atomic-up.txt index e104cb16..9ce3482c 100644 --- a/ltt/branches/poly/doc/developer/lttng-atomic-up.txt +++ b/ltt/branches/poly/doc/developer/lttng-atomic-up.txt @@ -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. diff --git a/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html b/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html index 8d7f702b..6f047b8c 100644 --- a/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html +++ b/ltt/branches/poly/doc/developer/lttng-lttv-roadmap.html @@ -72,6 +72,7 @@ informatinon.
(4) Probe calibration kernel module.
(4) Make page faults detect nested fault without nesting 4 times in the page fault handler.
+(5) CPU Hotplug support.
(5) Support CPUs with scalable frequency.
(5) Add boot time tracing support.
(5) Integrate LTTng and lttd with LKCD.
-- 2.34.1