Messages in this thread | | | Date | Sun, 27 Oct 2002 17:55:07 +0100 | From | Manfred Spraul <> | Subject | Re: [PATCH] unified SysV and Posix mqueues as FS |
| |
> - 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/
| |