From 40f057fb2df215844acbdf56b30fef2e648c8789 Mon Sep 17 00:00:00 2001 From: Suren Baghdasaryan Date: Tue, 1 Sep 2020 18:25:58 -0700 Subject: [PATCH 1/7] FROMGIT: mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary Currently __set_oom_adj loops through all processes in the system to keep oom_score_adj and oom_score_adj_min in sync between processes sharing their mm. This is done for any task with more that one mm_users, which includes processes with multiple threads (sharing mm and signals). However for such processes the loop is unnecessary because their signal structure is shared as well. Android updates oom_score_adj whenever a tasks changes its role (background/foreground/...) or binds to/unbinds from a service, making it more/less important. Such operation can happen frequently. We noticed that updates to oom_score_adj became more expensive and after further investigation found out that the patch mentioned in "Fixes" introduced a regression. Using Pixel 4 with a typical Android workload, write time to oom_score_adj increased from ~3.57us to ~362us. Moreover this regression linearly depends on the number of multi-threaded processes running on the system. Mark the mm with a new MMF_MULTIPROCESS flag bit when task is created with (CLONE_VM && !CLONE_THREAD && !CLONE_VFORK). Change __set_oom_adj to use MMF_MULTIPROCESS instead of mm_users to decide whether oom_score_adj update should be synchronized between multiple processes. To prevent races between clone() and __set_oom_adj(), when oom_score_adj of the process being cloned might be modified from userspace, we use oom_adj_mutex. Its scope is changed to global. The combination of (CLONE_VM && !CLONE_THREAD) is rarely used except for the case of vfork(). To prevent performance regressions of vfork(), we skip taking oom_adj_mutex and setting MMF_MULTIPROCESS when CLONE_VFORK is specified. Clearing the MMF_MULTIPROCESS flag (when the last process sharing the mm exits) is left out of this patch to keep it simple and because it is believed that this threading model is rare. Should there ever be a need for optimizing that case as well, it can be done by hooking into the exit path, likely following the mm_update_next_owner pattern. With the combination of (CLONE_VM && !CLONE_THREAD && !CLONE_VFORK) being quite rare, the regression is gone after the change is applied. Fixes: 44a70adec910 ("mm, oom_adj: make sure processes sharing mm have same view of oom_score_adj") Reported-by: Tim Murray Debugged-by: Minchan Kim Suggested-by: Michal Hocko Signed-off-by: Suren Baghdasaryan Bug: 168521639 Link: https://lore.kernel.org/linux-fsdevel/20200902012558.2335613-1-surenb@google.com/ [isaacm: upstream bound, no cherry-pick info because patch is in mm tree] Change-Id: I20352a77815fbc358c36e686bb1503fdeea658ed Signed-off-by: Isaac J. Manjarres --- fs/proc/base.c | 3 +-- include/linux/oom.h | 1 + include/linux/sched/coredump.h | 1 + kernel/fork.c | 21 +++++++++++++++++++++ mm/oom_kill.c | 2 ++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 7d13501910ee..78aeaafa2384 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -1037,7 +1037,6 @@ static ssize_t oom_adj_read(struct file *file, char __user *buf, size_t count, static int __set_oom_adj(struct file *file, int oom_adj, bool legacy) { - static DEFINE_MUTEX(oom_adj_mutex); struct mm_struct *mm = NULL; struct task_struct *task; int err = 0; @@ -1077,7 +1076,7 @@ static int __set_oom_adj(struct file *file, int oom_adj, bool legacy) struct task_struct *p = find_lock_task_mm(task); if (p) { - if (atomic_read(&p->mm->mm_users) > 1) { + if (test_bit(MMF_MULTIPROCESS, &p->mm->flags)) { mm = p->mm; mmgrab(mm); } diff --git a/include/linux/oom.h b/include/linux/oom.h index c696c265f019..b9df34326772 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h @@ -55,6 +55,7 @@ struct oom_control { }; extern struct mutex oom_lock; +extern struct mutex oom_adj_mutex; static inline void set_current_oom_origin(void) { diff --git a/include/linux/sched/coredump.h b/include/linux/sched/coredump.h index ecdc6542070f..dfd82eab2902 100644 --- a/include/linux/sched/coredump.h +++ b/include/linux/sched/coredump.h @@ -72,6 +72,7 @@ static inline int get_dumpable(struct mm_struct *mm) #define MMF_DISABLE_THP 24 /* disable THP for all VMAs */ #define MMF_OOM_VICTIM 25 /* mm is the oom victim */ #define MMF_OOM_REAP_QUEUED 26 /* mm was queued for oom_reaper */ +#define MMF_MULTIPROCESS 27 /* mm is shared between processes */ #define MMF_DISABLE_THP_MASK (1 << MMF_DISABLE_THP) #define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK |\ diff --git a/kernel/fork.c b/kernel/fork.c index e0a1e1187728..41ce6de4d5d1 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1760,6 +1760,25 @@ static __always_inline void delayed_free_task(struct task_struct *tsk) free_task(tsk); } +static void copy_oom_score_adj(u64 clone_flags, struct task_struct *tsk) +{ + /* Skip if kernel thread */ + if (!tsk->mm) + return; + + /* Skip if spawning a thread or using vfork */ + if ((clone_flags & (CLONE_VM | CLONE_THREAD | CLONE_VFORK)) != CLONE_VM) + return; + + /* We need to synchronize with __set_oom_adj */ + mutex_lock(&oom_adj_mutex); + set_bit(MMF_MULTIPROCESS, &tsk->mm->flags); + /* Update the values in case they were changed after copy_signal */ + tsk->signal->oom_score_adj = current->signal->oom_score_adj; + tsk->signal->oom_score_adj_min = current->signal->oom_score_adj_min; + mutex_unlock(&oom_adj_mutex); +} + /* * This creates a new process as a copy of the old one, * but does not actually start it yet. @@ -2234,6 +2253,8 @@ static __latent_entropy struct task_struct *copy_process( trace_task_newtask(p, clone_flags); uprobe_copy_process(p, clone_flags); + copy_oom_score_adj(clone_flags, p); + return p; bad_fork_cancel_cgroup: diff --git a/mm/oom_kill.c b/mm/oom_kill.c index d58c481b3df8..212e71874301 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -63,6 +63,8 @@ int sysctl_oom_dump_tasks = 1; * and mark_oom_victim */ DEFINE_MUTEX(oom_lock); +/* Serializes oom_score_adj and oom_score_adj_min updates */ +DEFINE_MUTEX(oom_adj_mutex); static inline bool is_memcg_oom(struct oom_control *oc) { From 802f3427132ac1d3ebbde92d6712f35960cc8354 Mon Sep 17 00:00:00 2001 From: yong qian Date: Tue, 15 Sep 2020 21:14:57 +0800 Subject: [PATCH 2/7] ANDROID: vendor_hooks: Add hooks for debugging exception context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When some processes crashed, we want to save cpu regs(x0-x30、pc、sp), and context(task_struct、thread_info) to log for debugging Bug: 166228327 Signed-off-by: yong qian Change-Id: I4f49ffed583a0e20f1aaa7e445e85a0cbb603bbe --- arch/arm64/kernel/process.c | 2 ++ drivers/android/vendor_hooks.c | 2 ++ include/trace/hooks/minidump.h | 24 ++++++++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 include/trace/hooks/minidump.h diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 08637a8d911f..a07a5feeb9fe 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -55,6 +55,7 @@ #include #include #include +#include #if defined(CONFIG_STACKPROTECTOR) && !defined(CONFIG_STACKPROTECTOR_PER_TASK) #include @@ -254,6 +255,7 @@ void __show_regs(struct pt_regs *regs) top_reg = 29; } + trace_android_vh_show_regs(regs); show_regs_print_info(KERN_DEFAULT); print_pstate(regs); diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 2ed3b8b2bccf..4dc0d89c835b 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -17,6 +17,7 @@ #include #include #include +#include /* * Export tracepoints that act as a bare tracehook (ie: have no trace event @@ -56,3 +57,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_futex_plist_add); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ipi_stop); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_store); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_regs); diff --git a/include/trace/hooks/minidump.h b/include/trace/hooks/minidump.h new file mode 100644 index 000000000000..11283e43322d --- /dev/null +++ b/include/trace/hooks/minidump.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM minidump + +#define TRACE_INCLUDE_PATH trace/hooks + +#if !defined(_TRACE_HOOK_MINIDUMP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_MINIDUMP_H +#include +#include + +#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS) +struct pt_regs; +DECLARE_HOOK(android_vh_show_regs, + TP_PROTO(struct pt_regs *regs), + TP_ARGS(regs)); +#else +#define trace_android_vh_show_regs(regs) +#endif + +#endif /* _TRACE_HOOK_MINIDUMP_H */ +/* This part must be outside protection */ +#include + From a3cb7a0327889c39c1bc8e4e3c062f2671bbc6cc Mon Sep 17 00:00:00 2001 From: Sami Tolvanen Date: Thu, 10 Sep 2020 15:33:56 -0700 Subject: [PATCH 3/7] ANDROID: mm: add generic __va_function and __pa_function We use non-canonical CFI jump tables with CONFIG_CFI_CLANG, which means the compiler replaces function address references with the address of the function's CFI jump table entry. This results in __pa_symbol(function), for example, returning the physical address of the jump table entry, which can lead to address space confusion since the jump table itself points to a virtual address. This change adds generic definitions for __pa/va_function, which architectures that support CFI can override. Bug: 166220312 Change-Id: If4a162de7854547d8437bf59be03eb6d16220832 Signed-off-by: Sami Tolvanen --- include/linux/mm.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 2f821accb850..e032e34213aa 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -116,6 +116,14 @@ extern int mmap_rnd_compat_bits __read_mostly; #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0)) #endif +#ifndef __va_function +#define __va_function(x) (x) +#endif + +#ifndef __pa_function +#define __pa_function(x) __pa_symbol(x) +#endif + #ifndef page_to_virt #define page_to_virt(x) __va(PFN_PHYS(page_to_pfn(x))) #endif From 5d5378d6086e5b19641f8adc526dc7d8bd377c2b Mon Sep 17 00:00:00 2001 From: Prasad Sodagudi Date: Tue, 15 Sep 2020 10:07:13 -0700 Subject: [PATCH 4/7] ANDROID: lkdtm/usercopy: Use __va_function to find proper vm_mmap address With CFI enabled compiler replacing the reference to vm_mmap passed to copy_to_user with a pointer to the CFI jump table in the module itself. So use the __va_function API for finding the proper address of vm_mmap. Bug: 166220312 Suggested-by: Sami Tolvanen Change-Id: Id5bd96cc9bfa1aa99f34bd4785792e0a4eeae5b1 Signed-off-by: Prasad Sodagudi --- drivers/misc/lkdtm/usercopy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/lkdtm/usercopy.c b/drivers/misc/lkdtm/usercopy.c index b833367a45d0..120e9ffd0f28 100644 --- a/drivers/misc/lkdtm/usercopy.c +++ b/drivers/misc/lkdtm/usercopy.c @@ -314,7 +314,7 @@ void lkdtm_USERCOPY_KERNEL(void) pr_info("attempting bad copy_to_user from kernel text: %px\n", vm_mmap); - if (copy_to_user((void __user *)user_addr, vm_mmap, + if (copy_to_user((void __user *)user_addr, __va_function(vm_mmap), unconst + PAGE_SIZE)) { pr_warn("copy_to_user failed, but lacked Oops\n"); goto free_user; From f82716d6b72aa2a2a27d188b5a48af4fb61e52d6 Mon Sep 17 00:00:00 2001 From: John Stultz Date: Tue, 30 Jun 2020 03:07:36 +0000 Subject: [PATCH 5/7] ANDROID: hikey960_gki.fragment: Remove UFS and USB bits Remove CONFIG_SCSI_UFS_HISI=m and CONFIG_TYPEC_TCPM=m from the hikey960_gki.fragment, as those configs have been added to the gki_defconfig Fixes: bb765ef8427e ("ANDROID: GKI: enable QCOM and HISI UFS drivers") Fixes: 5625a6460e96 ("ANDROID: GKI: enable CONFIG_TYPEC_TCPM") Signed-off-by: John Stultz Change-Id: I124a0d050c7170557d9672968729af196ad2f81c (cherry picked from commit ae78c73104aa2fa957cbb7b4524c3e3e862174fd) --- arch/arm64/configs/hikey960_gki.fragment | 2 -- 1 file changed, 2 deletions(-) diff --git a/arch/arm64/configs/hikey960_gki.fragment b/arch/arm64/configs/hikey960_gki.fragment index 854372329ff8..d303efbe3a5a 100644 --- a/arch/arm64/configs/hikey960_gki.fragment +++ b/arch/arm64/configs/hikey960_gki.fragment @@ -4,7 +4,6 @@ CONFIG_CONNECTOR=m CONFIG_BLK_DEV_NVME=m CONFIG_NVME_TARGET=m CONFIG_HISI_HIKEY_USB=m -CONFIG_SCSI_UFS_HISI=m CONFIG_WLAN_VENDOR_TI=y CONFIG_WL18XX=m CONFIG_WLCORE_SDIO=m @@ -37,7 +36,6 @@ CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_HCD_PLATFORM=m CONFIG_USB_DWC3=m CONFIG_USB_GADGETFS=m -CONFIG_TYPEC_TCPM=m CONFIG_TYPEC_TCPCI=m CONFIG_TYPEC_RT1711H=m CONFIG_MMC_BLOCK=m From ba4ec0ee1b3c48bed1ca128d5925e04c754cade4 Mon Sep 17 00:00:00 2001 From: Jeehong Kim Date: Wed, 16 Sep 2020 14:46:20 +0900 Subject: [PATCH 6/7] ANDROID: ABI: Update allowed list for GALAXY Leaf changes summary: 10 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 8 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 2 Added variables 8 Added functions: [A] 'function void __napi_schedule_irqoff(napi_struct*)' [A] 'function void drm_edid_get_monitor_name(edid*, char*, int)' [A] 'function char* get_options(const char*, int, int*)' [A] 'function packet_offload* gro_find_complete_by_type(unsigned short int)' [A] 'function packet_offload* gro_find_receive_by_type(unsigned short int)' [A] 'function __be32 in_aton(const char*)' [A] 'function void kfree_skb_partial(sk_buff*, bool)' [A] 'function int smp_call_function_single_async(int, __call_single_data*)' 2 Added variables: [A] 'tracepoint __tracepoint_android_vh_kfree_skb' [A] 'tracepoint __tracepoint_android_vh_ptype_head' Bug: 168666995 Signed-off-by: Jeehong Kim Change-Id: Ie93e39ef988e2287741819a81cd44d41d7f0fcd7 --- android/abi_gki_aarch64.xml | 1084 +++++++++++++++++--------------- android/abi_gki_aarch64_galaxy | 13 + 2 files changed, 586 insertions(+), 511 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index e41f5234a571..969c4f8bae0f 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -149,6 +149,7 @@ + @@ -1257,6 +1258,7 @@ + @@ -1562,6 +1564,7 @@ + @@ -1641,6 +1644,8 @@ + + @@ -1816,6 +1821,7 @@ + @@ -2044,6 +2050,7 @@ + @@ -3288,6 +3295,7 @@ + @@ -4264,6 +4272,8 @@ + + @@ -4516,7 +4526,7 @@ - + @@ -4567,7 +4577,7 @@ - + @@ -5264,6 +5274,17 @@ + + + + + + + + + + + @@ -7647,114 +7668,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7783,7 +7804,7 @@ - + @@ -11197,6 +11218,23 @@ + + + + + + + + + + + + + + + + + @@ -14184,23 +14222,6 @@ - - - - - - - - - - - - - - - - - @@ -14329,17 +14350,6 @@ - - - - - - - - - - - @@ -14494,7 +14504,7 @@ - + @@ -14529,8 +14539,8 @@ - - + + @@ -14588,7 +14598,7 @@ - + @@ -14599,7 +14609,7 @@ - + @@ -15182,7 +15192,7 @@ - + @@ -16234,7 +16244,21 @@ + + + + + + + + + + + + + + @@ -16249,6 +16273,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19692,23 +19749,6 @@ - - - - - - - - - - - - - - - - - @@ -19867,6 +19907,23 @@ + + + + + + + + + + + + + + + + + @@ -21964,6 +22021,8 @@ + + @@ -35683,6 +35742,12 @@ + + + + + + @@ -77695,17 +77760,6 @@ - - - - - - - - - - - @@ -85212,7 +85266,7 @@ - + @@ -85221,13 +85275,13 @@ - + - + @@ -85988,16 +86042,6 @@ - - - - - - - - - - @@ -86289,14 +86333,6 @@ - - - - - - - - @@ -86352,6 +86388,17 @@ + + + + + + + + + + + @@ -86377,6 +86424,14 @@ + + + + + + + + @@ -86700,6 +86755,23 @@ + + + + + + + + + + + + + + + + + @@ -87049,11 +87121,11 @@ - + - + @@ -87555,23 +87627,6 @@ - - - - - - - - - - - - - - - - - @@ -87706,46 +87761,25 @@ - - - - - - - - - - - - - - - - - - - - - + - + - + - + - - + @@ -88953,7 +88987,7 @@ - + @@ -89197,7 +89231,7 @@ - + @@ -89353,7 +89387,7 @@ - + @@ -89364,7 +89398,7 @@ - + @@ -89497,7 +89531,7 @@ - + @@ -90517,39 +90551,39 @@ - - - - - + + + + + - + - - + + - - + + - - + + - - - + + + - - - - - - + + + + + + @@ -90780,6 +90814,7 @@ + @@ -90788,6 +90823,11 @@ + + + + + @@ -91008,7 +91048,7 @@ - + @@ -91028,7 +91068,7 @@ - + @@ -99771,23 +99811,6 @@ - - - - - - - - - - - - - - - - - @@ -103690,7 +103713,7 @@ - + @@ -103724,21 +103747,21 @@ - + - + - + - + - + - + @@ -103910,12 +103933,12 @@ - - + + - - + + @@ -104262,7 +104285,7 @@ - + @@ -104453,13 +104476,213 @@ - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -104543,7 +104766,7 @@ - + @@ -104594,7 +104817,18 @@ + + + + + + + + + + + @@ -104629,6 +104863,12 @@ + + + + + + @@ -104729,6 +104969,10 @@ + + + + @@ -104767,6 +105011,13 @@ + + + + + + + @@ -104774,6 +105025,10 @@ + + + + @@ -105088,6 +105343,11 @@ + + + + + @@ -105228,6 +105488,10 @@ + + + + @@ -105295,17 +105559,35 @@ - - - + + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + @@ -105319,6 +105601,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -105355,7 +105660,6 @@ - @@ -105411,11 +105715,6 @@ - - - - - @@ -110203,6 +110502,25 @@ + + + + + + + + + + + + + + + + + + + @@ -110411,23 +110729,15 @@ - + - + - - - - - - + - - - - + @@ -112578,17 +112888,6 @@ - - - - - - - - - - - @@ -112741,7 +113040,7 @@ - + @@ -112780,7 +113079,7 @@ - + @@ -112862,7 +113161,7 @@ - + @@ -112877,7 +113176,7 @@ - + @@ -112889,7 +113188,7 @@ - + @@ -112898,7 +113197,7 @@ - + @@ -112980,207 +113279,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -113191,7 +113290,7 @@ - + @@ -113199,18 +113298,7 @@ - - - - - - - - - - - @@ -113282,17 +113370,6 @@ - - - - - - - - - - - @@ -113356,7 +113433,7 @@ - + @@ -119232,21 +119309,6 @@ - - - - - - - - - - - - - - - diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy index acceef3b6eb0..93db4ed575cd 100644 --- a/android/abi_gki_aarch64_galaxy +++ b/android/abi_gki_aarch64_galaxy @@ -93,6 +93,7 @@ __mutex_init __napi_alloc_skb __napi_schedule + __napi_schedule_irqoff __netdev_alloc_skb __netlink_kernel_create __nlmsg_put @@ -145,6 +146,8 @@ __tasklet_schedule __trace_bprintk __tracepoint_android_vh_is_fpsimd_save + __tracepoint_android_vh_kfree_skb + __tracepoint_android_vh_ptype_head __tracepoint_device_pm_callback_end __tracepoint_device_pm_callback_start __tracepoint_pelt_cfs_tp @@ -415,6 +418,8 @@ cpufreq_table_index_unsorted cpufreq_unregister_driver cpuhp_tasks_frozen + cpuidle_pause_and_lock + cpuidle_resume_and_unlock cpumask_next cpumask_next_and cpus_read_lock @@ -797,6 +802,7 @@ drm_dp_update_payload_part1 drm_dp_update_payload_part2 drm_edid_duplicate + drm_edid_get_monitor_name drm_encoder_cleanup drm_encoder_init drm_err @@ -853,6 +859,7 @@ drm_mode_create drm_mode_create_dp_colorspace_property drm_mode_debug_printmodeline + drm_mode_destroy drm_mode_duplicate drm_mode_equal drm_mode_object_find @@ -987,6 +994,7 @@ get_cpu_device get_cpu_idle_time get_device + get_options get_pid_task get_random_bytes get_random_u32 @@ -1041,6 +1049,8 @@ gpiod_set_value gpiod_set_value_cansleep gpiod_to_irq + gro_find_complete_by_type + gro_find_receive_by_type gs_alloc_req gs_free_req gserial_alloc_line @@ -1131,6 +1141,7 @@ iio_read_channel_processed iio_read_channel_raw import_iovec + in_aton in_egroup_p init_dummy_netdev init_net @@ -1289,6 +1300,7 @@ kfree_call_rcu kfree_const kfree_skb + kfree_skb_partial kill_fasync kimage_vaddr kimage_voffset @@ -2022,6 +2034,7 @@ smp_call_function smp_call_function_many smp_call_function_single + smp_call_function_single_async smp_call_on_cpu snd_card_free snd_card_new From e83321764ff3443a134957efbc74409d0473b579 Mon Sep 17 00:00:00 2001 From: Matthias Maennich Date: Tue, 15 Sep 2020 14:45:04 +0100 Subject: [PATCH 7/7] ANDROID: KMI symbol lists: migrate section name Libabigail learned to accept 'symbol_list' as a valid suffix for symbol list sections. Hence make use of it consistently. Bug: 162536543 Signed-off-by: Matthias Maennich Change-Id: I1454b0068769c9e57a533dafb6267e63adb7ceb0 --- android/abi_gki_aarch64_cuttlefish | 2 +- android/abi_gki_aarch64_db845c | 2 +- android/abi_gki_aarch64_exynos | 2 +- android/abi_gki_aarch64_galaxy | 2 +- android/abi_gki_aarch64_goldfish | 2 +- android/abi_gki_aarch64_hikey960 | 2 +- android/abi_gki_aarch64_oneplus | 2 +- android/abi_gki_aarch64_oplus | 2 +- android/abi_gki_aarch64_qcom | 2 +- android/abi_gki_aarch64_sunxi | 2 +- android/abi_gki_aarch64_unisoc | 2 +- android/abi_gki_aarch64_vivo | 2 +- android/abi_gki_aarch64_workarounds | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/android/abi_gki_aarch64_cuttlefish b/android/abi_gki_aarch64_cuttlefish index 289794edf98a..df6a9c3c7eb0 100644 --- a/android/abi_gki_aarch64_cuttlefish +++ b/android/abi_gki_aarch64_cuttlefish @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols add_wait_queue alloc_etherdev_mqs diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c index e0c60b2d616d..cb55ce982af9 100644 --- a/android/abi_gki_aarch64_db845c +++ b/android/abi_gki_aarch64_db845c @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols __arch_copy_from_user __arch_copy_to_user diff --git a/android/abi_gki_aarch64_exynos b/android/abi_gki_aarch64_exynos index ef9721e4d3b5..97cf3901b7a1 100644 --- a/android/abi_gki_aarch64_exynos +++ b/android/abi_gki_aarch64_exynos @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] add_timer add_timer_on add_uevent_var diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy index 93db4ed575cd..3e4c50792f6c 100644 --- a/android/abi_gki_aarch64_galaxy +++ b/android/abi_gki_aarch64_galaxy @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] ___ratelimit __alloc_disk_node __alloc_pages_nodemask diff --git a/android/abi_gki_aarch64_goldfish b/android/abi_gki_aarch64_goldfish index be17c303b5fe..93efcaf60f8a 100644 --- a/android/abi_gki_aarch64_goldfish +++ b/android/abi_gki_aarch64_goldfish @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols __alloc_disk_node alloc_etherdev_mqs diff --git a/android/abi_gki_aarch64_hikey960 b/android/abi_gki_aarch64_hikey960 index 6ce7564f0826..f4997bb0639b 100644 --- a/android/abi_gki_aarch64_hikey960 +++ b/android/abi_gki_aarch64_hikey960 @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols add_uevent_var alloc_chrdev_region diff --git a/android/abi_gki_aarch64_oneplus b/android/abi_gki_aarch64_oneplus index 7cdf6d261ab5..9d8fa8a826ad 100644 --- a/android/abi_gki_aarch64_oneplus +++ b/android/abi_gki_aarch64_oneplus @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols add_timer alloc_chrdev_region diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index 39e7e1905b82..15ac9a66a517 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols alloc_workqueue __arch_copy_from_user diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index ab8314462433..4878c5f5fb7d 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] add_device_randomness add_timer add_timer_on diff --git a/android/abi_gki_aarch64_sunxi b/android/abi_gki_aarch64_sunxi index cfa5e5b29a40..9fb7727b17a4 100644 --- a/android/abi_gki_aarch64_sunxi +++ b/android/abi_gki_aarch64_sunxi @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols pinctrl_get pinctrl_gpio_set_config diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc index a743719eb889..c40f652bfbcd 100644 --- a/android/abi_gki_aarch64_unisoc +++ b/android/abi_gki_aarch64_unisoc @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] # commonly used symbols add_timer add_uevent_var diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo index 2ddab083f547..b739d3bee3dc 100644 --- a/android/abi_gki_aarch64_vivo +++ b/android/abi_gki_aarch64_vivo @@ -1,4 +1,4 @@ -[abi_whitelist] +[abi_symbol_list] add_device_randomness add_timer add_uevent_var diff --git a/android/abi_gki_aarch64_workarounds b/android/abi_gki_aarch64_workarounds index 3e4b6d16c687..c96aebcba081 100644 --- a/android/abi_gki_aarch64_workarounds +++ b/android/abi_gki_aarch64_workarounds @@ -1,3 +1,3 @@ -[abi_whitelist] +[abi_symbol_list] # b/167230325 ehci_handshake