3

I have a implementation where the hardware dispatches 300 packets every second to a host application through DMA transfer and then to the host application's message queue.

When packets are sent at high rate to the app, I see that the app is not receiving one or two packets like this. When I use tcpdump, I see that all packets are posted to the host. But how do i know whether where the packet was dropped? Using debug prints will consume CPU usage and not be easy as well.

Can I find out how many messages that I received on that message queue? Using ipcs -q commmand does not list anything.

1 Answer 1

1

SysV messages queues are small by default, on my system ipcs -l displays:

$ ipcs -l
[...]
------ Messages: Limits --------
max queues system wide = 7890
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

The corresponding sysctl entries being:

kernel.msgmni = 7890
kernel.msgmax = 8192
kernel.msgmnb = 16384

Depending on how big the messages are, you might hit some of these limits.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.