Adding channels design doc
authorDavid Zhu <yuzhu@cs.berkeley.edu>
Fri, 6 Nov 2009 20:45:15 +0000 (12:45 -0800)
committerDavid Zhu <yuzhu@cs.berkeley.edu>
Fri, 6 Nov 2009 20:45:15 +0000 (12:45 -0800)
Documentation/channels.txt [new file with mode: 0644]

diff --git a/Documentation/channels.txt b/Documentation/channels.txt
new file mode 100644 (file)
index 0000000..5a4e298
--- /dev/null
@@ -0,0 +1,46 @@
+Channels
+This summarizes brainstorming ideas around different types of channels, and 
+will eventually contain the design of different types of channels. 
+
+Protection and semantics of the message
+- Immutability of messages after sending
+       - writes allowed (full trust)
+       - read only
+       - hand-off (enforce through PL or pagetable?)
+- Support for a twoway channel
+       - just two one-way channels
+
+- variability of the size in the channel
+       - Request and Response size are different, so maybe we should handle them differently?
+       Constant size: embed in the ring buffer? 
+       Variable size: Splitting request and data (fixed size ring buffer with pointers into a data page)
+- size of the msg
+       - large -> remapping
+       - small -> in buffer/ copy semantics
+
+- Ack required for one way channel?
+
+- Kernel one of the end point? syscall/sysevent
+       - diff trust model etc
+
+- Access control and Naming
+       - related but distinct
+       - Xenstore like/ hierarchical namespace
+       - single entity knowing all channels? or managed by individual partitions?
+       - create a channel to a service, what is the interface for that?
+
+       Access control: 
+       - check at load time
+       - Singularity style manifests for diff. applications
+
+- Multi-producer / Multi-consumer
+       - Trust between the producers and trust between consumers
+       - typically no trust between address spaces/ partitions, and full trust within?
+
+       - per core channel vs. per address space channel
+
+- blocking semantics (block, fail, retry)
+- what to do when the queue is full? admission policy for channels?
+
+
+