[lkml]   [2003]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] POSIX message queues - syscalls & SIGEV_THREAD
    On Sun, 16 Nov 2003, Manfred Spraul wrote:

    > >+/proc/fs/mqueue/max_queues is a read/write file for setting/getting the
    > >+maximum number of message queues allowed on the system.
    > >+
    > >
    > Why did you add your own proc file, instead of a sysctl entry?
    Ok, we wanted to add this (proc support was done by Rusty Lynch) but when
    we started to move implementation to syscalls we put it away.

    > >+#define MQ_MAXMSG 40 /* max number of messages in each queue */
    > >
    > >
    > In the long run, this should be run time configurable. For now it
    > doesn't matter, but think about that when chosing algorithms.
    We do. We removed heaps implementation as on some different
    (sensible) MQ_MAXMSG values it didn't show performance improve.

    > >+#define MQ_MAXSYSSIZE 1048576 /* max size that all m.q. can have together */
    > >
    > Dito: we must try to avoid global counters - they limit the scalability.
    Could you be more precise: This constant is non-POSIX. We added it only
    because users (and some people on lkml) wanted so. It can be set to
    MQ_MAXMSG*MQ_MAXMSG*MQ_MSGSIZE + 1 to turn off whole feature. So if I
    understand you we add this just to limit scalability (and DoS attacks)

    > >+static int wq_sleep(struct mqueue_inode_info *info, int sr,
    > >+ signed long timeout, struct ext_wait_queue *wq_ptr)
    > >+{
    > >
    > [snip]
    > >+ if ((current->pid == (list_entry(info->e_wait_q[sr].list.prev, struct ext_wait_queue, list))->task->pid)
    > >
    > Why current->pid? "current == ...->task" is sufficient.

    > >diff -urN 2.6.0-test9-orig/ipc/msg.c 2.6.0-test9-patched/ipc/msg.c
    > >--- 2.6.0-test9-orig/ipc/msg.c 2003-11-07 17:07:13.000000000 +0100
    > >+++ 2.6.0-test9-patched/ipc/msg.c 2003-11-07 18:30:17.000000000 +0100
    > >
    > >[snip: move load_msg, free_msg to util.c]
    > >
    > Could you split that into a separate patch?

    Hm, Michal said the same but considering that some preprocessor conditions
    in util.c base on mqueues config I think that putting it different patch
    would be little bit strange. But if you feel it ok - no problem. Maybe
    the best solution would be to make one patch that just moves functions
    from msg.c to util.c and in main patch add only little #ifdef change in

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:58    [W:2.383 / U:0.012 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site