Linux kernel source tree
Go to file
Sai Harshini Nimmala 8ea8ed4c91 Merge scheduler changes from 5.15 into msm-pineapple
Merge remote-tracking branch 'quic/tmp-5204e04' into msm-pineapple

* quic/tmp-5204e04:
  sched: improve the scheduler
  sched: walt: handle support for single and two cluster system
  sched/walt: check for -1 for first_idle cpu
  sched/walt: Remove avg_cap check in packing CPU feature
  sched/walt: Add walt_disabled checks
  sched/walt: Fix excess detach_task in walt_lb_pull_tasks
  sched/walt: Check reserved CPU during walt_newidle_balance
  treewide: Fixup copyright attribution
  Revert "sched/walt: print all history samples"
  Revert "sched: Use bitshift over division"
  sched: walt: handle CTS failure for sched_set/getaffinity
  sched: walt: add nested spinlock api
  sched/walt: Ensure driving cpu is used for region3
  sched: walt: Drop double rq locks for migrations
  sched/walt: handle misaligned task window start
  sched/walt: reject queue_wakelist() is cpu is same as waker cpu
  sched/walt: Improve the scheduler
  sched/walt/halt: track halt reasons
  sched/walt: properly account irq entry/exit
  sched/walt: Prevent within cluster load balance of misfits
  sched/walt: Cleanup CPUFREQ flags and reasons
  sched/walt: Add thermal pressure to cpu_util TP
  sched/walt: Add global_ws to walt dump
  sched: walt: allow silver to help prime during newidle balance
  sched/walt cfs: rt: find a packing cpu
  sched/walt: add functionality for choosing a packing cpu
  sched/walt/avg: cache window based statistics
  sched/walt: Kick newidle balance after unhalting
  Revert "sched: walt: Remove finding historical runtimes in pred"
  sched/walt: window rollover missing fix
  sched/walt/halt: prevent selection of non-32 bit cpu
  sched/walt: Ensure one 32bit capable cpu is never halted
  sched/walt: print global ws in UTRA traces
  sched/walt: remove set_window_start
  sched/walt: prevent main walt_irq_work execution for no notif
  sched/walt: add wrq->latest_clock to the walt dump
  sched/walt: use rq->clock_task from scheduler tick hook
  sched/walt: Improve the scheduler
  sched/walt: use num_mvp_tasks for check if rq have mvp task
  sched/walt: don't requeue mvp task if only have one mvp task on rq
  sched/walt: add num_mvp_tasks for get the number of mvp task in walt rq
  sched/walt: get rcu lock before use task's cgroups
  sched/walt: check current task's mvp_list instead of mvp prio
  sched/walt: skip long running RT task detection for stopper tasks
  sched: Re-fix lock_cpus mask setting during IC migrations
  sched: Improve the Scheduler
  sched: Use bitshift over division
  sched/walt: remove duplicate definitions of rt_task_arrival_time
  sched/walt: check for incorrect cpu assignment
  sched/walt: fix deadlock due to recursive rq locking
  sched/walt: fix incorrect migrations for RT task
  sched/walt: streamline affinity mask
  sched: Revert "sched/walt: Account for changing task affinity"
  sched/walt: Fix lock_cpus mask setting during IC migrations
  sched/walt/halt: ra-arrange the code
  sched/walt: Add yield case to LRRT task detection
  sched/walt/core_control: disable need_all_cpus()
  sched/walt: Add parameter for CPUFREQ reasons
  sched: Align window start with tick boundary
  sched/walt: Account for changing task affinity
  sched/walt/rt: limit long running RT task detection to FIFO
  sched/walt: print all history samples
  sched/walt: stop accounting stopper threads as long running RT
  sched/walt: Improve comments
  sched/walt: Optimize update_task_ravg() calls
  sched/walt/core_ctl: do core control immediately
  sched/walt/halt: use kthread to launch cpu drain operations
  sched: walt: fix stale window_start for walt load
  sched: walt: properly account for migrating mvp task
  sched/walt: Fix in long running RT task detection
  sched/walt: Disable long running RT task detection
  sched/walt: Remove unused sysctl node
  sched/walt: cleanup copyright issues
  sched/walt: walt hooks skipped during rt throttling
  sched/walt: kick unhalted cpu for load-balancing
  sched/walt: Fix setting RTG Boost Freq
  sched: walt: add trace in update_cpu_capacity
  sched: Fix negative capacity issue under thermal conditions
  sched/walt/halt: prevent migration of migration_disabled tasks
  sched/walt: cleanup hooks for halt
  sched: walt: Use pred_demand_scaled for all predictive ops
  sched: walt: Introduce bucket bitmask
  sched: walt: Remove finding historical runtimes in pred
  sched: walt: Use rq_clock instead of sched_ktime_get
  sched/walt: avoid halted cpus in get_nohz_timer_target
  sched: walt: use the is_cpu_allowed tracehook to restrict cpus
  Revert "sched/walt_cfs: temporarily disable MVP feature"
  sched/walt_cfs: set_next_entity hierarchy
  sched/walt: do not perform unnecessary migrations
  sched/walt: Deprecate RT task throttling
  sched/walt: Handle long running RT tasks
  sched/walt: rename to sched_get_cpu_util_pct
  sched/walt: guarantee result from energy efficient cpu
  sched: walt: take runnable into account for placement descision
  sched/walt: Fix in walt_lb_tick
  sched/walt_cfs: temporarily disable MVP feature
  sched: walt: update the copyright
  sched/walt: catch any set_task_cpu to unaffined cpus
  sched/walt: allow checking of last halt time against threshold
  sched/walt: create conditions for walt-bug and console output
  sched/walt: Compare cluster IDs instead of capacities
  sched: walt: fix rounding off error
  sched/walt: update select_task_rq_rt to filter halted cpus
  sched/walt: Deal with mvp_list at the very initial stage
  sched: Simplify sliding window logic
  sched/walt: remove unused can_halt cpu mask
  sched/walt: cleanup cpu_active and cpu_online usage
  sched/walt: catch tasks running on disallowed cpus
  sched/walt/halt: cleaup issues post-review
  sched/walt: Increase the number of history samples
  sched: Remove references to min/max capacity cpus
  sched/walt: make cmt aware of boosted/colocated task
  sched/walt: move trace_sched_compute_energy tracepoint
  sched/walt: kick Gold if farthest cluster needs help
  sched/walt: avoid halted cpus in walt_find_energy_efficient_cpu
  sched/walt: avoid halted cpus for rt in find_lowest_rq
  sched/walt: limit the cpu selected by rto_next_cpu
  sched/walt: limited the dest_cpu with set_cpus_allowed_ptr_locked
  sched/walt: do not allow migration to halted CPU
  sched/walt/rt: check halted flag for rt task wakeups
  sched/walt: avoid halted cpus for prev cpu fastpath
  sched/walt: avoid halted cpus in newidle balance
  sched/walt/core_ctl: minimum changes for halt
  sched/walt/halt: update tracepoints for halt/start
  sched/walt/pause: remove pause functionality from build
  sched/walt/halt: walt halt functionality
  sched/walt: walt irq work reduce locking
  sched/walt: remove task from mvp list if task in yield
  sched/walt: Fix frequent frequency updates
  sched/walt: Remove unsused function
  sched/walt: Restore obj file in Makefile
  sched/walt: Improve the scheduler
  sched: Improve the scheduler
  sched: walt: Improve the scheduler
  sched: walt: Fix stale walt CPU reservation flag
  sched: walt: Fix bad casting in trace
  sched: Improve the Scheduler
  walt_lb: Read push_task under lock
  sched/walt: Remove duplicate get_task_struct
  sched/walt: improve preemptirq template based tracepoints
  sched/walt/walt_rt: Improve the scheduler
  include/linux/cpu: Remove get_online_cpus and put_online_cpus wrapper
  sched/walt: Remove vendor hook for resume_cpus
  Revert "sched:walt: register tracehooks for race with pause"
  sched/walt: Improve the scheduler
  sched/walt: Clear scale_frequency_data during init
  pause: port the users of pause
  sched/walt: complain if num clusters is high
  sched/walt: Change rq lock variable as per upstream
  sched/walt: Remove redefinition of 'task_of' function
  sched_walt: Change from MAX_USER_RT_PRIO to MAX_RT_PRIO
  sched/walt: Change task state variable
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Remove newline in traces
  sched: walt: Create pipeline "low latency" tasks
  sched/walt: fix target load crossover
  sched: walt: Add target load tunables
  sched/walt: Fix caching freq earlier than down rate limit check
  sched/walt: improve task_util trace and variable names
  sched: walt: Don't crash unless crash mode enabled
  sched: Improve the scheduler
  sched/walt: Improve the scheduler
  sched: walt: Imrpove the scheduler
  sched: Improve the Scheduler
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched: walt: Improve the scheduler
  sched: walt: Improve the Scheduler
  sched/walt: Improve the scheduler
  sched: walt: Do dequeue task accounting after dequeue
  sched: walt: Use CRA for sum util
  sched/walt: eval_need code and trace cleanup
  sched/walt: Improve the scheduler
  sched/walt: update the value of active_cpus
  sched: walt: Increase nr_threshold to 40 percent
  sched: walt: add sched_switch_ctrs_cfg event
  sched: walt: Account rt scale to cpu_capacity
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Check if necessary for sched_boost modify
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt/walt_cfs: Improve the scheduler
  sched/walt: reduce severity of walt pause warning
  sched/walt: reduce severity of core_ctl warning
  sched/walt: convert existing walt debug to use macro
  sched/walt: sysctl node to allow capture of walt issues
  sched/walt: when idle task is scheduled cra must be zero
  sched/walt: check next task state
  Sched/walt/walt_cfs: Improve the scheduler
  sched: walt: Register restricted trace hook for libunity fixup
  sched/walt: test to ensure dequeue cpu same as enqueue cpu
  sched/walt/walt_rt: Improve the scheduler
  sched/walt: choose best cpu based on spare cap
  sched/walt: skip finding max when energy evaluating
  sched/walt: skip enery evaluation for need_idle when idle CPU is available
  sched/walt/core_ctl: use printk_deferred() in case of errors
  sched/walt: allow reference to walt debug capabilities
  sched: walt: Use unsigned long type for counter values
  sched/walt_rt: Honor sync wakeups
  sched: walt: use scale_cpu for energy evals
  sched/walt: correct return value for walt_pause/resume_cpus()
  sched/walt: Improve the scheduler
  sched: walt: Fix the logic for detecting enq/deq
  sched: Use IS_ENABLED macro to check if config is enabled
  sched: suppress silver region frequency boost
  sched: walt: Add AMU based instructions and cycle counts
  sched:walt: register restricted tracehooks for race with pause
  sched: walt: Ensure only valid cpu selected
  sched: walt: Add cgroup_attach trace point
  Revert "sched:walt: register tracehooks for race with pause"
  sched/walt: prevent lockup when system is suspending
  sched:walt: register tracehooks for race with pause
  sched/walt: Fix scheduling while atomic
  sched: Enable walt debug module in first stage
  sched: walt: Fix max_util calculation
  sched/walt: print per cluster energy
  sched/walt: consolidate multiple rcu unlock statements
  sched: walt: Setup complex sibling hints at init
  sched/walt: Improve the scheduler
  sched/walt: use just 3% energy criteria
  sched/walt: Improve the scheduler
  sched/walt: initiate initialization after topology
  sched/walt: Improve the scheduler
  sched/walt: handle overlap between silver and gold
  sched/walt: use prs for energy evaluation
  sched/walt: skip energy for uninvolved cluster
  sched/walt: create walt friendly energy apis
  sched/walt: Track best target cpu for each cluster
  sched: walt: Move perf counter trace to dynamic trace point
  sched: walt: support dynamic trace event registration
  sched: Disable LPM if CONSERVATIVE_BOOST is enabled
  sched: walt: Fix waltgov_next_freq format specifiers
  sched/walt: improve debug of strange rq situations in walt
  sched/walt: add sched_busy_hyst_time trace event
  sched: Add util_busy_hist feature
  sched: Add util busy hist sysctl tunables
  sched/walt: improve logging in the error paths
  sched/walt: Do the rq clock update before MVP tasks update
  sched/walt: Fix locking issue in MVP tasks update
  sched/walt: Improve the scheduler
  sched: walt: Adjust nomenclature
  sched: walt: expand waltgov_util_update trace point
  sched/fair: Add sched_sync_hint_enable node
  sched/walt: fix lock ordering issue between RTG lock and task's RQ lock
  sched/walt: Improve the scheduler
  sched/walt: fixup_busy_time: Correct typo in lockdep_assert_held
  sched/walt: Improve the scheduler
  sched/walt: Fix newline issues
  sched/walt: Improve the scheduler
  walt: honor affinity in placement path
  sched/walt: Add MVP tasks feature
  sched/walt: cleanup references to pr_emerg
  sched: Improve the scheduler
  sched/walt: Add small task filtering to uclamp
  sched/walt: Cache the affinity of a user space task
  sched/walt: enhanced debug for double enqueue/dequeue
  sched/walt: debug for fixup_cumulative_runnable_avg
  sched/walt: Improve the scheduler
  sched/walt: improved debug for tracking accounting cases
  sched/walt: Apply binder vendor hook performance tune
  sched/walt: Improve the scheduler
  sched/walt: Initialize task groups from vendor hook
  sched: walt: Cleanup fbt_env boosted member
  sched: walt: Improve FEEC energy variable nomenclature
  sched: walt: Shift boost status of current task
  sched: walt: Move spare_cap calculation
  sched: walt: remove extra function call
  sched/walt: add rt_time to dump_throttled_rt_tasks
  sched/walt: null ptr dereference fix in walt_lb_active_migration
  sched/walt: core_ctl init out of order
  sched/walt: Read sysctl_sched_ravg_window_nr_ticks under mutex
  sched/walt: Remove unused sched_dynamic_ravg_window_enable tunable
  sched/walt: sched_task_util trace point updates
  sched/walt: Modify sched_task_util tracepoint
  sched/walt: update check during debug module init
  sched/walt: Adjust code as per new dequeue_task() hook invocation
  sched/walt: Update CPU capacity based on cpufreq constraints
  thermal/pause: thermal driver not tracking pause state
  walt/core_ctl: handle error conditions
  walt/pause: switch over to mutex and protect call to pause/resume
  sched/pause: handle cpu online processing for pause
  sched: walt: Improve the scheduler
  sched/walt: Remove incorrect TODO/FIXME comments
  sched/walt: Track wake_q length using newer parameter
  sched: walt: Improve the Scheduler
  sched: walt: Move task_boost_type declarations
  sched/walt: Improve the chance of RT task pull
  sched/walt: Improve walt_newidle_balance trace point
  sched/walt: improve debug for time_delta < 0
  sched/pause: support refcounting on pause cpus operation
  sched/walt: Track CPUs that can't be paused
  sched/walt: Fix !idle case in walt_get_idle_exit_latency
  sched/walt: Remove left over references to cum_window_demand
  sched/walt: Add fair task check in tick path load balance
  sched/walt: Remove duplicate restricted vendor hook registration
  sched/walt: Implement balance_rt vendor hook
  binder: update low_latency selection for binder transactions
  sched/walt: Use nr_running > 1 condition for same cluster lb
  sched/walt: Use unbounded cpu util in load balancer
  sched/walt: Don't migrate running task to a busy CPU
  sched/walt: Fix misfit accounting issues
  sched/walt: Fix walt_lb_find_busiest_lower_cap_cpu() condition
  sched/walt: implement select_task_rq_rt trace hook
  sched/trace: support compat in enq/deq trace
  sched/walt: Temporarily disable sibling_count_hint
  sched/walt: Clean up the code
  sched/walt: Make debug module depend on SCHED_WALT
  sched/walt: Remove the active task special case from wfbt()
  sched/walt: Fix waking new tasks on higher capacity CPUs
  sched/walt: Move public declarations of core_ctl.h to walt.h
  sched/walt: remove unused functions and variables
  sched/walt: Make wake_up_idle related functions public
  sched/walt: Make walt_task_struct struct public
  sched/walt: Export set_task_boost() API
  sched/walt: Introduce waltgov boost feature
  sched/walt: Remove sched_load_boost related code
  sched/walt: Update cpufreq_driver_fast_switch() invocation
  sched/walt: Remove references to schedutil flags
  sched/walt: Simplify core_ctl active cpu count management
  sched/walt: Fix lockdep warning
  sched/walt: Remove left over code related to kernel command line param
  sched/walt: Implement sched_lpm_disallowed_time() API
  sched: walt: Cleanup core_ctl
  sched/walt: Remove should_we_pause() function
  sched/walt: Remove evaluation from the core_ctl thread context
  sched/wakeup: Optimize core_ctl thread wakeup
  sched/walt: Remove unused sched_pause trace point
  sched/walt: Add window rollover trace event
  sched/walt: Synchronize per-task sysctl and sysctl_task_read_pid
  sched/walt: Improve the scheduler
  sched/walt: Add a build time test for vendor data size check
  sched: walt: Fixup root domain selection
  sched/walt: Remove obsolete TODO comments
  sched/walt: wait for cpufreq policies
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched/walt: Improve the scheduler
  sched: Improve the scheduler
  sched/walt: Restrict new idle load balance based on avg_idle
  sched/walt: Introduce WALT as a module

Change-Id: Iad463c5cdd9384cc09f68b47fdadbc5e2a8143ac
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
2022-07-06 10:44:46 -07:00
android Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (8b0a7fb) into msm-pineapple 2022-06-21 23:18:19 -07:00
arch sched: walt: Move perf counter trace to dynamic trace point 2022-06-28 18:50:49 -07:00
block Merge fdaf9a5840 ("Merge tag 'folio-5.19' of git://git.infradead.org/users/willy/pagecache") into android-mainline 2022-06-08 12:54:05 +02:00
certs Merge 09583dfed2 ("Merge tag 'pm-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm") into android-mainline 2022-06-07 18:10:15 +02:00
crypto Merge 09583dfed2 ("Merge tag 'pm-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm") into android-mainline 2022-06-07 18:10:15 +02:00
Documentation Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (8b0a7fb) into msm-pineapple 2022-06-21 23:18:19 -07:00
drivers sched/walt/halt: track halt reasons 2022-06-28 19:05:34 -07:00
fs Merge 16477cdfef ("Merge tag 'asm-generic-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic") into android-mainline 2022-06-09 09:58:01 +02:00
include sched: improve the scheduler 2022-06-28 19:14:08 -07:00
init Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (8b0a7fb) into msm-pineapple 2022-06-21 23:18:19 -07:00
ipc fs: allocate inode by using alloc_inode_sb() 2022-03-22 15:57:03 -07:00
kernel sched: improve the scheduler 2022-06-28 19:14:08 -07:00
lib Merge 16477cdfef ("Merge tag 'asm-generic-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic") into android-mainline 2022-06-09 09:58:01 +02:00
LICENSES LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers 2021-12-16 14:33:10 +01:00
mm Merge keystone/mirror-android-mainline into keystone/android-mainline-keystone-qcom-dev 2022-06-14 10:52:59 -07:00
net Merge 86c87bea6b ("Merge tag 'devicetree-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux") into android-mainline 2022-06-08 15:50:49 +02:00
samples drm for 5.19-rc1 2022-05-25 16:18:27 -07:00
scripts Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (8b0a7fb) into msm-pineapple 2022-06-21 23:18:19 -07:00
security Merge 86c87bea6b ("Merge tag 'devicetree-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux") into android-mainline 2022-06-08 15:50:49 +02:00
sound Merge d7227785e3 ("Merge tag 'sound-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound") into android-mainline 2022-06-09 09:48:01 +02:00
tools Merge 16477cdfef ("Merge tag 'asm-generic-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic") into android-mainline 2022-06-09 09:58:01 +02:00
usr sparc: add asm/stat.h to UAPI compile-test coverage 2022-05-13 10:56:10 +02:00
virt KVM: Free new dirty bitmap if creating a new memslot fails 2022-05-20 13:02:05 -04:00
.clang-format genirq/msi: Make interrupt allocation less convoluted 2021-12-16 22:22:20 +01:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore .gitignore: ignore vendor dt softlink and generated configs 2022-03-07 10:31:56 -08:00
.mailmap Scheduler changes in this cycle were: 2022-05-24 11:11:13 -07:00
Android.bp kernel: Create and export kernel headers 2022-05-31 18:19:41 -07:00
BUILD.bazel ANDROID: Enable SM8450 drivers and DTB in the db845c config 2022-06-10 15:08:55 -07:00
build.config.aarch64 ANDROID: build.config: set NDK_TRIPLE 2022-04-05 14:09:03 -07:00
build.config.allmodconfig Revert "ANDROID: disable PINCTRL_THUNDERBAY from allmodconfig builds" 2022-04-07 15:46:34 +00:00
build.config.allmodconfig.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.allmodconfig.arm ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.allmodconfig.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.amlogic ANDROID: GKI: amlogic: add DTB overlays 2021-02-11 12:23:26 +00:00
build.config.arm ANDROID: build.config: set NDK_TRIPLE 2022-04-05 14:09:03 -07:00
build.config.common ANDROID: fix KCFLAGS override by __ANDROID_COMMON_KERNEL__ 2022-04-29 17:50:28 +00:00
build.config.constants ANDROID: clang: update to 14.0.7 2022-05-02 19:41:28 +00:00
build.config.db845c ANDROID: Enable SM8450 drivers and DTB in the db845c config 2022-06-10 15:08:55 -07:00
build.config.gki ANDROID: GKI: Add support for a GKI_BUILD_CONFIG_FRAGMENT 2021-06-24 00:26:54 +00:00
build.config.gki_consolidate.aarch64 ANDROID: qki: Add consolidate config 2021-06-21 15:04:54 -07:00
build.config.gki_kasan ANDROID: build.config: re-disable LTO properly for KASAN 2022-03-24 12:41:35 -07:00
build.config.gki_kasan.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki_kasan.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki_kprobes ANDROID: build.configs: migrate away from CC_LD_ARG 2021-07-02 09:49:23 +00:00
build.config.gki_kprobes.aarch64 ANDROID: Adding kprobes build configs for Cuttlefish 2021-03-01 15:29:45 +00:00
build.config.gki_kprobes.x86_64 ANDROID: Adding kprobes build configs for Cuttlefish 2021-03-01 15:29:45 +00:00
build.config.gki-debug.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki-debug.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki.aarch64 ANDROID: Adding Image.gz and boot-gz.img 2022-06-13 10:00:31 +00:00
build.config.gki.x86_64 ANDROID: Creating boot.img for x86_64 GKI 2022-05-24 11:30:05 +08:00
build.config.khwasan ANDROID: Add a build config fragment for KHWASan. 2021-10-13 19:44:44 +00:00
build.config.msm.common Revert "build.config.msm.common: Temporarily turn off config delta checks" 2022-04-14 15:46:43 -07:00
build.config.msm.gki build.config.msm.gki: Add sanity_check_abi() 2022-04-28 20:07:40 -07:00
build.config.msm.pineapple build.config: pineapple: Enable ABL image generation 2022-05-10 11:41:46 -07:00
build.config.rockpi4 ANDROID: rockpi4: Use new DTS_EXT_DIR feature 2021-12-13 21:27:46 +00:00
build.config.x86_64 ANDROID: build.config: set NDK_TRIPLE 2022-04-05 14:09:03 -07:00
build.targets build.config: Add msm.pineapple target and modules blacklist 2022-03-07 10:31:33 -08:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: replace a Microchip AT91 maintainer 2022-02-09 11:30:01 +01:00
files_gki_aarch64.txt Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (8b0a7fb) into msm-pineapple 2022-06-21 23:18:19 -07:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig sched/walt: Introduce WALT as a module 2022-06-28 18:45:55 -07:00
Kconfig.ext ANDROID: kbuild: add Kconfig support for external modules 2021-12-13 18:33:18 +00:00
MAINTAINERS Merge 16477cdfef ("Merge tag 'asm-generic-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic") into android-mainline 2022-06-09 09:58:01 +02:00
Makefile Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (8b0a7fb) into msm-pineapple 2022-06-21 23:18:19 -07:00
modules.list.msm.pineapple Merge "modules.list.msm.pineapple: Add socinfo and dependencies" 2022-06-27 15:00:50 -07:00
modules.vendor_blocklist.msm.pineapple build.config: Add msm.pineapple target and modules blacklist 2022-03-07 10:31:33 -08:00
OWNERS ANDROID: add initial set of OWNERS 2021-02-25 13:58:58 +00:00
OWNERS_DrNo Revert "ANDROID: pause DrNo for maennich@ due to OOO" 2021-10-04 08:21:36 +00:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00
README.md ANDROID: README.md: fix checkpatch.pl path typo 2021-04-07 23:16:50 +00:00

How do I submit patches to Android Common Kernels

  1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. These patches will be merged automatically in the corresponding common kernels. If the patch is already in upstream Linux, post a backport of the patch that conforms to the patch requirements below.

    • Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux, additions of EXPORT_SYMBOL_GPL() require an in-tree modular driver that uses the symbol -- so include the new driver or changes to an existing driver in the same patchset as the export.
    • When sending patches upstream, the commit message must contain a clear case for why the patch is needed and beneficial to the community. Enabling out-of-tree drivers or functionality is not not a persuasive case.
  2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are fixing an Android-specific bug, these are very unlikely to be accepted unless they have been coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the patch requirements below.

Common Kernel patch requirements

  • All patches must conform to the Linux kernel coding standards and pass scripts/checkpatch.pl
  • Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures (see https://source.android.com/setup/build/building-kernels)
  • If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch: UPSTREAM:, BACKPORT:, FROMGIT:, FROMLIST:, or ANDROID:.
  • All patches must have a Change-Id: tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)
  • If an Android bug has been assigned, there must be a Bug: tag.
  • All patches must have a Signed-off-by: tag by the author and the submitter

Additional requirements are listed below based on patch type

Requirements for backports from mainline Linux: UPSTREAM:, BACKPORT:

  • If the patch is a cherry-pick from Linux mainline with no changes at all
    • tag the patch subject with UPSTREAM:.
    • add upstream commit information with a (cherry picked from commit ...) line
    • Example:
      • if the upstream commit message is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        UPSTREAM: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch requires any changes from the upstream version, tag the patch with BACKPORT: instead of UPSTREAM:.
    • use the same tags as UPSTREAM:
    • add comments about the changes under the (cherry picked from commit ...) line
    • Example:
        BACKPORT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        [joe: Resolved minor conflict in drivers/foo/bar.c ]
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for other backports: FROMGIT:, FROMLIST:,

  • If the patch has been merged into an upstream maintainer tree, but has not yet been merged into Linux mainline
    • tag the patch subject with FROMGIT:
    • add info on where the patch came from as (cherry picked from commit <sha1> <repo> <branch>). This must be a stable maintainer branch (not rebased, so don't use linux-next for example).
    • if changes were required, use BACKPORT: FROMGIT:
    • Example:
      • if the commit message in the maintainer tree is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        FROMGIT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace
         https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch)
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch has been submitted to LKML, but not accepted into any maintainer tree
    • tag the patch subject with FROMLIST:
    • add a Link: tag with a link to the submittal on lore.kernel.org
    • add a Bug: tag with the Android bug (required for patches not accepted into a maintainer tree)
    • if changes were required, use BACKPORT: FROMLIST:
    • Example:
        FROMLIST: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for Android-specific patches: ANDROID:

  • If the patch is fixing a bug to Android-specific code
    • tag the patch subject with ANDROID:
    • add a Fixes: tag that cites the patch with the bug
    • Example:
        ANDROID: fix android-specific bug in foobar.c

        This is the detailed description of the important fix

        Fixes: 1234abcd2468 ("foobar: add cool feature")
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch is a new feature
    • tag the patch subject with ANDROID:
    • add a Bug: tag with the Android bug (required for android-specific features)