Re: [PATCH] unified SysV and Posix mqueues as FS

Manfred Spraul (manfred@colorfullife.com)
Sun, 27 Oct 2002 17:55:07 +0100


> - notification not tested
> - still linear search in queues

Is that a problem? Receive does one linear search of the queued
messages, send does one linear search of the waiting receivers. Both
lists should be short.

Could you split your patch into the functional changes and cleanup?
(const, size_t, you move a few definitions around, whitespace cleanups)

I don't like the deep integration of the mqueues into the sysv code - is
that really needed?
For example, you add the mqueue messages into the sysv array, and then
add lots of code to separate both again - IPC_RMID cannot remove posix
queues, etc.

Have you tried to separate both further? Create a ramfs like filesystem,
store msg_queue in the inode structure?
The ids array is only for sysv, only the actual message handling is
shared between sysv msg and posix mqueues

> + msq->q_flags |= MSG_UNLK;
Is a "unlinked" flag needed for sysv msg? When a message queue is
deleted, all pending writes and reads are cancleled.
Copy and paste from shm? shm needs unlinked handling, msg doesn't.

> + msq->q_perm.key = IPC_PRIVATE; /* Do not find it any more */
Does that work? The key is only needed for msgget(), not for msgsnd() or
msgrcv()
> + msg_unlock (inode->i_ino);

--
	Manfred

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/