[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
requirements.  

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
   above requirements.

   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
   applications.

   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.

   http://cvs.developer.osdl.org/viewcvs/viewcvs.cgi/components/posix1b/

   (But again, planned to be replaced.)

Geoff



More information about the cgl_discussion mailing list