Bounded concurrent queues (BCQ)
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 26 Mar 2010 11:46:36 +0000 (04:46 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:40 +0000 (17:35 -0700)
commit6e39dfd1014e9bbccd7f3fa41e2e504b4cdb1a92
tree44228f6f4ab2ad31526f07172f8957db7b9ff38e
parent6e903cb7677ec4c684c02084c825618dd33c52ac
Bounded concurrent queues (BCQ)

First implementation and interface for BCQs.  They are lock-free,
concurrent producer-consumer (one-way) queues based on a fixed (bounded)
buffer.  They are also designed for an untrusted consumer.  The producer
will not block, and it will bail out after a certain number of failed
attempts to enqueue.  All data is stored inside the BCQ (there is a
header), making it small and easy to program with.

In theory (sort of), these should be able to handle multiple concurrent
producers and consumers, but has only been tested with one core so far.

The initial use case will be the notification entries, per-process,
per-vcore.
kern/include/ros/bcq.h [new file with mode: 0644]
kern/include/testing.h
kern/src/testing.c