Age | Commit message (Collapse) | Author |
|
android-msm-floral-4.14
Bug: 149660093
Change-Id: Ibc0260e3160dd1a4b421b2559312bc16a5c0c7d8
Signed-off-by: Wilson Sung <wilsonsung@google.com>
|
|
Change-Id: I4963fd1150ba6ba5f2c21a2a28f35413c3c6fa6f
|
|
Change-Id: I5fedc1f2bd670421ae29ca49b554005ce8efb05e
|
|
In case there is a burst of data beyond a threshold, the core switch
timer will try to schedule a worker once the timer expires.
While the pending work is cleaned up on timer expiry, the pending
timers itself are not cleared up.
As part of this change, the core switch module parameter is
reset on start of cleanup to ensure no more timers are configured
during the cleanup.
Fixes the following-
399.705316: <6> Modules linked in: rmnet_perf(O) [last unloaded: rmnet_shs]
399.734305: <2> pstate: 20400085 (nzCv daIf +PAN -UAO)
399.739251: <2> pc : rb_insert_color+0x10/0x168
399.743555: <2> lr : timerqueue_add+0x88/0xc0
400.413555: <2> Call trace:
400.416084: <2> rb_insert_color+0x10/0x168
400.420042: <2> enqueue_hrtimer+0x198/0x1c0
400.424081: <2> __hrtimer_run_queues+0x4e8/0x5b0
400.428568: <2> hrtimer_interrupt+0x108/0x350
400.432793: <2> arch_timer_handler_virt+0x40/0x50
400.437373: <2> handle_percpu_devid_irq+0x1dc/0x428
400.442122: <2> __handle_domain_irq+0xa0/0xf8
400.446345: <2> gic_handle_irq+0x154/0x1d4
400.450298: <2> el1_irq+0xb4/0x130
CRs-fixed: 2594249
Change-Id: I6e4a1982ce4665340cb1a75d0ec17d1db3f286fc
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
|
android-msm-floral-4.14
Bug: 146759211
Change-Id: I594bc7e2ab1c248a53a1aa2f49604bc37bdab434
Signed-off-by: Wilson Sung <wilsonsung@google.com>
|
|
Change-Id: I6feb6a89d841735476ea9e7cac86874bc0b55978
|
|
Changes to check if NAPI is enabled and then call
netif_rx_skb, else follow the legacy way of calling
netif_rx_ni.
Acked-by: Abhishek Chauhan <abchauha@qti.qualcomm.com>
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
|
|
|
|
THis change add support for proper cleanup
for Ethernet on shutdown/reboot.
Change-Id: I3545905ad8ad0e139cf49f489868c738fd699445
|
|
Check before using page allocated for capabilities, gold flows
and slow start flows.
CRs-fixed: 2576578
Change-Id: I8f062004466447703c84912506af5963035c163c
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>
|
|
|
|
Before registering perf structures make sure
it has not yet been registered before.
Conversely, if deregistering perf, make sure
that it was registered in the first place.
Signed-off-by: Conner Huff <chuff@codeaurora.org>
Change-Id: I00b89f45780161615b25faebfa70e79dde530c2f
|
|
Set the weights to be used in calculating "avg_pps", when the flow is
executing on the Perf CPU's in function "rmnet_shs_wq_get_flow_avg_pps".
Change-Id: Ia50db34a348c068a9b1bf3171fced858ce0a62de
Signed-off-by: Chinmay Agarwal <chinagar@codeaurora.org>
|
|
Change-Id: I7d661f7bb23e812783d61c63061e19f8e743efff
Acked-by: Nisha Menon <nmenon@qti.qualcomm.com>
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
|
|
corruption
Add limit to the number of flows copied into the gold flow and slow start
flow arrays before memcpy to shared memory. Going out of bounds on the
array write corrupted the global variables for the shared memory pointers.
Fixes the following:
[ 846.803490] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000081
[ 846.909206] Process kworker/4:1 (pid: 80, stack limit = 0xffffff800b670000)
[ 846.916377] CPU: 4 PID: 80 Comm: kworker/4:1 Tainted: G S O 4.19.81+ #1
[ 846.930899] Workqueue: rmnet_shs_wq rmnet_shs_wq_process_wq [rmnet_shs]
[ 846.942612] pc : rmnet_shs_wq_mem_update_cached_sorted_ss_flows+0x9c/0xf0 [rmnet_shs]
[ 846.950657] lr : rmnet_shs_wq_eval_cpus_caps_and_flows+0x74/0x218 [rmnet_shs]
Change-Id: Ifeee71e48fc61c4dd750eb061573beb88fcd2b7d
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
|
Fix for a deadlock seen when trying to register the shs generic netlink family
inside of the callback context of rtnl_netlink. Instead of running in the
notifier's context, the generic netlink registration is moved to initialization
of the kernel module. Fixes the following lock contention scenario:
[ 3302.102281] Call trace:
[ 3302.102332] __switch_to+0x108/0x118
[ 3302.102357] __schedule+0x8fc/0xcd8
[ 3302.102368] schedule_preempt_disabled+0x7c/0xa8
[ 3302.102384] __mutex_lock+0x444/0x660
[ 3302.102392] __mutex_lock_slowpath+0x10/0x18
[ 3302.102399] mutex_lock+0x30/0x38 mutex_lock(&rtnl_mutex);
[ 3302.102422] rtnl_lock+0x14/0x20 rtnl_lock
[ 3302.102448] nl80211_pre_doit+0x28/0x1a0
[ 3302.102465] genl_rcv_msg+0x3a4/0x408
[ 3302.102473] netlink_rcv_skb+0xa8/0x120
[ 3302.102481] genl_rcv+0x30/0x48 down_read(&cb_lock);
[ 3302.102487] netlink_unicast+0x1ec/0x290
[ 3302.102496] netlink_sendmsg+0x2ec/0x348
[ 3302.102609] Call trace:
[ 3302.102615] __switch_to+0x108/0x118
[ 3302.102624] __schedule+0x8fc/0xcd8
[ 3302.102630] schedule+0x70/0x90
[ 3302.102638] rwsem_down_write_failed+0x2bc/0x3c8
[ 3302.102644] down_write+0x4c/0x50
[ 3302.102652] genl_register_family+0xb4/0x650 down_write(&cb_lock);
[ 3302.102818] rmnet_shs_wq_genl_init+0x1c/0x38 [rmnet_shs]
[ 3302.102847] rmnet_shs_wq_init+0x218/0x328 [rmnet_shs]
[ 3302.102873] rmnet_shs_dev_notify_cb+0x378/0x3e0 [rmnet_shs]
[ 3302.102892] raw_notifier_call_chain+0x3c/0x68
[ 3302.102909] register_netdevice+0x374/0x560
[ 3302.102934] rmnet_vnd_newlink+0x6c/0xe8
[ 3302.102942] rmnet_newlink+0x9c/0x198
[ 3302.102950] rtnl_newlink+0x648/0x7b0
[ 3302.102960] rtnetlink_rcv_msg+0x270/0x388 mutex_lock(&rtnl_mutex);
Change-Id: Ib71de0cb4617477cab40a7f42154584765e30c2b
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
|
Checks the correct pointer for null before freeing the associated page for
slow start shared memory. Fixes the following:
[ 2982.239281] Unable to handle kernel paging request at virtual address ffffffbfadadadb4
[ 2982.239512] pc : __free_pages+0x24/0xc0
[ 2982.239515] lr : free_pages+0x38/0x48
[ 2982.240605] Call trace:
[ 2982.240609] __free_pages+0x24/0xc0
[ 2982.240613] free_pages+0x38/0x48
[ 2982.240632] rmnet_shs_release_ss_flows+0x38/0x58 [rmnet_shs]
Change-Id: I1c61b8c9c89905e94c24f6836eaf1d7f56566162
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
|
|
|
Due to recent propogation ACK interrupt was removed.
This can affect WOL & PHY intr. Added support.
Change-Id: I0accb5b754971e9d9e2d58bbe3de15e71be73fe9
|
|
The allocation of the shs memory for cpu and flow level stats is done is
done in the atomic context due to the invocation of the spin_lock_irqsave which
disables preemption. Fixes the following-
230.251419: <6> sleeping function called from invalid context at mm/slab.h:422
230.277265: <6> in_atomic(): 1, irqs_disabled(): 128, pid: 62, name: kworker/6:0
230.277267: <2> INFO: lockdep is turned off.
230.284504: <2> irq event stamp: 90
230.284514: <2> hardirqs last enabled at (89): [<ffffff9ddee82594>] _raw_spin_unlock_irq+0x34/0x68
230.284517: <2> hardirqs last disabled at (90): [<ffffff9ddee7b5a8>] __schedule+0x138/0x1128
230.284524: <2> softirqs last enabled at (0): [<ffffff9ddd8b7f24>] copy_process+0x60c/0x1c28
230.284525: <2> softirqs last disabled at (0): [<0000000000000000>] (null)
230.284526: <4> Preemption disabled at:
230.284535: <2> [<ffffff9d7fa2b63c>] rmnet_shs_wq_process_wq+0x18c/0x350 [rmnet_shs]
230.288129: <6> ------------[ cut here ]------------
230.292958: <6> at kernel/sched/core.c:6786!
230.305980: <6> Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
230.358297: <6> Process kworker/6:0 (pid: 62, stack limit = 0xffffff80083c0000)
230.365454: <6> CPU: 6 PID: 62 Comm: kworker/6:0 Tainted: G S O 4.19.81+ #1
230.379937: <6> Workqueue: rmnet_shs_wq rmnet_shs_wq_process_wq [rmnet_shs]
230.386741: <2> pc : ___might_sleep+0x204/0x208
230.401745: <2> lr : ___might_sleep+0x204/0x208
230.598414: <2> Call trace:
230.598419: <2> ___might_sleep+0x204/0x208
230.598420: <2> __might_sleep+0x50/0x88
230.598423: <2> kmem_cache_alloc_trace+0x74/0x420
230.598430: <2> rmnet_shs_wq_cpu_caps_list_add+0x64/0x118 [rmnet_shs]
230.598433: <2> rmnet_shs_wq_update_stats+0x4dc/0xea0 [rmnet_shs]
230.598435: <2> rmnet_shs_wq_process_wq+0x194/0x350 [rmnet_shs]
230.598438: <2> process_one_work+0x328/0x6b0
230.598439: <2> worker_thread+0x330/0x4d0
230.598441: <2> kthread+0x128/0x138
230.598443: <2> ret_from_fork+0x10/0x1c
Also fixes structure padding of shared mem structs, which was causing memcpy overrun.
CRs-Fixed: 2570479
Change-Id: Ia58b0bee544afb030353ad1d3cd45d8c16a94f75
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
|
Much like the core driver, we must check for the return value of
rmnet_frag_pull() to ensure the descriptor is still valid before
continuing to process it.
Call Trace:
__memcpy+0x68/0x180
rmnet_perf_core_send_desc+0x48/0x58 [rmnet_perf]
rmnet_perf_opt_flush_single_flow_node+0x244/0x458 [rmnet_perf]
rmnet_perf_tcp_opt_ingress+0x228/0x270 [rmnet_perf]
rmnet_perf_opt_ingress+0x34c/0x3a0 [rmnet_perf]
rmnet_perf_core_desc_entry+0x114/0x168 [rmnet_perf]
Change-Id: I6665d7410bcdb6880af1ca20822328f81a2cc0ec
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
|
|
This change add support in emac driver for
required performance setting on Talos.
Change-Id: I8facf4b72c624484cc4a75d34cd2cfcd5f95f42c
|
|
|
|
|
|
Previously ICMP packet would be ignored by SHS causing RPS to send
them randomly to a CPU in the configured RPS mask. This would lead
ICMP packets to being sent to gold cluster in some cases. This results
in worse power performance and higher latency as gold cluster might
have to be woken up from power collapse in order to process a single
packet.
This change causes SHS to instead mark the ICMP packet as having a
valid hash but actually leaves the hash as null. This is interpreted
by RPS as an invalid CPU and causes the packet to be processed on the
current CPU.
From various experiments rmnet to NW stack latency start seems to take
on avg about ~.8ms longer for inter-cluster ping processing so queing
to gold cluster is not advised.
Additionally queueing to a separate silver core in the silver cluster
only increased avg latency by about ~.01ms.
Change-Id: I631061890b1edb03d2e680b7f6d19f310d838ed1
Acked-by: Raul Martinez <mraul@qti.qualcomm.com>
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
|
|
|
|
|
|
|
|
Change-Id: Ifd30e9d98dd43e31a4c7e3fd804c5fe4426cfbb9
Acked-by: Rahul Kawadgave <rahulak@qti.qualcomm.com>
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
- Added check for NULL pointer access and initialized uninitalized variables.
Change-Id: I84dfee37664407fd5a7d1303b0457ea241130cea
Acked-by : Sneh Shah <snehshah@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
|
|
This change add the phy check for the phy specific code.
Change-Id: I28334df4cf16b6108afc7c44bf8e9623b22add98
|
|
- Checking for null pointer dereference
Change-Id: I163fa32cedbad9f9a6ab19e8371b2a043d7a8884
Signed-off-by: sneh shah <snehshah@codeaurora.org>
|
|
- resolve EMAC crash caused due improper ip header handling
Change-Id: Ia9d4249592a2a0dcfa492cd07dcf25fdf62f70e7
Signed-off-by: Lakshit Tyagi <ltyagi@codeaurora.org>
|
|
|
|
|
|
Change-Id: I3bb37457557092e1e3007fd07cffed92834400c1
|
|
IPA offload was getting enabled in Sa8155 for early ethernet.
Disabling it while checking the correct config
Change-Id: I4d165aea9dcbf6115218f21f99ff0968664aa2f7
Signed-off-by: Lakshit Tyagi <ltyagi@codeaurora.org>
|
|
This change help for suspend resume.With dev_pm_ops
enabled legacy suspend/resume will never happend.
Added support to provide the suspend/resume in
dev_pm_ops.
Change-Id: Ibc74407a90cc12605795222bc31586828caf3278
|
|
Update EMAC driver to support hibernation mode support.
Bring down interface on hibernation mode and up on exi
Change-Id: I20591969a56fb30c0a13be617f519bb43119f27d
Acked-by: Rahul Kawadgave <rahulak@qti.qualcomm.com>
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
Enable PPS config.
Change-Id: I1f89c965b0c6234211a059249c4ee1575fa4a3ce
Acked-by: Rahul Kawadgave <rahulak@qti.qualcomm.com>
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
This change add support to changed the timestamp update method to
Fine timestamp update method instead of Coarse Timestamp
Update method since on driver we are using Fine method as default.
Also , we are chaniging default PTP clock to 96Mhz to
generate 19.2Mhz PPS frequency.
Change-Id: Id5c4a22c0163b64762422df0cb3f1e0154515f60
|
|
Add new flag to the enable PPS-LPASS connectivity
initialziation. Fix the ptp clock frequency
initiazation too the.
Change-Id: I8296306e9223a846a7c57d94231d05488121bcf4
CRs-Fixed: 2374673
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
Fix the required PTP clock for accuracy.the
Fix sub_second_increment and addend configuration.
Change-Id: Ib2b68529d689c1d8c84aadf6a456df0abc77af8b
Acked-by: Rahul Kawadgave <rahulak@qti.qualcomm.com>
Signed-off-by: Sunil Paidimarri <hisunil@codeaurora.org>
|
|
EMAC RXC clock is always sourced from PHY. If the GPIO
used for RXC clock is multiplexed, there will be interrupt
line routed towards GIC and it will be always enabled.
As a result, device will never go to low power state.
Make a change to disable GPIO pin used for RXC clock
when defice goes to suspend and enable it back on resume.
Change-Id: I83cab3f77ee05b12004a28f68529566de5fd1faa
Signed-off-by: Chaitanya Pratapa <cpratapa@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>
|
|
Change-Id: I1688b69628360b4f51d0e1286ecf445b9654ab81
|
|
|