Tasks that are placed on gold+ cluster while they are partially halted
are currently ineligible to take advantage of prev cpu fastpath, since
they will always begin evaluations on the silver cluster, causing
unnecessary migrations.
Change-Id: I7dec6d47c2a1a23b4f044e5ae2c2855c6d7c181e
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
To aid in debugging issues related to pipeline tasks, print the pipeline
cpu associated with each task during task placement.
Change-Id: I7c5eaf29d43cfcb633f26480eca0fcb4e08971dd
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Currently the only way to know for certain if system is in frequency
sync state is to look at the number of cpus in the partial halt mask
under the halt_cpus tracepoint.
Add a sync_state member in sched_task_util tracepoint to make it easier
to identify state when debugging.
Change-Id: I5fecd5f66a4064e344e8f767154fce4937996cf9
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
When an intercluster migration occurs between a gold and a sibling gold+
cpu, fixups do not take place, as the migration is treated like a
migration between the same cluster. This was an unintended
consequence of asymcap_siblings_cpu feature.
Fix this by insuring gold/gold+ migrations are treated as intercluster
migrations rather than intracluster migrations.
Change-Id: I802a249e5adfceb2235c35ff5f146a9da45c7bf6
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
asym_cap_sibling_cpus was introduced when support was needed to
treat all big cpus from different clusters as sibling cpus under an
architecture where both the clusters hosting big cpus only contained a
single cpu.
Note that this is orthogonal to the notion of ASYMCAP_BOOST(), which
does not require asym_cap_sibling_cpus to be defined.
There are remnants of this deprecated code still present - this patch
cleans that up. However, asym_cap_sibling_cpus will still be used to
guide frequency sync between gold and gold+ clusters.
Change-Id: I7da7fcf5d088694dc4b31784bfb17c06fed89f2b
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Ensure a partially halted CPU is not identified as an asym cap boost
CPU.
This will ensure that a gold CPU doesn't pull a task from a partially
halted CPU, as the task should take the longer path of being considered an
upmigration under state1.
Change-Id: Ib98e0f82da454db81b6c59f072cfe6916c7eacdd
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
In the event of busy system, as defined by criteria for big task
rotation, introduce tunable to allow users to cap frequencies of each
cluster, for simpler thermal mitigation.
To enable these limits, a user can simply do:
echo a b c d > sched_thermal_cluster_freq_cap,
where a,b,c,d represent the frequency cap desired for each respective
cluster.
Change-Id: I912a6db4bcb3f7ac3670cc647df5d96761c7fd82
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Under loaded conditions, CPUs' fmax is not restricted. Add a
hysteresis of a defined time limit to ensure that fmax gets capped
beyond that time limit, ie. after a particular point in time, fmax goes
back to being capped.
Change-Id: I75c521d942da6e93002fa30ac078baf352bfebae
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Restrict clusters' fmax to the frequencies set by user.
If system is loaded beyond a particular condition, which is seven
big/misfit tasks present in the system, or if the system is under full
throttle boost, do not restrict CPUs' ability to vote for policy fmax
frequency.
Use tunable /proc/sys/walt/sched_fmax_cap to set the fmax limit of each
cluster, for eg.,
echo a b c d > /proc/sys/walt/sched_fmax_cap,
where a, b, c, and d are frequency values representing each cluster in a
4-cluster system.
Change-Id: I6bd4655bec66e3cba2c10da71424fc15ec20ef58
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
If all the CPUs in a cluster are partially halted, restrict the max freq
of that cluster to a user-defined tunable.
To use this tunable, simply do:
echo [x] > /proc/sys/walt/sched_max_freq_partial_halt
where x is the desired frequency.
Change-Id: I036f811dc006338d2fc0bdd0567aa70a0c3f3ae2
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
When min_partial_cpus are reset to 0, part_haltable_cpus mask
was not reflecting that, since there was no feature to clear
the mask. Update the code to ensure that when min_partial_cpus
is set to 0, the cpus for that cluster are set to 0.
If multiple clusters partially halted a cpu, that information
is lost/overwritten. The last cluster for which a min_part_cpus
was set overwrote all of the existing part_haltable_cpus.
Address by adding all cpus for this particular cluster if
thay can be halted.
Change-Id: Idab7f12435a9ac8aefed340f4b2b4d7950c32569
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
To allow client handlers to register quality of service requests
to limit the maximum frequency across a specified group of CPUs in the
system, two functions are introduced.
init_max_freq_qos_request can be used to initialize a client QoS handler.
add_max_freq_qos_request can be called to vote to limit the maximum
frequency for a specified group of CPUs for a client handler.
Note that the lowest vote for the maximum frequency for a given CPU will
win.
Change-Id: I0a7ba7d56cb6cc9328b027a4938c6550d7c0148c
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
In the case where the system has a single big task (sbt) executing
the highest frequencies for gold+ cannot be achieved if there
are tasks running on the shared-rail cpus. These cpus need to
go into low power mode for gold+ to achieve single-core-boost,
and this is less likely if the cpus are only partially halted.
The sbt case requires that designated cpus in clusters are fully
halted when sbt is entered and fully unhalted when sbt exits.
This is a distinct client with halt, because the actions are
being taken independently of core control's normal operation.
In other words, core control's decision making process will
have no bearing on whether cpus are being fully halted or
unhalted by sbt, though some sched_avg data will be used,
including the number of big tasks in the system.
Create the sbt check within the core control framework utilizing
existing capabilities like averge task calculations. Enter and
exit sbt mode based upon the number of big tasks in the system
and whether those big tasks are on the prime cpu.
Change-Id: Ibe0bfc72b02cca819551dd9828d2bc4d7f23c70e
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
Consider the case of a cluster which hosts CPUS capable of being
partially halted.
Currently, it is possible for one CPU to be partially halted, while the
other is fully unhalted. In such a situation, the unisolated cpu is
subject to freq restrictions similar to partially halted cpu
Change that to now ensure normal frequency behavior for the entire
cluster, as soon as one cpu in the cluster is unisolated.
Change-Id: I3d523d47c9be6659c2248613879fbef98d8edfd9
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
To better classify frequency decisions, create a mask called
part_haltable_cpus which indicates all possible CPUs that are eligible
to be partially halted.
Change-Id: I6870b9ce6d330d997efb5b7704af63a18a7955db
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
A task's affinity should not be dependent on halt, because
a halted cpu will be available to be run on, sometimes. Various
benchmarks and test cases will use getaffinity to determine
what is available to the task to start with. If halted cpus are
not returned as valid cpus, benchmark test cases will adjust
behavior (reduce number of tasks running in parallel or change
which cpus we run on).
Remove the android_rvh_sched_getaffinity tracehook as it
was only restricting the affinity returned, and not affecting
the true affinity of the task.
Removing the restriction on affinity returned to the user space
introduces a problem, since the user space task may now chose
to affine only to halted cpus. Following the offline/online model,
halted cpus are rejected in is_cpu_allowed and
set_cpus_allowed_by_task, through tracehooks. If only offline or
halted cpus are allowed by the task, select_fallback_rq will
change the allowed cpus permanently to other cpus, to ensure
the task can run. This will cause critical test cases to fail
since the task does not run on the intended cpu.
Modify the is_cpu_allowed and set_cpus_allowed_by_task tracehooks
to prevent a situation where the affinity is lost, addressing
issues with the removal of android_rvh_sched_getaffinity.
Change-Id: Ied0ae40e870c3e2ccb1bedfdf84d9b58fa03a7e0
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
Tasks affined to a single cpu will be allowed to run on that
cpu regardless of the halt state of the cpu. This creates
an issue for thermally mitigated cpus that are also halted
by cooling devices.
Limit cpus to fmin that are halted by a thermal client only.
Since tasks can run on a halted cpu under some circumstances,
for example, if they've been affined to only one cpu, the
performance of a task affined to a single cpu should not
be reduced simply because the cpu is currently halted.
Therefore, only thermally induced halt shall cause the
frequency limit.
When a cpu is halted by a thermal client, changing the cpu's
frequency at the next update is critical to actually mitigate the
cpu's temperature. When the cpu is unhalted for thermal
reasons, the frequency requested by the cpu should be
restored just as quickly.
Thermal cooling devices can mitigate groups of cpus or
individual cpus, per the logic of the thermal drivers.
Since this cpu's frequency is tied to that of the other
cpus in the system, the frequency shall be limited for
every cpu in the cluster.
Change-Id: Idf19c6e41f05dd62f45262989fcf137b756f915a
Signed-off-by: Abhijeet Dharmapurikar <quic_adharmap@quicinc.com>
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
The implementation of cluster_paused_cpus is unoptimal
and dependent upon the fact that cpus_paused_by_us and
cpus_part_paused_by_us will not intersect.
Improve the implementation to simplify the code and eliminate
this assumption.
Change-Id: Id4d1b4274d57f196ca279d3016236f4d64b4ebb6
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
* refs/heads/tmp-a0290fa:
ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus for extend copy & fbarrier feature
ANDROID: abi_gki_aarch64_qcom: Update symbol list
ANDROID: mmc: core: Export core functions for kernel modules usage
ANDROID: vendor_hooks: Define new hooks in _mmc_suspend/resume
ANDROID: update symbol for unisoc vendor_hooks
ANDROID: vendor_hooks: psci: add hook to check if cpu is allowed to power off
ANDROID: Add vendor hook to the effective_cpu_util
ANDROID: Update symbol list for mtk
ANDROID: ABI: update symbol list for galaxy
ANDROID: update symbol for unisoc vendor_hooks
ANDROID: thermal: Add vendor hook to check power range
ANDROID: thermal: Add vendor hook to get thermal zone device
ANDROID: thermal: Add hook for cpufreq thermal
ANDROID: virt: gunyah: Delta between v13 and v14
Revert "ANDROID: gki_config: use DWARFv5 rather than DWARFv4"
ANDROID: gunyah: Sync with latest "mailbox: Add Gunyah message queue mailbox"
FROMLIST: scsi: ufs: core: Fix mcq tag calcualtion
UPSTREAM: ufs: mcq: qcom: Fix passing zero to PTR_ERR
UPSTREAM: ufs: mcq: qcom: Clean the return path of ufs_qcom_mcq_config_resource
UPSTREAM: scsi: ufs: core: Print trs for pending requests in MCQ mode
UPSTREAM: scsi: ufs: core: Add trace event for MCQ
UPSTREAM: mm,kfence: decouple kfence from page granularity mapping judgement
UPSTREAM: mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
UPSTREAM: mm: page_alloc: skip regions with hugetlbfs pages when allocating 1G pages
UPSTREAM: usb: gadget: f_fs: Add unbind event before functionfs_unbind
UPSTREAM: mm: kmsan: handle alloc failures in kmsan_vmap_pages_range_noflush()
ANDROID: defconfig: Enable debug configs in consolidate-fragment
ANDROID: ABI: Update oplus symbol list
Revert "FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullup"
ANDROID: GKI: Update symbols to symbol list
ANDROID: vendor_hooks: Add hooks for binder proc transaction
UPSTREAM: mm: kmsan: handle alloc failures in kmsan_ioremap_page_range()
UPSTREAM: mm/huge_memory.c: warn with pr_warn_ratelimited instead of VM_WARN_ON_ONCE_FOLIO
UPSTREAM: mm/userfaultfd: fix uffd-wp handling for THP migration entries
UPSTREAM: mm/khugepaged: check again on anon uffd-wp during isolation
UPSTREAM: fuse: always revalidate rename target dentry
ANDROID: GKI: update xiaomi symbol list
BACKPORT: FROMGIT: Multi-gen LRU: fix workingset accounting
BACKPORT: FROMGIT: PCI: dwc: Wait for link up only if link is started
ANDROID: ABI: update symbol list for exynos
ANDROID: ufs: Improve MCQ err handling
ANDROID: ABI: Update oplus symbol list
ANDROID: GKI: sched: add rvh for new cfs task util
ANDROID: Disable BTI_KERNEL, enable UNWIND_PATCH_PAC_INTO_SCS
BACKPORT: arm64: implement dynamic shadow call stack for Clang
UPSTREAM: scs: add support for dynamic shadow call stacks
BACKPORT: arm64: unwind: add asynchronous unwind tables to kernel and modules
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hook in shrink_node_memcgs
ANDROID: ashmem: Export is_ashmem_file
ANDROID: ABI: update symbol list related to show_mem for Exynos
ANDROID: vendor_hooks: Add hooks for memory when debug
ANDROID: GKI: Update symbol list for honor
ANDROID: mutex: Add vendor hook to init mutex oem data.
ANDROID: bazel: Adding make_goals to consolidate build
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hook: add hooks in dm_bufio.c
ANDROID: abi_gki_aarch64_qcom: update QCOM symbol list
ANDROID: ABI: Update honor symbol list
ANDROID: mm: create vendor hooks for do_shrink_slab()
ANDROID: mm: create vendor hooks for shrink_slab()
BACKPORT: usb: dwc3: fix gadget mode suspend interrupt handler issue
ANDROID: GKI: update symbol list file for xiaomi
ANDROID: 5/24/2023 KMI update
ANDROID: virt: gunyah: Add KABI reservations
ANDROID: virt: gunyah: Sync with KMI impacting changes from v13
ANDROID: virt: gunyah: Force struct gh_rm as opaque
Revert "ANDROID: gki_config: use DWARFv5 rather than DWARFv4"
ANDROID: ABI: Update symbol list for Exynos SoC
ANDROID: power: Add ANDROID_OEM_DATA in freq_qos_request.
ANDROID: GKI: net: add vendor hooks for 'struct sock' lifecycle
ANDROID: GKI: net: add vendor hooks for 'struct nf_conn' lifecycle
ANDROID: GKI: add vendor padding variable in struct sock
ANDROID: GKI: add vendor padding variable in struct nf_conn
ANDROID: GKI: add vendor padding variable in struct skb_shared_info
UPSTREAM: ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum
UPSTREAM: cpuidle: teo: Introduce util-awareness
UPSTREAM: cpuidle: teo: Optionally skip polling states in teo_find_shallower_state()
ANDROID: ABI: Update oplus symbol list
ANDROID: thermal: Add vendor hooks for thermal
ANDROID: GKI: Update symbol list for honor
ANDROID: mm: create vendor hooks for page alloc
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power
ANDROID: ABI: Update symbol list for Exynos SoC
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for account irqtime process tick
ANDROID: vendor_hooks: Add hooks to dup_task_struct
ANDROID: vendor_hooks: Add hooks to record the time of the process in various states
ANDROID: vendor_hooks: Add hooks for signal
ANDROID: power: wakeup_reason: change abort log
ANDROID: virt: gunyah: Delta between v13 and v14
ANDROID: GKI: Update symbol list for xiaomi
ANDROID: psi: Add vendor hooks for PSI tracing
UPSTREAM: ext4: fix invalid free tracking in ext4_xattr_move_to_block()
FROMGIT: scsi: ufs: core: mcq: Fix &hwq->cq_lock deadlock issue
ANDROID: ABI: Update oplus symbol list
ANDROID: android: Export symbols for invoking cpufreq_update_util()
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Export the tracepoints task_rename
ANDROID: Add macros to create reserved data fields to backport upstream changes
ANDROID: retry page allocation from buddy on lock contention
UPSTREAM: KVM: arm64: Fix buffer overflow in kvm_arm_set_fw_reg()
ANDROID: arm64: Check FGT cap before touching HFGWTR_EL2
Revert "ANDROID: Partially Revert "ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules""
FROMGIT: f2fs: fix the wrong condition to determine atomic context
ANDROID: GKI: update symbol list file for honor
ANDROID: ABI: Update symbol list for imx
ANDROID: mm: shmem: initialize the vendor data
ANDROID: GKI: refresh STG ABI to new version
ANDROID: GKI: Add symbols to symbol list for vivo
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for account process tick
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: add hook account_process_tick_gran
ANDROID: vendor_hooks: Add hook in try_to_unmap_one()
ANDROID: vendor_hooks: Add hook in mmap_region()
ANDROID: Partially Revert "ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules"
ANDROID: GKI: update the ABI symbol list
ANDROID: freezer: Add vendor hook to freezer for GKI purpose.
ANDROID: freezer: export the freezer_cgrp_subsys for GKI purpose.
ANDROID: GKI: update the ABI symbol list
ANDROID: Add vendor hooks for binder perf tuning
ANDROID: Add vendor hooks to signal.
ANDROID: Update the ABI symbol list
ANDROID: page_pinner: add missing page_pinner_put_page
ANDROID: page_pinner: prevent pp_buffer uninitialized access
ANDROID: page_pinner: prevent pp_buffer access before initialization
ANDROID: mm: fix use-after free of page_ext in page_pinner
ANDROID: mm: introduce page_pinner
ANDROID: abi_gki_aarch64_qcom: Add gh_rm_register_platform_ops
ANDROID: gunyah: Sync remaining gunyah drivers with latest
ANDROID: gunyah: Sync with latest "mailbox: Add Gunyah message queue mailbox"
ANDROID: gunyah: Sync with latest "gunyah: Common types and error codes for Gunyah hypercalls"
ANDROID: gunyah: Sync with latest hypercalls
ANDROID: gunyah: Sync with latest documentation and UAPI
ANDROID: gunyah: Sync with latest "firmware: qcom_scm: Register Gunyah platform ops"
BACKPORT: firmware: qcom_scm: Use fixed width src vm bitmap
BACKPORT: misc: fastrpc: Pass bitfield into qcom_scm_assign_mem
ANDROID: gunyah: Sync with latest "virt: gunyah: Add ioeventfd"
ANDROID: gunyah: Sync with latest "gunyah: vm_mgr: Add ioctls to support basic non-proxy VM boot"
ANDROID: gunyah: Sync with latest "gunyah: vm_mgr: Add/remove user memory regions"
ANDROID: gunyah: Sync with latest "virt: gunyah: Add resource tickets"
ANDROID: gunyah: Sync with latest "gunyah: vm_mgr: Add framework for VM Functions"
ANDROID: gunyah: Sync with latest "gunyah: rsc_mgr: Add resource manager RPC core"
ANDROID: gunyah: Sync with latest "virt: gunyah: Translate gh_rm_hyp_resource into gunyah_resource"
ANDROID: gunyah: Sync with latest "virt: gunyah: Add hypercalls to identify Gunyah"
BACKPORT: overflow: Introduce overflows_type() and castable_to_type()
UPSTREAM: drm/amd/display: set dcn315 lb bpp to 48
UPSTREAM: drm/amdgpu: Fix desktop freezed after gpu-reset
UPSTREAM: drm/i915: Fix fast wake AUX sync len
UPSTREAM: ASN.1: Fix check for strdup() success
UPSTREAM: ASoC: fsl_sai: Fix pins setting for i.MX8QM platform
UPSTREAM: ASoC: fsl_asrc_dma: fix potential null-ptr-deref
UPSTREAM: ASoC: SOF: pm: Tear down pipelines only if DSP was active
UPSTREAM: fpga: bridge: properly initialize bridge device before populating children
UPSTREAM: iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger()
UPSTREAM: Input: pegasus-notetaker - check pipe type when probing
UPSTREAM: gcc: disable '-Warray-bounds' for gcc-13 too
UPSTREAM: sctp: Call inet6_destroy_sock() via sk->sk_destruct().
UPSTREAM: dccp: Call inet6_destroy_sock() via sk->sk_destruct().
UPSTREAM: netfilter: nf_tables: deactivate anonymous set from preparation phase
ANDROID: GKI: add symbol list file for unisoc
UPSTREAM: inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
UPSTREAM: purgatory: fix disabling debug info
UPSTREAM: MIPS: Define RUNTIME_DISCARD_EXIT in LD script
UPSTREAM: usb: dwc3: debugfs: Resume dwc3 before accessing registers
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Export the tracepoints sched_stat_sleep and sched_waking to let module probe them
ANDROID: vendor_hooks: Export the tracepoints sched_stat_iowait, sched_stat_blocked, sched_stat_wait to let modules probe them
ANDROID: vendor_hooks: export get_wchan
ANDROID: workqueue: export symbol of the function wq_worker_comm()
BACKPORT: mm/kmemleak: fix UAF bug in kmemleak_scan()
ANDROID: clang: update to 17.0.2
ANDROID: abi_gki_aarch64_qcom: update symbol list
UPSTREAM: media: add nv12_8l128 and nv12_10be_8l128 video format.
ANDROID: ABI: update symbol list for galaxy
ANDROID: db845c: Remove MAKE_GOALS from build.config
ANDROID: GKI: gen_gki_modules_headers update preprocessing
FROMGIT: locking/rwsem: Add __always_inline annotation to __down_read_common() and inlined callers
FROMGIT: xfrm: Check if_id in inbound policy/secpath match
ANDROID: always add the struct wireless_dev * to struct net_device
ANDROID: ABI: Update symbol list for imx
ANDROID: KVM: arm64: Always unmap protected regions from the host
FROMLIST: usb: typec: altmodes/displayport: fix pin_assignment_show
ANDROID: block: Improve shared tag set performance
ANDROID: Update ABI representation broken by update race
ANDROID: GKI: update the ABI symbol list
ANDROID: cgroup: Add vendor hook for cpuset.
ANDROID: export cpuset_cpus_allowed()for GKI purpose.
ANDROID: sched: Add vendor hooks for cpu affinity.
ANDROID: GKI: Update owners for GKI modules lists
ANDROID: abi_gki_aarch64_qcom: Add USB SND power domain symbol
FROMGIT: usb: xhci: Remove unused udev from xhci_log_ctx trace event
ANDROID: 5/10/2023 KMI update
ANDROID: KVM: arm64: Allow tweaking HFGWTR_EL2 from modules
ANDROID: KVM: arm64: Allow tweaking HCR_EL2 from modules
ANDROID: GKI: Trimmed symbol lists for 80211 modules
ANDROID: GKI: DB845C: cfg/mac 80211 as vendor modules
ANDROID: GKI: cfg/mac 80211 as vendor modules
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for futex
ANDROID: vendor_hooks: Add hooks for oem futex optimization
FROMGIT: wifi: nl80211: Add support for randomizing TA of auth and deauth frames
ANDROID: GKI: update the ABI symbol list
ANDROID: sched: Add ANDROID_OEM_DATA_ARRAY in user_struct.
ANDROID: power: Add vendor hook to qos for GKI purpose.
ANDROID: GKI: update the ABI symbol list
ANDROID: export find_user() & free_uid()for GKI purpose.
ANDROID: user: Add vendor hook to user for GKI purpose
ANDROID: sched: add trace_android_vh_map_util_freq parameter
FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullup
FROMGIT: usb: gadget: udc: core: Invoke usb_gadget_connect only when started
Revert "Revert "KVM: arm64: PMU: Don't save PMCR_EL0.{C,P} for the vCPU""
Revert "Revert "KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run""
Revert "Revert "KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow""
Revert "Revert "KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode""
Revert "Revert "pwm: meson: Explicitly set .polarity in .get_state()""
Revert "Revert "pwm: sprd: Explicitly set .polarity in .get_state()""
Revert "Revert "pwm: iqs620a: Explicitly set .polarity in .get_state()""
Revert "Revert "pwm: cros-ec: Explicitly set .polarity in .get_state()""
Revert "Revert "pwm: hibvt: Explicitly set .polarity in .get_state()""
Revert "Revert "pwm: Make .get_state() callback return an error code""
Revert "Revert "raw: Fix NULL deref in raw_get_next().""
Revert "Revert "raw: use net_hash_mix() in hash function""
FROMLIST: scsi: ufs: core: Fix mcq nr_hw_queues
FROMLIST: scsi: ufs: core: Rename symbol sizeof_utp_transfer_cmd_desc()
FROMLIST: scsi: ufs: core: Fix mcq tag calcualtion
ANDROID: GKI: Remove MAKE_GOALS from build.config
ANDROID: GKI: Add symbols to symbol list for vivo
ANDROID: KVM: arm64: Restrict pKVM hyp exports
ANDROID: kleaf: move NDK_TRIPLE for arm to build.config.constants.
FROMLIST: clocksource/drivers/timer-mediatek: Make timer-mediatek become loadable module
FROMLIST: clocksource/drivers/timer-of: Remove __init markings
FROMLIST: clocksource/drivers/mmio: Export clocksource_mmio_init()
FROMLIST: time/sched_clock: Export sched_clock_register()
ANDROID: ABI: Update symbol list for Exynos SoC
Revert "Revert "ANDROID: cpufreq: Add a restricted vendor hook for freq transition""
ANDROID: usb: gadget: configfs: Protect composite_setup in a spinlock
Revert "ANDROID: uid_sys_stat: split the global lock uid_lock to the fine-grained"
ANDROID: GKI: update symbol list file for xiaomi
ANDROID: GKI: x86_64: Remove 80211 from protected modules
ANDROID: GKI: Update owners for GKI modules lists
FROMLIST: binder: fix UAF caused by faulty buffer cleanup
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks to select binder worklist
ANDROID: vendor_hooks: Add hooks for binder
ANDROID: vendor_hooks: Add hooks for rwsem and mutex
ANDROID: vendor_hooks: Add hooks for binder proc transaction
ANDROID: vendor_hooks: Add hook for binder
ANDROID: vendor_hooks: Add hooks for mutex and rwsem optimistic spin
ANDROID: vendor_hooks: Add hooks for rwsem and mutex
ANDROID: ABI: Update cpu-profiler symbol list for Exynos SoC
ANDROID: ABI: Update WLBT, Sensor symbol list for Exynos SoC
ANDROID: ABI: Update GPU symbol for Exynos SoC
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hook: add hooks to protect locking-tsk in cpu scheduler
ufs: Update struct ufs_hba
ANDROID: ABI: Update DRM symbol for Exynos SoC
fscrypt: destroy keyring after security_sb_delete()
ANDROID: GKI: Increase max 8250 uarts
ANDROID: ABI: Update Audio symbol for Exynos SoC
UPSTREAM: ufs: mcq: qcom: Fix passing zero to PTR_ERR
UPSTREAM: ufs: mcq: qcom: Clean the return path of ufs_qcom_mcq_config_resource
ANDROID: Update symbol list for Exynos SoC
fscrypt: optimize fscrypt_initialize()
fscrypt: use WARN_ON_ONCE instead of WARN_ON
fscrypt: new helper function - fscrypt_prepare_lookup_partial()
fscrypt: check for NULL keyring in fscrypt_put_master_key_activeref()
fscrypt: improve fscrypt_destroy_keyring() documentation
drm/rockchip: vop2: Use regcache_sync() to fix suspend/resume
drm/rockchip: vop2: fix suspend/resume
drm/amd/display: set dcn315 lb bpp to 48
drm/amdgpu: Fix desktop freezed after gpu-reset
drm/i915: Fix fast wake AUX sync len
mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25
memstick: fix memory leak if card device is never registered
writeback, cgroup: fix null-ptr-deref write in bdi_split_work_to_wbs
tools/mm/page_owner_sort.c: fix TGID output when cull=tg is used
kernel/sys.c: fix and improve control flow in __sys_setres[ug]id()
nilfs2: initialize unused bytes in segment summary blocks
maple_tree: fix a potential memory leak, OOB access, or other unpredictable bug
maple_tree: fix mas_empty_area() search
LoongArch: Mark 3 symbol exports as non-GPL
rust: kernel: Mark rust_fmt_argument as extern "C"
maple_tree: make maple state reusable after mas_empty_area_rev()
LoongArch: Fix probing of the CRC32 feature
btrfs: get the next extent map during fiemap/lseek more efficiently
ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook
iio: light: tsl2772: fix reading proximity-diodes from device tree
iio: dac: ad5755: Add missing fwnode_handle_put()
drm/amdgpu/vcn: Disable indirect SRAM on Vangogh broken BIOSes
Revert "userfaultfd: don't fail on unrecognized features"
mtd: spi-nor: fix memory leak when using debugfs_lookup()
platform/x86: asus-nb-wmi: Add quirk_asus_tablet_mode to other ROG Flow X13 models
platform/x86: gigabyte-wmi: add support for X570S AORUS ELITE
xen/netback: use same error messages for same errors
nvme-tcp: fix a possible UAF when failing to allocate an io queue
drm: test: Fix 32-bit issue in drm_buddy_test
drm: buddy_allocator: Fix buddy allocator init on 32-bit systems
s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling
platform/x86: gigabyte-wmi: add support for B650 AORUS ELITE AX
net: dsa: b53: mmap: add phy ops
scsi: core: Improve scsi_vpd_inquiry() checks
scsi: megaraid_sas: Fix fw_crash_buffer_show()
selftests: sigaltstack: fix -Wuninitialized
platform/x86 (gigabyte-wmi): Add support for A320M-S2H V2
platform/x86/intel: vsec: Fix a memory leak in intel_vsec_add_aux
f2fs: Fix f2fs_truncate_partial_nodes ftrace event
net: bridge: switchdev: don't notify FDB entries with "master dynamic"
e1000e: Disable TSO on i219-LM card to increase speed
bpf: Fix incorrect verifier pruning due to missing register precision taints
spi: spi-rockchip: Fix missing unwind goto in rockchip_sfc_probe()
mlxsw: pci: Fix possible crash during initialization
net: rpl: fix rpl header size calculation
bonding: Fix memory leak when changing bond type to Ethernet
mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next()
bnxt_en: Do not initialize PTP on older P3/P4 chips
netfilter: nf_tables: tighten netlink attribute requirements for catch-all elements
netfilter: nf_tables: validate catch-all set elements
i40e: fix i40e_setup_misc_vector() error handling
i40e: fix accessing vsi->active_filters without holding lock
netfilter: nf_tables: fix ifdef to also consider nf_tables=m
sfc: Fix use-after-free due to selftest_work
virtio_net: bugfix overflow inside xdp_linearize_page()
net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg
regulator: fan53555: Fix wrong TCS_SLEW_MASK
regulator: fan53555: Explicitly include bits header
rust: str: fix requierments->requirements typo
netfilter: nf_tables: Modify nla_memdup's flag to GFP_KERNEL_ACCOUNT
netfilter: br_netfilter: fix recent physdev match breakage
arm64: dts: imx8mp-verdin: correct off-on-delay
arm64: dts: imx8mm-verdin: correct off-on-delay
arm64: dts: imx8mm-evk: correct pmic clock source
arm64: dts: qcom: sc8280xp-pmics: fix pon compatible and registers
arm64: dts: meson-g12-common: specify full DMC range
arm64: dts: qcom: ipq8074-hk10: enable QMP device, not the PHY node
arm64: dts: qcom: hk10: use "okay" instead of "ok"
arm64: dts: qcom: ipq8074-hk01: enable QMP device, not the PHY node
arm64: dts: rockchip: Lower sd speed on rk3566-soquartz
ARM: dts: rockchip: fix a typo error for rk3288 spdif node
Conflicts:
android/abi_gki_aarch64.stg
android/gki_system_dlkm_modules
Change-Id: I753eb5791de01079ea02b215e38a149fe0626f76
Upstream-Build: ks_qcom-android14-6.1-keystone-qcom-release@10256832 UKQ2.230604.001
Signed-off-by: jianzhou <quic_jianzhou@quicinc.com>
Current code includes all partially halted cpus in both the
partial-paused-by-us and fully-paused-by-us cpu masks. This
overlap becomes problematic when core control can both fully
and partially halt the same cpu.
In preparation of the single-core-boost support, split the
meaninng such that the fully halted and partially halted
states can be held by core control simultaneously.
Change-Id: I09a4a01b76f32cba9cad0d7967fde1789b4ad63e
Signed-off-by: Stephen Dickey <quic_dickey@quicinc.com>
* keystone/mirror-android14-6.1: (21 commits)
ANDROID: Add vendor hook to the effective_cpu_util
ANDROID: Update symbol list for mtk
ANDROID: ABI: update symbol list for galaxy
ANDROID: update symbol for unisoc vendor_hooks
ANDROID: thermal: Add vendor hook to check power range
ANDROID: thermal: Add vendor hook to get thermal zone device
ANDROID: thermal: Add hook for cpufreq thermal
UPSTREAM: mm,kfence: decouple kfence from page granularity mapping judgement
UPSTREAM: mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock
UPSTREAM: mm: page_alloc: skip regions with hugetlbfs pages when allocating 1G pages
UPSTREAM: usb: gadget: f_fs: Add unbind event before functionfs_unbind
UPSTREAM: mm: kmsan: handle alloc failures in kmsan_vmap_pages_range_noflush()
ANDROID: ABI: Update oplus symbol list
Revert "FROMGIT: usb: gadget: udc: core: Prevent redundant calls to pullup"
ANDROID: GKI: Update symbols to symbol list
ANDROID: vendor_hooks: Add hooks for binder proc transaction
UPSTREAM: mm: kmsan: handle alloc failures in kmsan_ioremap_page_range()
UPSTREAM: mm/huge_memory.c: warn with pr_warn_ratelimited instead of VM_WARN_ON_ONCE_FOLIO
UPSTREAM: mm/userfaultfd: fix uffd-wp handling for THP migration entries
UPSTREAM: mm/khugepaged: check again on anon uffd-wp during isolation
...
Change-Id: Ic294e740b17e6b1cda1767c3bfe29d15a3c9b8db
Signed-off-by: keystone-kernel-automerger <keystone-kernel-automerger@google.com>
android_rvh_effective_cpu_util:
To perform vendor-specific cpu util, it is used in EAS/schedutil/thermal.
The effective_cpu_util would be called when thermal calc the dynamic power,
it's non-atomic context, so set the hook be restricted.
Bug: 226686099
Test: build pass
Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com>
Change-Id: I6fd77f44ca4328f5ef37d96989aa2e08d65e29bb
* keystone/mirror-android14-6.1:
ANDROID: GKI: update xiaomi symbol list
BACKPORT: FROMGIT: Multi-gen LRU: fix workingset accounting
BACKPORT: FROMGIT: PCI: dwc: Wait for link up only if link is started
ANDROID: ABI: update symbol list for exynos
ANDROID: ufs: Improve MCQ err handling
ANDROID: ABI: Update oplus symbol list
ANDROID: GKI: sched: add rvh for new cfs task util
Change-Id: I9282031a1663da4db78e778f2657dc4eb400b116
Signed-off-by: keystone-kernel-automerger <keystone-kernel-automerger@google.com>
A vendor hook is added in post_init_entity_util_avg before
a new cfs task's util is attached to cfs_rq's util so that
vendors can gather and modify se's information to modify
scheduling behavior and DVFS as they want.
trace_android_rvh_new_task_stats is not a proper hook because
it is called after the task's util is attached to cfs_rq's util,
which means updating cfs_rq's sched_avg and DVFS request are done.
Bug: 184219858
Signed-off-by: Choonghoon Park <choong.park@samsung.com>
Change-Id: I2deaa93297f8464895978496c9838cdffaa35b7f
(cherry picked from commit 1eea1cbdd3)
* keystone/mirror-android14-6.1:
ANDROID: Disable BTI_KERNEL, enable UNWIND_PATCH_PAC_INTO_SCS
BACKPORT: arm64: implement dynamic shadow call stack for Clang
UPSTREAM: scs: add support for dynamic shadow call stacks
BACKPORT: arm64: unwind: add asynchronous unwind tables to kernel and modules
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hook in shrink_node_memcgs
ANDROID: ashmem: Export is_ashmem_file
ANDROID: ABI: update symbol list related to show_mem for Exynos
ANDROID: vendor_hooks: Add hooks for memory when debug
ANDROID: GKI: Update symbol list for honor
ANDROID: mutex: Add vendor hook to init mutex oem data.
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hook: add hooks in dm_bufio.c
Change-Id: Iabd85e02421856407ef797b2408adce83fc447af
Signed-off-by: keystone-kernel-automerger <keystone-kernel-automerger@google.com>
In order to allow arches to use code patching to conditionally emit the
shadow stack pushes and pops, rather than always taking the performance
hit even on CPUs that implement alternatives such as stack pointer
authentication on arm64, add a Kconfig symbol that can be set by the
arch to omit the SCS codegen itself, without otherwise affecting how
support code for SCS and compiler options (for register reservation, for
instance) are emitted.
Also, add a static key and some plumbing to omit the allocation of
shadow call stack for dynamic SCS configurations if SCS is disabled at
runtime.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Tested-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lore.kernel.org/r/20221027155908.1940624-3-ardb@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
(cherry picked from commit 9beccca0984022a844850e32f0d7dd80d4a225de)
Bug: 283954062
Change-Id: I71ed23533124b071bd6bf5ab91b2af3bbf03b42b
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Add vendors hooks for recording memory used
Vendor modules allocate and manages the memory itself.
These memories might not be included in kernel memory
statistics. Also, detailed references and vendor-specific
information are managed only inside modules. When
various problems such as memory leaks occurs, these
information should be showed in real-time.
Bug: 182443489
Bug: 234407991
Bug: 277799025
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: I62d8bb2b6650d8b187b433f97eb833ef0b784df1
Signed-off-by: Hyesoo Yu <hyesoo.yu@samsung.com>
Add hooks to init oem data of mutex.
Bug: 231527236
Signed-off-by: Dezhi Huang <huangdezhi@hihonor.com>
Change-Id: Id0aeac168e81bd3d88051657c32ba709c329dbdd
* keystone/mirror-android14-6.1: (37 commits)
ANDROID: GKI: Update symbol list for honor
ANDROID: mm: create vendor hooks for page alloc
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for cpufreq_acct_update_power
ANDROID: ABI: Update symbol list for Exynos SoC
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for account irqtime process tick
ANDROID: vendor_hooks: Add hooks to dup_task_struct
ANDROID: vendor_hooks: Add hooks to record the time of the process in various states
ANDROID: vendor_hooks: Add hooks for signal
ANDROID: power: wakeup_reason: change abort log
ANDROID: GKI: Update symbol list for xiaomi
ANDROID: psi: Add vendor hooks for PSI tracing
UPSTREAM: ext4: fix invalid free tracking in ext4_xattr_move_to_block()
FROMGIT: scsi: ufs: core: mcq: Fix &hwq->cq_lock deadlock issue
ANDROID: ABI: Update oplus symbol list
ANDROID: android: Export symbols for invoking cpufreq_update_util()
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Export the tracepoints task_rename
ANDROID: Add macros to create reserved data fields to backport upstream changes
...
Change-Id: I5fac4bd1a75e6a202e52b2cfbe1e5c45d1aafd17
Signed-off-by: keystone-kernel-automerger <keystone-kernel-automerger@google.com>
Add a hook in irqtime_account_process_tick, which helps to get
information about the high load task.
Bug: 187904818
Change-Id: I644f7d66b09d047ca6b0a0fbd2915a6387c8c007
Signed-off-by: Liangliang Li <liliangliang@vivo.com>
(cherry picked from commit fe580539f6cec43ddb0d6ecfd39aa2f4e45754ca)
(cherry picked from commit bf3b384e0876a3111d114392b405ed269dcb9c9e)
Add hook to dup_task_struct for vendor data fields initialisation.
Bug: 188004638
Change-Id: I4b58604ee822fb8d1e0cc37bec72e820e7318427
Signed-off-by: Liangliang Li <liliangliang@vivo.com>
(cherry picked from commit f66d96b14aab5051fdf6b5054d87362c17a7b365)
(cherry picked from commit bafafe0ec46160573bef46d3d0f5d6c65fadaa3b)
These hooks will do the following works:
a) record the time of the process in various states
b) Make corresponding optimization strategies in different hooks
Bug: 205938967
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Ia3c47bbf0aadd17337ce18fd910343b1b8c3ef93
(cherry picked from commit a61d61bab7c3d221d5d2250eacab2e4e9f59b252)
Signed-off-by: Carlos Llamas <cmllamas@google.com>
(cherry picked from commit b7a1174cc5dfc68cf769547b91958df407e55981)
(cherry picked from commit e1f430a48702844c01933a925c92b077ba14ec3f)
Add hook to boost thread when process killed.
Bug: 237749933
Signed-off-by: xieliujie <xieliujie@oppo.com>
Change-Id: I7cc6f248397021f3a8271433144a0e582ed27cfa
(cherry picked from commit 709679142d583b0b7338d931fdd43b27b1bbf9e0)
(cherry picked from commit 226f36edddc3ad523dbb901ca3d5683f5f4e1707)
When changing frequencies, update capacities across all CPUs in the
policy.
Change-Id: Ic9c1b5176bbd668d062a580230eec974f2e01872
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Add hooks to capture various per-zone memory stats when
a trigger threshold is hit.
Bug: 268290366
Change-Id: Ibe39263ddb05ffc3fa63b5225497a90c6480c8d7
Signed-off-by: Georgi Djakov <quic_c_gdjako@quicinc.com>
In order to update cpufreq, vendor modules invoke cpufreq_update_util(),
but when we build our modules, report error:
ERROR: modpost: "cpufreq_update_util_data" [xxx.ko] undefined!
Bug: 192218676
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Ib1da70229f04b08d8d812d065021dec0bf891e0e
(cherry picked from commit 8943a2e7a33e33fd89614ac83b33b30f8d8c6b96)
(cherry picked from commit d1bc61dd85e8d28f1df0e22e2d73aa9e99cb645e)
Export the tracepoint task_rename to identify specific new task,
to customize task's util for power and performance, or optimize
task schedule parameters.
Bug: 189985971
Change-Id: I3bb71eae316e3096d361e7b47012ba46ea4be509
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
(cherry picked from commit 016d3f7b6986d0ca0acef18c59a47cf6eaa4f562)
(cherry picked from commit cfc14a391adb4d44d8186694b4884815bd85be6c)
Add task information for pulled task in walt_newidle_balance to better
help debug.
Change-Id: Id8e8982cfb4af33a2c2e2e312f145a8382e2ab3c
Signed-off-by: Shaleen Agrawal <quic_shalagra@quicinc.com>
Add a hook in account_process_tick, which help us to get information
about the high load task and the cpu they running on.
Bug: 183260319
Change-Id: I54162ce3c65bd69e08d2d4747e4d4883efe4c442
Signed-off-by: Liujie Xie <xieliujie@oppo.com>