staging: vchiq_arm: Avoid premature message stalls
authorPhil Elwell <phil@raspberrypi.org>
Tue, 17 Jan 2017 20:56:15 +0000 (20:56 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2017 10:08:57 +0000 (11:08 +0100)
commita2db578bc07468a28d213fed37057ce1e182112e
tree2a1c81d855734a36a9be06f19d812aa64d71460a
parentca3df03b83f2abaf0c50d777eccf4d12bc4d4dec
staging: vchiq_arm: Avoid premature message stalls

The constants MAX_COMPLETIONS and MSG_QUEUE_SIZE control
the number of messages that can be outstanding to each client
before the system as a whole stalls. If the numbers are too
small then unnecessary thread switching will occur while
waiting for a (potentially low priority) client thread to
consume some data; badly written clients can even lead to
deadlock.

For services that carry many short messages, 16 messages can
represent a very small amount of data. Since the resources
are small - 16 bytes for a completion, 4 bytes for a message
pointer - increase the limits so they are unlikely to be hit
except in exceptional circumstances.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c