When a kernel thread calls dma_buf_put() to release the last reference
to a dma-buf, fput_many() defers calling the release callback to a
workqueue. This means that if the same kernel thread later calls
dma_heap_buffer_alloc(), it has no guarantee that the memory from the
prior free is available, leading to random failures. As a short-term
workaround, call flush_delayed_fput() to ensure the free completes
synchronously.
Change-Id: Ia2ab97ca9d1adfb99cd20a316d412bf931f7b3f0
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
Add flushed_delayed_fput for usage by mem-buf.
Change-Id: I16b06de8b4b87f8e4d391229c6b13181c7be9bd9
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
When below sequence is run back-to-back, -ENOMEM is occasionally returned
by MEM_BUF_IOC_REMOTE_ALLOC.
ioctl(MEM_BUF_IOC_REMOTE_ALLOC, args)
fd = args.fd
close(fd)
This occurs because the message sent from TUIVM to PVM as part of the
file release callback is asynchonous. Resolve this by adding a new
message type which indicates when PVM has completed the free operation.
Additionally, define a separate obj_id instead of reusing the transaction
id for this purpose.
Change-Id: Iea458ec80cd14bd08848192371d0bb71cdc5de60
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
Reuse the same buffer for each message in mem_buf_msgq_recv_fn()
instead of allocating a new one for each message, and freeing it
in a dozen different locations depending on what type of message it
is.
If a consumer of the message needs to defer its work to a workqueue,
it must allocate a new copy of the message.
Change-Id: Ia5583bc7dc9937211f25624f7a679d34fe8fb521
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
gh_rm_mem_accept allows a VM to request memory to be mapped to a specific
IPA address. Modify function parameters to allow for future use of this
feature.
Change-Id: I6ad586886563e769549e4966369da48c27ca0a5c
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
Allow a guest VM to choose whether the memory it requests is obtained
via the lend, share or donate hypervisor call.
Change-Id: I7e1f25ea0f9b0ec99d4a7afd79f206f9a2b67d85
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
Support to donate memory is always present on compatible hypervisor
builds.
Change-Id: Ic7a4c03716277e379014bb31e58358cffb85409c
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
Enable CONFIG_QCOM_MEM_BUF_MSGQ, CONFIG_QCOM_MEM_BUF_GH and
CONFIG_QCOM_MEM_BUF_DEV_GH to allow mem-buf CPU use cases to be
exercised.
Change-Id: I15bbb098c1ba28924f73b203718203f4dbd6c2bd
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
add_memory_subsection() and remove_memory_subsection() are only needed
on the TVM and OEM VMs. These are downstream functions as well. Thus,
selectively allow them to be enabled so that we only compile them on
downstream kernels.
Change-Id: I8416cd8eb8db74cf8a3cfbc8e3d7ea2fff112353
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
Currently the code subtracts busy time when a task is being migrated.
IOW migrate_busy_time_subtraction is called in set_task_cpu hook.
And the code adds busy time in an after-migration enqueue IOW
enqueue_after_migration is seen set in enqueue hook.
Both the above operations happen under the prev_cpu and next cpu rq
lock respt.
Now a task could exit or enter group after the migration and before
the enqueue i.e. transfer_busy_time could be called when
enqueue_after_migration is set. This could lead to -ve load bugs as
we have only subtracted the load and not added it.
To address this, complete the addition step in
transfer_busy_time() itself, prior to moving the busy time,
if a task is found to be migrating.
Change-Id: Ifa7a2b017763392431dfa5407ec9dbde76d90019
Signed-off-by: Abhijeet Dharmapurikar <quic_adharmap@quicinc.com>
Enable kernel panic upon timeout expiry of PDR notification and set
timeout to 9 seconds.
Change-Id: Ifb7a8e35265194b4c37215db471619c402da5a2a
Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com>
This is a debug feature where a kernel panic is triggered when
pdr notification to the APPS client is taking too long. This scenario
can happen if the one of notifier gets stuck and due to which subsystem
did not get ack back from APPS in time and trigger timeout panic.
So, trigger a kernel panic in APPS if PDR notifications is taking
too long.
Change-Id: Ic58c421723a71ba87ba0306617eafc2ed39b6ee2
Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
[quic_gurus@quicinc.com: Dropped kalama_GKI.config change]
Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com>
This change adds logging after the indack is sent. This helps in debugging
the communication between APSS and Q6.
Change-Id: I0c4a89480e684dff4eb91e95fe4071f6b90824f9
Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
Signed-off-by: Gokul krishna Krishnakumar <quic_gokukris@quicinc.com>
This driver provides the support to program the hardware of
Trace Noc component when enable the source which is connected to
Trace Noc. Trace NoC is a interconnect that is used
to collect trace from various subsystems and transport it
QDSS trace sink.
Change-Id: I70ebda4142be066bc15d8809d7ffe3bdbee10fb9
Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com>
Enable the qti-fixed-regulator driver so that proxy consumer
voting and debug features may be used for fixed regulator
devices.
Change-Id: Ia7946a3d82f12b22463e5446a9540e27970c7679
Signed-off-by: David Collins <quic_collinsd@quicinc.com>
clear thermal pressure when thermal polling is stopped as throttle
frequency is greater than what scheduler or cpu are set to.
This change prevents throttle loop exiting with stale, non-zero
thermal pressure resulted from race condition of requested frequency
change after throttle_freq condition check in throttle loop.
Change-Id: If9c40e20350c5d33b3ad7a58cfe213eeb5dda74b
Signed-off-by: Vivek Aknurwar <quic_viveka@quicinc.com>
Enable CONFIG_QTI_PMIC_GLINK_CLIENT_DEBUG in pineapple-consolidate
defconfig so that debug features can be enabled in altmode-glink,
qti_battery_debug and qti_battery_charger drivers.
Change-Id: I2d0ef18d061237a256c008aa971096879141a5fa
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Enable PMIC Glink driver and its clients for pineapple to support
battery charging, Type-C, altmode and the drivers that help with
debugging them.
Change-Id: Ib386a198d9de3e441e2fce650beca44a5bdfd6e3
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Add minidump support for VMs. RM call is used to manage regions of VMs.
Change-Id: I85a21223e13f2a8477919858aebaca8b11b5faeb
Signed-off-by: Cong Zhang <quic_congzhan@quicinc.com>
Add inline function to fix compile issue when smem is called but not
enabled.
Change-Id: If31fc795fb5f42a1f221780d3d98e362766cca59
Signed-off-by: Cong Zhang <quic_congzhan@quicinc.com>