• Karsten Graul's avatar
    net/smc: use separate work queues for different worker types · 22ef473d
    Karsten Graul authored
    There are 6 types of workers which exist per smc connection. 3 of them
    are used for listen and handshake processing, another 2 are used for
    close and abort processing and 1 is the tx worker that moves calls to
    sleeping functions into a worker.
    To prevent flooding of the system work queue when many connections are
    opened or closed at the same time (some pattern uperf implements), move
    those workers to one of 3 smc-specific work queues. Two work queues are
    module-global and used for handshake and close workers. The third work
    queue is defined per link group and used by the tx workers that may
    sleep waiting for resources of this link group.
    And in smc_llc_enqueue() queue the llc_event_work work to the system
    prio work queue because its critical that this work is started fast.
    Reviewed-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
    Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    22ef473d
smc.h 8.2 KB