summaryrefslogtreecommitdiff
path: root/drivers/rmnet/shs/rmnet_shs_wq.h
AgeCommit message (Collapse)Author
2020-03-18drivers: rmnet: shs: Snapshot of data.lnx.5.1Subash Abhinov Kasiviswanathan
Snapshot of shs driver on data.lnx.5.1 up to the following change id. drivers: rmnet: shs: Unrevert Deadlock fix I1307d82ffa12d0cc1115baa25a19df8ada924e89 Change-Id: I868f2fff8a90d1e99860803c994cee0f69af60b2 Acked-by: Raul Martinez <mraul@qti.qualcomm.com> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2019-11-29drivers: shs: Protect all file system operations using shs ep lockSubash Abhinov Kasiviswanathan
This add synchronization between the file system operations and the updates which occur within the shs workqueue. Fixes the following when there are two instances of userspace handlers running and are killed together- <6> Unable to handle kernel paging request at virtual address ffffffbfadadadb4 <2> pc : __free_pages+0x24/0xc0 <2> lr : free_pages+0x38/0x48 <2> Call trace: <2> __free_pages+0x24/0xc0 <2> free_pages+0x38/0x48 <2> rmnet_shs_release_caps+0x9c/0xb0 [rmnet_shs] <2> close_pdeo+0x94/0x120 <2> proc_reg_release+0x64/0x88 <2> __fput+0xdc/0x1d8 <2> ____fput+0x1c/0x28 <2> task_work_run+0x48/0xd0 <2> do_notify_resume+0x950/0x1160 <2> work_pending+0x8/0x14 CRs-fixed: 2576578 Change-Id: I67d1fc4d1f3c93d4497e988c2118c410091f0dd2 Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2019-10-23rmnet_shs: add userspace flow movement and slow start supportSubash Abhinov Kasiviswanathan
Adds shared memory and generic netlink communication channels for userspace to access cpu and flow related stats so that shsusr can manage how flows are balanced and how TCP flows ramp up. Change-Id: Ie565141149fd5fa58cb1d2b982907681f5c7fd7d Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2019-10-09drivers: rmnet_shs: Remove rmnet ep accessSubash Abhinov Kasiviswanathan
Rmnet driver allocates rmnet_endpoint which rmnet_shs was using to keep track of endpoints that needed. However rmnet driver frees the memory before endpoint unregistration so this leaves a potential race condition where the wq can run after freeing. Change is to instead use net_dev refrerences we keep track of from net_dev_cb and no longer use rmnet_endpoints allocated by rmnet driver. Rmnet_shs was only using netdev references in rmnet_endpoint so no impact should be expected. This use-after-free would cause the following crash-signature. <6> Unable to handle kernel paging request at virtual address 00005000 <6> Mem abort info: <6> Exception class = DABT (current EL), IL = 32 bits <6> SET = 0, FnV = 0 <6> EA = 0, S1PTW = 0 <6> FSC = 5 <6> Data abort info: <6> ISV = 0, ISS = 0x00000005 <6> CM = 0, WnR = 0 <6> user pgtable: 4k pages, 39-bit VAs, pgd = 0000000070b0b425 <6> Internal error: Oops: 96000005 [#1] PREEMPT SMP <6> Workqueue: rmnet_shs_wq rmnet_shs_wq_process_wq [rmnet_shs] <6> task: 00000000deaad59d task.stack: 00000000053e0949 <2> pc : rmnet_shs_wq_update_ep_rps_msk+0x3c/0xd8 [rmnet_shs] <2> lr : rmnet_shs_wq_update_ep_rps_msk+0x28/0xd8 [rmnet_shs] <2> Call trace: <2> rmnet_shs_wq_update_ep_rps_msk+0x3c/0xd8 [rmnet_shs] <2> rmnet_shs_wq_update_stats+0x98/0x928 [rmnet_shs] <2> rmnet_shs_wq_process_wq+0x10c/0x248 [rmnet_shs] <2> process_one_work+0x1f0/0x458 <2> worker_thread+0x2ec/0x450 <2> kthread+0x11c/0x130 <2> ret_from_fork+0x10/0x1c CRs-Fixed: 2541604 Change-Id: I7026f2564c463f4ca989af97572e2a8fe5652087 Acked-by: Raul Martinez <mraul@qti.qualcomm.com> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2019-07-03rmnet_shs: Fix vnd delete handlingSubash Abhinov Kasiviswanathan
Previously shs would mark a vnd deleted by using the ep struct passed from rmnet. However rmnet driver frees the ep struct before the shs vnd_del notification callback. This causes shs to incorrectly no invalidate freed vnds. This change adds a internal struct to check for vnd match in order for rmnet_shs to correctly invalidate vnds. Change-Id: I1e4e86ad0ab5abe2abd569e33fba65198badb17c Acked-by: Raul Martinez <mraul@qti.qualcomm.com> Signed-off-by: Conner Huff <chuff@codeaurora.org>
2019-03-26Fast-Forward driver/rmnet folder from 4.0 to 5.0arnav_s
CRs-Fixed: 2423695 Change-Id: I3524afc3252d918b336a6026727ce7f8026dc7b0
2018-11-14drivers: rmnet_shs: Reduce switching OOO packetsSubash Abhinov Kasiviswanathan
Previously we only switch at the request of the core monitoring workqueu. This adds an option to switch in rx context based on the an instant rate measure on the core. Based on this we will mark core as loaded and move flows from that core after a delay. This reduces OOO packets by reacting quicker to lower the pending backlog and by waiting longer between a switch. Change-Id: I09b6f01fa1cda982728dc8d5e8004c6323d0612b Acked-by: Raul Martinez <mraul@qti.qualcomm.com> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2018-10-04rmnet_shs: power save indication and ssr fixSubash Abhinov Kasiviswanathan
Get notified of rmnet driver status in order to cleanup when rmnet goes into idle mode. SSR fix to reinit module after SSR. Perf burst selection fix. Fix perf cpu selection during a rx burst always returning 0. CRs-Fixed: 2316002 Change-Id: I199c49a36a328da7457fdb24c0302815e1a2edf9 Acked-by: Raul Martinez <mraul@qti.qualcomm.com> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2018-09-21rmnet: shs: Initial commitSubash Abhinov Kasiviswanathan
shs is smart hash stamping. This module does load based cpu re-routing of data. Change-Id: I2a464b77cf6003309a49241807d53a1a777e9ab0 Acked-by: Mahadevan Appadurai <mappadur@qti.qualcomm.com> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>