[cgl_discussion] Project Review: POSIX Message Queues
Gustafson, Geoffrey R
geoffrey.r.gustafson at intel.com
Thu Sep 12 09:34:00 PDT 2002
Project Review for POSIX Message Queues
1. Quote the requirements from the requirements doc
that your project is expected to meet.
POSIX Interface Compliance
OSDL CGL shall provide POSIX-compatible interfaces to support direct porting
of common carrier grade applications. OSDL CGL shall follow the 2001 POSIX
standard where it supersedes the standards cited in the following
Requirement: 1.2.3 POSIX Message Queue Interface Standard Compliant
Version Assignment: Core 1.1
Application Type: G,S,M
Description: OSDL CGL shall extend the Linux Message queue support to
enable and fully comply with the following standards:
· POSIX, Section 15 - Message Passing
· IEEE 1003.1b - 1993, Section 15.1, 15.2 (Message Queues) amendment
· IEEE 1003.1d - 1999, Section 15.2 (Message Queues) amendment
· IEEE 1003.1j - 2000, Section 15.1, 15.2 (Message Queues) amendment
· IEEE 1003.1q - 2000, No amendment
All APIs in section 15.2 [Message passing] as they apply to message queues
shall be provided. It shall include all required modifications to the
internal kernel message queue handling.
2. Explain how you think the project meets the
The posix1b project taken from http://www.garret.ru/~knizhnik/
provides a user-space library wrapper around the existing Linux
SVR4 message queues to provide the POSIX APIs. However, validation
has found several bugs in this implementation. After development
investigation, it turns out these are fundamental to the design
because they involve features not provided by the underlying SVR4
APIs. Several solutions are possible:
1. hacks to record additional information about the queues on
on the filesystem
2. reimplementation using a daemon
3. reimplementation within the kernel itself
Stepping into the fray, however, a recent patch posted to the
Linux kernel mailing list also provides this functionality. It
has only one serious bug when tested against our existing
validation suite, so we plan to adopt this project instead.
Because of the lockdown, this has not yet been done.
3. Explain the design of the project or point to
a document on the web that explains the design.
The design of the existing code is a translation of POSIX
message queue APIs into corresponding Linux SVR4 APIs. A user-space
static .a library is built which must be linked into client
However, we plan to replace this implementation with the kernel
patch. I believe there will still be a user library to link to.
4. Pointer to the code/patch.
(But again, planned to be replaced.)
More information about the cgl_discussion