mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-20 14:16:02 +00:00
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>
This commit is contained in:
parent
ca3df03b83
commit
a2db578bc0
1 changed files with 2 additions and 2 deletions
|
@ -64,10 +64,10 @@
|
||||||
#define VCHIQ_MINOR 0
|
#define VCHIQ_MINOR 0
|
||||||
|
|
||||||
/* Some per-instance constants */
|
/* Some per-instance constants */
|
||||||
#define MAX_COMPLETIONS 16
|
#define MAX_COMPLETIONS 128
|
||||||
#define MAX_SERVICES 64
|
#define MAX_SERVICES 64
|
||||||
#define MAX_ELEMENTS 8
|
#define MAX_ELEMENTS 8
|
||||||
#define MSG_QUEUE_SIZE 64
|
#define MSG_QUEUE_SIZE 128
|
||||||
|
|
||||||
#define KEEPALIVE_VER 1
|
#define KEEPALIVE_VER 1
|
||||||
#define KEEPALIVE_VER_MIN KEEPALIVE_VER
|
#define KEEPALIVE_VER_MIN KEEPALIVE_VER
|
||||||
|
|
Loading…
Reference in a new issue