home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!coplex!nos850!ezelmo!kedeng!kenc
- From: kenc@kedeng.UUCP (Ken Cornetet)
- Newsgroups: comp.unix.programmer
- Subject: IPC questions
- Message-ID: <201@kedeng.UUCP>
- Date: 22 Jul 92 16:28:05 GMT
- Organization: Kimball Electronics, Jasper IN
- Lines: 35
-
- I'm building an application using IPC under ESIX 5.3D (SYSVR3.2). I
- have a process which reads packets off an ARCnet card and shoots the
- packets down different message queues depending on the packet type.
- A server process reads packets off the other end of each queue. My
- problem is that if one queue over-runs (I'm using the IPC_NOWAIT flag in
- the msgsnd), all queues become clogged - a msgsnd to ANY queue returns
- error EAGAIN. The reader for the full queue never returns from the
- msgget call.
-
- I have a couple of questions
-
- 1. Why does one queue filling stop all queues ? My tunable parameters
- are: MSGMNB = 4096, MSGSSZ = 8, and MSGSEG = 1024. If I understand how
- these play together, this means the maximum number of bytes allowed on a
- queue is 4096 (MSGMNB), and the maximum bytes pending system wide is
- 8192 (MSGSSZ*MSGSEG). It looks like one queue filling up should leave
- 4096 bytes left for other queues.
-
- 2. I use ftok(3C) with the same path parameter and different id
- parameter to generate each message queue id. Does this make the queues
- "related" in some way ?
-
- 3. What should I do when I detect a queue over-run ? Should the writer
- process read all the data out of the queue ? Should the writer close
- and re-open the queue ?
-
- 4. As a side issue, would raising the tunable parameter MSGSSZ from 8
- to 16 or 32 improve performance of system IPC ? Has anyone played with
- this value ?
-
- Please email responses to ...!uunet!coplex!nos850!ezelmo!kenc. I don't
- think this system (kedeng.uucp) is in the maps yet.
- --
- Ken Cornetet Kimball Electronics
- uunet!coplex!nos850!ezelmo!kenc Phone: (812) 634-4482
-