Merge android14-6.1-2023-08_r4 into HEAD

* commit '5c1ed513eded33d20e713b1d346e5766251ac98b':
  ANDROID: GKI: Update symbol list for xiaomi
  ANDROID: vendor_hooks: export cgroup_threadgroup_rwsem
  ANDROID: GKI: Update symbol list for xiaomi
  ANDROID: vendor_hooks:vendor hook for percpu-rwsem

Change-Id: If18accea139ba3bbac0db069fad65553ed39b2f5
Signed-off-by: keystone-kernel-automerger <keystone-kernel-automerger@google.com>
This commit is contained in:
keystone-kernel-automerger 2023-09-20 07:28:42 +00:00
commit 3157cbfe25
7 changed files with 72 additions and 0 deletions

View File

@ -311039,6 +311039,13 @@ function {
parameter_id: 0x17047654
parameter_id: 0xc9082b19
}
function {
id: 0x9b6602ad
return_type_id: 0x6720d32f
parameter_id: 0x18bd6530
parameter_id: 0x33756485
parameter_id: 0x11b57133
}
function {
id: 0x9b660b2c
return_type_id: 0x6720d32f
@ -329227,6 +329234,15 @@ elf_symbol {
type_id: 0x9bd7019d
full_name: "__traceiter_android_vh_record_pcpu_rwsem_starttime"
}
elf_symbol {
id: 0x1a91ec8c
name: "__traceiter_android_vh_record_pcpu_rwsem_time_early"
is_defined: true
symbol_type: FUNCTION
crc: 0xeeef021b
type_id: 0x9b6602ad
full_name: "__traceiter_android_vh_record_pcpu_rwsem_time_early"
}
elf_symbol {
id: 0x92518ec5
name: "__traceiter_android_vh_record_rtmutex_lock_starttime"
@ -332485,6 +332501,15 @@ elf_symbol {
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_record_pcpu_rwsem_starttime"
}
elf_symbol {
id: 0x158c4cfa
name: "__tracepoint_android_vh_record_pcpu_rwsem_time_early"
is_defined: true
symbol_type: OBJECT
crc: 0xfb2f7ea7
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_record_pcpu_rwsem_time_early"
}
elf_symbol {
id: 0x4568ff8f
name: "__tracepoint_android_vh_record_rtmutex_lock_starttime"
@ -337584,6 +337609,15 @@ elf_symbol {
type_id: 0x751b5661
full_name: "cgroup_taskset_next"
}
elf_symbol {
id: 0xb7533de5
name: "cgroup_threadgroup_rwsem"
is_defined: true
symbol_type: OBJECT
crc: 0x4e1c73cb
type_id: 0x6c952252
full_name: "cgroup_threadgroup_rwsem"
}
elf_symbol {
id: 0x7a871d1c
name: "check_move_unevictable_pages"
@ -385866,6 +385900,7 @@ interface {
symbol_id: 0x93303c51
symbol_id: 0x7d069e91
symbol_id: 0x0fa39b81
symbol_id: 0x1a91ec8c
symbol_id: 0x92518ec5
symbol_id: 0x9792c22e
symbol_id: 0xe2d75052
@ -386228,6 +386263,7 @@ interface {
symbol_id: 0xb0c197a3
symbol_id: 0x761f292f
symbol_id: 0xef7ad117
symbol_id: 0x158c4cfa
symbol_id: 0x4568ff8f
symbol_id: 0xe918e2ec
symbol_id: 0x13b2fb38
@ -386795,6 +386831,7 @@ interface {
symbol_id: 0x4ce62869
symbol_id: 0x6d77f512
symbol_id: 0xb3cbf3c8
symbol_id: 0xb7533de5
symbol_id: 0x7a871d1c
symbol_id: 0x91718d34
symbol_id: 0x65e5fa26

View File

@ -332,3 +332,8 @@
#required by xm_ispv4_pcie.ko
pci_ioremap_bar
pci_disable_pcie_error_reporting
#required by lock_optimization module
__traceiter_android_vh_record_pcpu_rwsem_time_early
__tracepoint_android_vh_record_pcpu_rwsem_time_early
cgroup_threadgroup_rwsem

View File

@ -186,6 +186,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_permit_before_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_module_permit_after_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_is_initialized);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_shmem_get_folio);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_record_pcpu_rwsem_time_early);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_mmap_file);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_file_open);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_check_bpf_syscall);

View File

@ -23,6 +23,9 @@ struct percpu_rw_semaphore {
#endif
};
void _trace_android_vh_record_pcpu_rwsem_time_early(
unsigned long settime, struct percpu_rw_semaphore *sem);
#ifdef CONFIG_DEBUG_LOCK_ALLOC
#define __PERCPU_RWSEM_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname },
#else
@ -54,6 +57,8 @@ static inline void percpu_down_read(struct percpu_rw_semaphore *sem)
rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_);
preempt_disable();
_trace_android_vh_record_pcpu_rwsem_time_early(jiffies, sem);
/*
* We are in an RCU-sched read-side critical section, so the writer
* cannot both change sem->state from readers_fast and start checking
@ -93,6 +98,7 @@ static inline bool percpu_down_read_trylock(struct percpu_rw_semaphore *sem)
*/
if (ret) {
_trace_android_vh_record_pcpu_rwsem_time_early(jiffies, sem);
_trace_android_vh_record_pcpu_rwsem_starttime(current, jiffies);
rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_);
}
@ -124,6 +130,7 @@ static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
this_cpu_dec(*sem->read_count);
rcuwait_wake_up(&sem->writer);
}
_trace_android_vh_record_pcpu_rwsem_time_early(0, sem);
_trace_android_vh_record_pcpu_rwsem_starttime(current, 0);
preempt_enable();
}

View File

@ -15,6 +15,7 @@ struct mutex;
struct rt_mutex_base;
struct rw_semaphore;
struct task_struct;
struct percpu_rw_semaphore;
DECLARE_HOOK(android_vh_mutex_wait_start,
TP_PROTO(struct mutex *lock),
@ -80,6 +81,9 @@ DECLARE_HOOK(android_vh_record_rwsem_lock_starttime,
DECLARE_HOOK(android_vh_record_pcpu_rwsem_starttime,
TP_PROTO(struct task_struct *tsk, unsigned long settime_jiffies),
TP_ARGS(tsk, settime_jiffies));
DECLARE_HOOK(android_vh_record_pcpu_rwsem_time_early,
TP_PROTO(unsigned long settime_jiffies, struct percpu_rw_semaphore *sem),
TP_ARGS(settime_jiffies, sem));
struct mutex_waiter;
DECLARE_HOOK(android_vh_alter_mutex_list_add,

View File

@ -114,6 +114,7 @@ static DEFINE_SPINLOCK(cgroup_idr_lock);
static DEFINE_SPINLOCK(cgroup_file_kn_lock);
DEFINE_PERCPU_RWSEM(cgroup_threadgroup_rwsem);
EXPORT_SYMBOL_GPL(cgroup_threadgroup_rwsem);
#define cgroup_assert_mutex_or_rcu_locked() \
RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \

View File

@ -26,6 +26,20 @@ void _trace_android_vh_record_pcpu_rwsem_starttime(struct task_struct *tsk,
}
EXPORT_SYMBOL_GPL(_trace_android_vh_record_pcpu_rwsem_starttime);
/*
* trace_android_vh_record_pcpu_rwsem_time_early is called in
* include/linux/percpu-rwsem.h by including include/hooks/dtask.h, which
* will result to build-err. So we create
* func: _trace_android_vh_record_pcpu_rwsem_time_early for percpu-rwsem.h to call.
*/
void _trace_android_vh_record_pcpu_rwsem_time_early(
unsigned long settime, struct percpu_rw_semaphore *sem)
{
trace_android_vh_record_pcpu_rwsem_time_early(settime, sem);
}
EXPORT_SYMBOL_GPL(_trace_android_vh_record_pcpu_rwsem_time_early);
int __percpu_init_rwsem(struct percpu_rw_semaphore *sem,
const char *name, struct lock_class_key *key)
{
@ -242,6 +256,8 @@ void __sched percpu_down_write(struct percpu_rw_semaphore *sem)
rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_);
trace_contention_begin(sem, LCB_F_PERCPU | LCB_F_WRITE);
trace_android_vh_record_pcpu_rwsem_time_early(jiffies, sem);
/* Notify readers to take the slow path. */
rcu_sync_enter(&sem->rss);
@ -294,6 +310,7 @@ void percpu_up_write(struct percpu_rw_semaphore *sem)
* exclusive write lock because its counting.
*/
rcu_sync_exit(&sem->rss);
trace_android_vh_record_pcpu_rwsem_time_early(0, sem);
trace_android_vh_record_pcpu_rwsem_starttime(current, 0);
}
EXPORT_SYMBOL_GPL(percpu_up_write);