Commit 10328c44 authored by Steve French's avatar Steve French

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: default avatarSteve French <stfrench@microsoft.com>
Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
parent 496902dc
...@@ -1503,11 +1503,14 @@ init_cifs(void) ...@@ -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, ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment