Re: [RFC -mm 0/6] sysv ipc: scale msgmnb with the number of cpus

From: Nadia Derbey
Date: Wed Jun 25 2008 - 06:12:22 EST


Manfred Spraul wrote:
Solofo.Ramangalahy@xxxxxxxx wrote:

Humm... now this make me think that you did not change the MSGMNB
value when you changed MSGMNI and MSGMAX.
Maybe that was on purpose?


I was afraid that it might break user space applications that queue a few kb of messages.
That's also the reason for

if (msgsz + msq->q_cbytes <= msq->q_qbytes &&
1 + msq->q_qnum <= msq->q_qbytes) {
break;
}

It's possible to send 0-byte messages even if the message queue is full [except that you can't send more than MSGMNB messages].


Manfred,

If I'm not missign anything when reading the code, sending up to MSGMNB 0-bytes messages would make us enqueue MSGMNB msg_msg structures (this is in the worst case where no receiver is waiting for those messages).
==> MSGMNB * 24 bytes (or 48 bytes in 64-bit mode))
==> 384 KB with current MSGMNB value (16K).

But 1,5 MB with a MSGMNB=64K

Even if it is a worst case, it should be considered and may be we should refine the formula Solofo has proposed if you think this is not a reasonable value.
May be add a dependency on the memory size?

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