diff options
author | Karsten Graul <kgraul@linux.ibm.com> | 2020-04-29 17:10:46 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-04-29 21:26:32 +0200 |
commit | 6c8968c421e0e6bea8a78ee4fdd043d850cd5b26 (patch) | |
tree | 31c3e1135d7b6891fea1ef365c989d1126d88e63 /net/smc/smc_llc.h | |
parent | net/smc: simplify link deactivation (diff) | |
download | linux-6c8968c421e0e6bea8a78ee4fdd043d850cd5b26.tar.xz linux-6c8968c421e0e6bea8a78ee4fdd043d850cd5b26.zip |
net/smc: use worker to process incoming llc messages
Incoming llc messages are processed in irq tasklet context, and
a worker is used to send outgoing messages. The worker is needed
because getting a send buffer could result in a wait for a free buffer.
To make sure all incoming llc messages are processed in a serialized way
introduce an event queue and create a new queue entry for each message
which is queued to this event queue. A new worker processes the event
queue entries in order.
And remove the use of a separate worker to send outgoing llc messages
because the messages are processed in worker context already.
With this event queue the serialized llc_wq work queue is obsolete,
remove it.
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Reviewed-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_llc.h')
-rw-r--r-- | net/smc/smc_llc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/smc/smc_llc.h b/net/smc/smc_llc.h index c2c9d48d079f..9de83495ad14 100644 --- a/net/smc/smc_llc.h +++ b/net/smc/smc_llc.h @@ -61,6 +61,7 @@ int smc_llc_do_confirm_rkey(struct smc_link *link, struct smc_buf_desc *rmb_desc); int smc_llc_do_delete_rkey(struct smc_link *link, struct smc_buf_desc *rmb_desc); +void smc_llc_event_flush(struct smc_link_group *lgr); int smc_llc_init(void) __init; #endif /* SMC_LLC_H */ |