smb3: only offload decryption of read responses if multiple requests
No point in offloading read decryption if no other requests on the wire Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
This commit is contained in:
parent
496902dc17
commit
10328c44cc
|
@ -1503,11 +1503,14 @@ init_cifs(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BB Consider setting limit!=0 maybe to min(num_of_cores - 1, 3) so we
|
* Consider in future setting limit!=0 maybe to min(num_of_cores - 1, 3)
|
||||||
* don't launch too many worker threads
|
* so that we don't launch too many worker threads but
|
||||||
|
* Documentation/workqueue.txt recommends setting it to 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* WQ_UNBOUND allows decrypt tasks to run on any CPU */
|
||||||
decrypt_wq = alloc_workqueue("smb3decryptd",
|
decrypt_wq = alloc_workqueue("smb3decryptd",
|
||||||
WQ_FREEZABLE|WQ_MEM_RECLAIM, 0);
|
WQ_UNBOUND|WQ_FREEZABLE|WQ_MEM_RECLAIM, 0);
|
||||||
if (!decrypt_wq) {
|
if (!decrypt_wq) {
|
||||||
rc = -ENOMEM;
|
rc = -ENOMEM;
|
||||||
goto out_destroy_cifsiod_wq;
|
goto out_destroy_cifsiod_wq;
|
||||||
|
|
|
@ -4121,7 +4121,7 @@ receive_encrypted_read(struct TCP_Server_Info *server, struct mid_q_entry **mid,
|
||||||
* use more cores decrypting which can be expensive
|
* use more cores decrypting which can be expensive
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((server->min_offload) &&
|
if ((server->min_offload) && (server->in_flight > 1) &&
|
||||||
(server->pdu_size >= server->min_offload)) {
|
(server->pdu_size >= server->min_offload)) {
|
||||||
dw = kmalloc(sizeof(struct smb2_decrypt_work), GFP_KERNEL);
|
dw = kmalloc(sizeof(struct smb2_decrypt_work), GFP_KERNEL);
|
||||||
if (dw == NULL)
|
if (dw == NULL)
|
||||||
|
|
Loading…
Reference in New Issue