Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-06-01 Thread Manfred Spraul
ase check and (assuming that you agree) run your benchmarks with the patch applied? --     Manfred From fe2f257b1950a19bf5c6f67e71aa25c2f13bcdc3 Mon Sep 17 00:00:00 2001 From: Manfred Spraul Date: Sun, 24 May 2020 14:47:31 +0200 Subject: [PATCH 2/2] ipc/msg.c: Handle case of senders not enqueuing the me

Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-06-01 Thread Artur Barsegyan
gt; > > > @@ -241,6 +242,7 @@ static void ss_wakeup(struct msg_queue *msq, > > > > > continue; > > > > > } > > > > > + msq_quota_used += mss->msgsz; > > > > > wake_q_ad

Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-05-27 Thread Artur Barsegyan
he case of a do_msgsnd() that doesn't enqueue the > > > message: > > > > > > Situation: > > > > > > - 2 messages of type 1 in the queue (2x8192 bytes, queue full) > > > > > > - 6 senders waiting to send messages of type 2 > > >

Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-05-27 Thread Artur Barsegyan
About your case: The new receiver puts at the end of the receivers list. pipelined_send() starts from the beginning of the list and iterates until the end. If our queue is always full, each receiver should get a message because new receivers appends at the end. In my vision: we waste some time

Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-05-26 Thread Manfred Spraul
se of senders not enqueuing the message The patch "ipc/msg.c: wake up senders until there is a queue empty capacity" avoids the thundering herd problem by wakeing up only as many potential senders as there is free space in the queue. This patch is a fix: If one of the senders doesn&#x

Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-05-26 Thread Artur Barsegyan
your patch applied, only one sender sends the message to one receiver, > and the remaining 10 tasks continue to sleep. > > > Could you please check and (assuming that you agree) run your benchmarks > with the patch applied? > > -- > >     Manfred > > > >

Re: [PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-05-24 Thread Manfred Spraul
--     Manfred >From fe2f257b1950a19bf5c6f67e71aa25c2f13bcdc3 Mon Sep 17 00:00:00 2001 From: Manfred Spraul Date: Sun, 24 May 2020 14:47:31 +0200 Subject: [PATCH 2/2] ipc/msg.c: Handle case of senders not enqueuing the message The patch "ipc/msg.c: wake up senders until there is

[PATCH] ipc/msg.c: wake up senders until there is a queue empty capacity

2020-05-23 Thread Artur Barsegyan
Take into account the total size of the already enqueued messages of previously handled senders before another one. Otherwise, we have serious degradation of receiver throughput for case with multiple senders because another sender wakes up, checks the queue capacity and falls into sleep again. E