Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
CRs-Fixed: 2423695
Change-Id: I3524afc3252d918b336a6026727ce7f8026dc7b0
|
|
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>
|
|
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>
|
|
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>
|