Merge android11-5.4.61+ (8540985) into msm-5.4

* refs/heads/tmp-8540985:
  ANDROID: trace: sched: add sched blocked tracepoint which dumps out context of sleep.
  ANDROID: ABI: update allowed list for QCOM
  ANDROID: Update KMI_GENERATION after KMI change
  ANDROID: GKI: update the .xml file with the October 15 ABI breakages
  ANDROID: GKI: fs.h: add Android ABI padding to struct file
  ANDROID: vendor_hooks: Add a vendor data to file struct
  ANDROID: vendor_hooks: Extend the vendor data array in task_struct
  ANDROID: GKI: add fields required to enable CONFIG_TRANSPARENT_HUGEPAGE
  ANDROID: Drop abi_gki_aarch64_workarounds
  UPSTREAM: ehci-hcd: Move include to keep CRC stable
  ANDROID: GKI: update xiaomi symbol list
  ANDROID: GKI: update Vivo symbol list
  ANDROID: sysrq: add vendor hook for sysrq crash information
  ANDROID: ABI: update allowed list for galaxy
  ANDROID: GKI: update Vivo symbol list
  ANDROID: adding __nocfi to cpuidle_enter_state
  ANDROID: ABI: update allowed list for galaxy
  ANDROID: workqueue: add vendor hook for wq lockup information

Change-Id: I29b7a5396075c41257cba3d4595356df755490f1
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
This commit is contained in:
Blagovest Kolenichev 2020-10-19 09:35:40 -07:00
commit a1f16e27ca
32 changed files with 11711 additions and 11430 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -58,6 +58,7 @@
__free_pages
__get_free_pages
__get_task_comm
__get_vm_area
__getblk_gfp
__hrtimer_get_remaining
__hwspin_lock_timeout
@ -75,8 +76,11 @@
__kfifo_alloc
__kfifo_free
__kfifo_in
__kfifo_init
__kfifo_out
__kfifo_out_peek
__kfifo_to_user
__kfree_skb
__kmalloc
__kthread_init_worker
__list_add_valid
@ -228,6 +232,8 @@
arch_set_freq_scale
arch_setup_dma_ops
arch_timer_read_counter
argv_free
argv_split
arm64_const_caps_ready
atomic_notifier_call_chain
atomic_notifier_chain_register
@ -305,6 +311,7 @@
cfg80211_mgmt_tx_status
cfg80211_michael_mic_failure
cfg80211_new_sta
cfg80211_port_authorized
cfg80211_put_bss
cfg80211_ready_on_channel
cfg80211_remain_on_channel_expired
@ -318,6 +325,9 @@
cfg80211_vendor_cmd_reply
class_create_file_ns
class_destroy
class_dev_iter_exit
class_dev_iter_init
class_dev_iter_next
class_find_device
class_interface_unregister
class_unregister
@ -411,6 +421,7 @@
cpufreq_frequency_table_verify
cpufreq_generic_attr
cpufreq_generic_frequency_table_verify
cpufreq_get
cpufreq_quick_get
cpufreq_quick_get_max
cpufreq_register_driver
@ -427,6 +438,7 @@
crc32_le
crc8
crc8_populate_msb
create_function_device
crypto_alloc_shash
crypto_destroy_tfm
crypto_register_rngs
@ -546,6 +558,7 @@
devm_gpio_request
devm_gpio_request_one
devm_gpiochip_add_data
devm_gpiod_get
devm_gpiod_get_optional
devm_iio_channel_get
devm_iio_device_alloc
@ -914,6 +927,7 @@
dw_pcie_read
dw_pcie_setup_rc
dw_pcie_write
emergency_restart
enable_irq
enable_percpu_irq
end_buffer_read_sync
@ -994,10 +1008,12 @@
get_cpu_device
get_cpu_idle_time
get_device
get_mm_exe_file
get_options
get_pid_task
get_random_bytes
get_random_u32
get_task_pid
get_thermal_instance
get_unmapped_area
get_unused_fd_flags
@ -1012,6 +1028,7 @@
gether_get_dev_addr
gether_get_host_addr
gether_get_host_addr_cdc
gether_get_host_addr_u8
gether_get_ifname
gether_get_qmult
gether_register_netdev
@ -1084,6 +1101,7 @@
i2c_adapter_type
i2c_add_adapter
i2c_add_numbered_adapter
i2c_bit_add_numbered_bus
i2c_bus_type
i2c_del_adapter
i2c_del_driver
@ -1356,6 +1374,7 @@
kthread_unpark
kthread_worker_fn
ktime_get
ktime_get_coarse_with_offset
ktime_get_mono_fast_ns
ktime_get_raw
ktime_get_raw_ts64
@ -1678,6 +1697,7 @@
phy_reset
phy_set_mode_ext
physvirt_offset
pid_task
pinconf_generic_dt_node_to_map
pinctrl_add_gpio_range
pinctrl_dev_get_drvdata
@ -1883,6 +1903,7 @@
rfkill_destroy
rfkill_init_sw_state
rfkill_register
rfkill_set_sw_state
rfkill_unregister
rndis_deregister
rndis_free_response
@ -1969,6 +1990,7 @@
sdhci_set_bus_width
sdhci_setup_host
sdio_signal_irq
send_sig
send_sig_info
seq_lseek
seq_printf
@ -2018,6 +2040,7 @@
skb_copy_bits
skb_copy_datagram_iter
skb_copy_expand
skb_copy_ubufs
skb_dequeue
skb_free_datagram
skb_pull
@ -2036,6 +2059,7 @@
smp_call_function_single
smp_call_function_single_async
smp_call_on_cpu
smpboot_unregister_percpu_thread
snd_card_free
snd_card_new
snd_card_register
@ -2163,6 +2187,7 @@
sock_alloc_send_skb
sock_create_kern
sock_gettstamp
sock_i_uid
sock_init_data
sock_no_accept
sock_no_getsockopt
@ -2176,6 +2201,7 @@
sock_register
sock_release
sock_unregister
sock_wfree
sort
spi_bus_type
spi_controller_resume
@ -2231,6 +2257,7 @@
strreplace
strscpy
strsep
strspn
strstr
submit_bh
subsys_system_register
@ -2428,6 +2455,8 @@
usb_free_urb
usb_function_register
usb_function_unregister
usb_gadget_connect
usb_gadget_disconnect
usb_gadget_giveback_request
usb_gadget_map_request_by_dev
usb_gadget_set_state
@ -2617,6 +2646,7 @@
vm_unmap_ram
vmalloc
vmalloc_to_page
vmalloc_to_pfn
vmalloc_user
vmap
vmemmap

View file

@ -574,6 +574,7 @@
dma_resv_test_signaled_rcu
dma_resv_wait_timeout_rcu
dma_set_coherent_mask
__dma_request_channel
dma_set_mask
do_exit
do_wait_intr
@ -1334,11 +1335,18 @@
__mdiobus_register
mdiobus_unregister
media_create_pad_link
media_create_intf_link
media_device_cleanup
media_device_init
__media_device_register
media_device_register_entity
media_device_unregister
media_device_unregister_entity
media_devnode_create
media_devnode_remove
media_entity_pads_init
media_entity_remove_links
media_remove_intf_links
memblock_free
memchr
memcmp
@ -2681,7 +2689,9 @@
vb2_mmap
vb2_ops_wait_finish
vb2_ops_wait_prepare
vb2_plane_cookie
vb2_plane_vaddr
vb2_prepare_buf
vb2_poll
vb2_qbuf
vb2_querybuf
@ -2689,6 +2699,7 @@
vb2_queue_init
vb2_queue_release
vb2_reqbufs
vb2_request_object_is_buffer
vb2_streamoff
vb2_streamon
vb2_vmalloc_memops

View file

@ -6,6 +6,7 @@
adjust_managed_page_count
alarm_cancel
alarm_init
alarm_start
alarm_start_relative
alloc_chrdev_region
__alloc_disk_node
@ -186,6 +187,7 @@
config_ep_by_speed
config_group_init_type_name
config_item_put
console_printk
console_stop
console_suspend_enabled
__const_udelay
@ -365,6 +367,7 @@
devm_reset_controller_register
devm_rtc_device_register
devm_snd_soc_register_card
devm_snd_soc_register_component
devm_thermal_zone_of_sensor_register
devm_usb_get_phy
devm_usb_get_phy_by_phandle
@ -720,6 +723,7 @@
find_next_zero_bit
find_snd_usb_substream
find_vma
find_vpid
finish_wait
firmware_request_nowarn
fixed_phy_register
@ -784,9 +788,11 @@
gether_set_host_addr
gether_set_qmult
gether_setup_name_default
get_pid_task
get_random_bytes
get_random_u32
__get_task_comm
get_task_mm
get_unmapped_area
get_unused_fd_flags
get_user_pages
@ -852,6 +858,10 @@
i2c_get_dma_safe_msg_buf
i2c_put_dma_safe_msg_buf
i2c_register_driver
i2c_smbus_read_byte_data
i2c_smbus_read_word_data
i2c_smbus_write_byte_data
i2c_smbus_write_word_data
i2c_transfer
i2c_transfer_buffer_flags
i2c_unregister_device
@ -886,6 +896,7 @@
init_dummy_netdev
init_net
__init_rwsem
init_task
init_timer_key
init_uts_ns
init_wait_entry
@ -1051,6 +1062,7 @@
kstrtou8
kstrtouint
kstrtoull
kstrtoull_from_user
kthread_cancel_delayed_work_sync
kthread_cancel_work_sync
kthread_create_on_node
@ -1147,6 +1159,7 @@
misc_register
mmc_of_parse
mmc_send_tuning
mmput
mod_delayed_work_on
mod_node_page_state
mod_timer
@ -1400,6 +1413,7 @@
physvirt_offset
phy_unregister_fixup_for_uid
phy_write_mmd
pid_task
pinconf_generic_dt_node_to_map
pinctrl_dev_get_drvdata
pinctrl_get
@ -1466,8 +1480,10 @@
power_supply_get_drvdata
power_supply_get_property
power_supply_put
power_supply_register
power_supply_reg_notifier
power_supply_set_property
power_supply_unregister
power_supply_unreg_notifier
prandom_u32
preempt_schedule
@ -1647,6 +1663,7 @@
rndis_set_param_vendor
rndis_signal_connect
rndis_uninit
round_jiffies_relative
rpmsg_create_ept
rpmsg_destroy_ept
rpmsg_poll
@ -1671,6 +1688,7 @@
sched_clock
sched_setattr
sched_setscheduler
sched_show_task
schedule
schedule_timeout
schedule_timeout_interruptible
@ -2336,7 +2354,9 @@
__wake_up
__wake_up_locked
wake_up_process
wakeup_source_add
wakeup_source_register
wakeup_source_remove
wakeup_source_unregister
__warn_printk
wiphy_free

View file

@ -1,3 +0,0 @@
[abi_symbol_list]
# b/167230325
ehci_handshake

View file

@ -11,6 +11,11 @@
snd_soc_info_volsw_range
snd_soc_put_volsw_range
# required by cs35l45_dlkm.ko
devm_snd_soc_register_component
regcache_drop_region
snd_soc_dapm_del_routes
# required by q6_dlkm.ko
down_interruptible
__kfifo_alloc

View file

@ -93,6 +93,7 @@ CONFIG_MODVERSIONS=y
CONFIG_BLK_INLINE_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
CONFIG_GKI_HACKS_TO_FIX=y
CONFIG_GKI_OPT_FEATURES=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=y
CONFIG_MEMORY_HOTPLUG=y

View file

@ -69,6 +69,7 @@ CONFIG_MODVERSIONS=y
CONFIG_BLK_INLINE_ENCRYPTION=y
CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
CONFIG_GKI_HACKS_TO_FIX=y
CONFIG_GKI_OPT_FEATURES=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=y
CONFIG_CLEANCACHE=y

View file

@ -1,5 +1,5 @@
BRANCH=android11-5.4
KMI_GENERATION=0
KMI_GENERATION=1
CC=clang
LD=ld.lld

View file

@ -17,7 +17,6 @@ android/abi_gki_aarch64_qcom
android/abi_gki_aarch64_sunxi
android/abi_gki_aarch64_unisoc
android/abi_gki_aarch64_vivo
android/abi_gki_aarch64_workarounds
android/abi_gki_aarch64_xiaomi
"
TRIM_NONLISTED_KMI=1

View file

@ -18,6 +18,8 @@
#include <trace/hooks/topology.h>
#include <trace/hooks/debug.h>
#include <trace/hooks/minidump.h>
#include <trace/hooks/wqlockup.h>
#include <trace/hooks/sysrqcrash.h>
/*
* Export tracepoints that act as a bare tracehook (ie: have no trace event
@ -58,3 +60,5 @@ 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);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_wq_lockup_pool);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sysrq_crash);

View file

@ -194,7 +194,7 @@ int cpuidle_enter_s2idle(struct cpuidle_driver *drv, struct cpuidle_device *dev)
* @drv: cpuidle driver for this cpu
* @index: index into the states table in @drv of the state to enter
*/
int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv,
int __nocfi cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv,
int index)
{
int entered_state;

View file

@ -54,6 +54,8 @@
#include <asm/ptrace.h>
#include <asm/irq_regs.h>
#include <trace/hooks/sysrqcrash.h>
/* Whether we react on sysrq keys or just ignore them */
static int __read_mostly sysrq_enabled = CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE;
static bool __read_mostly sysrq_always_enabled;
@ -137,6 +139,8 @@ static void sysrq_handle_crash(int key)
/* release the RCU read lock before crashing */
rcu_read_unlock();
trace_android_vh_sysrq_crash(current);
panic("sysrq triggered crash\n");
}
static struct sysrq_key_op sysrq_crash_op = {

View file

@ -22,6 +22,7 @@
#include <linux/interrupt.h>
#include <linux/usb.h>
#include <linux/usb/hcd.h>
#include <linux/usb/otg.h>
#include <linux/moduleparam.h>
#include <linux/dma-mapping.h>
#include <linux/debugfs.h>

View file

@ -14,7 +14,6 @@
*/
/*-------------------------------------------------------------------------*/
#include <linux/usb/otg.h>
#define PORT_WAKE_BITS (PORT_WKOC_E|PORT_WKDISC_E|PORT_WKCONN_E)

View file

@ -44,6 +44,7 @@
#include <asm/byteorder.h>
#include <uapi/linux/fs.h>
#include <linux/android_vendor.h>
struct backing_dev_info;
struct bdi_writeback;
@ -990,6 +991,9 @@ struct file {
#endif /* #ifdef CONFIG_EPOLL */
struct address_space *f_mapping;
errseq_t f_wb_err;
ANDROID_KABI_RESERVE(1);
ANDROID_VENDOR_DATA(1);
} __randomize_layout
__attribute__((aligned(4))); /* lest something weird decides that 2 is OK */

View file

@ -309,6 +309,7 @@ static inline bool transhuge_vma_suitable(struct vm_area_struct *vma,
}
static inline void prep_transhuge_page(struct page *page) {}
static inline void free_transhuge_page(struct page *page) {}
#define transparent_hugepage_flags 0UL

View file

@ -330,7 +330,7 @@ struct mem_cgroup {
struct list_head event_list;
spinlock_t event_list_lock;
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
struct deferred_split deferred_split_queue;
#endif

View file

@ -815,7 +815,7 @@ enum compound_dtor_id {
#ifdef CONFIG_HUGETLB_PAGE
HUGETLB_PAGE_DTOR,
#endif
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
TRANSHUGE_PAGE_DTOR,
#endif
NR_COMPOUND_DTORS,

View file

@ -513,7 +513,8 @@ struct mm_struct {
#ifdef CONFIG_MMU_NOTIFIER
struct mmu_notifier_mm *mmu_notifier_mm;
#endif
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS
#if (defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)) && \
!USE_SPLIT_PMD_PTLOCKS
pgtable_t pmd_huge_pte; /* protected by page_table_lock */
#endif
#ifdef CONFIG_NUMA_BALANCING

View file

@ -698,7 +698,7 @@ struct zonelist {
extern struct page *mem_map;
#endif
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
struct deferred_split {
spinlock_t split_queue_lock;
struct list_head split_queue;
@ -791,7 +791,7 @@ typedef struct pglist_data {
unsigned long first_deferred_pfn;
#endif /* CONFIG_DEFERRED_STRUCT_PAGE_INIT */
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
struct deferred_split deferred_split_queue;
#endif

View file

@ -1452,7 +1452,7 @@ struct task_struct {
unsigned long prev_lowest_stack;
#endif
ANDROID_VENDOR_DATA_ARRAY(1, 2);
ANDROID_VENDOR_DATA_ARRAY(1, 3);
ANDROID_KABI_RESERVE(1);
ANDROID_KABI_RESERVE(2);

View file

@ -74,7 +74,7 @@ enum vm_event_item { PGPGIN, PGPGOUT,
UNEVICTABLE_PGMUNLOCKED,
UNEVICTABLE_PGCLEARED, /* on COW, page truncate */
UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
THP_FAULT_ALLOC,
THP_FAULT_FALLBACK,
THP_COLLAPSE_ALLOC,

View file

@ -643,6 +643,30 @@ DEFINE_EVENT_SCHEDSTAT(sched_stat_template, sched_stat_blocked,
TP_PROTO(struct task_struct *tsk, u64 delay),
TP_ARGS(tsk, delay));
/*
* Tracepoint for recording the cause of uninterruptible sleep.
*/
TRACE_EVENT(sched_blocked_reason,
TP_PROTO(struct task_struct *tsk),
TP_ARGS(tsk),
TP_STRUCT__entry(
__field( pid_t, pid )
__field( void*, caller )
__field( bool, io_wait )
),
TP_fast_assign(
__entry->pid = tsk->pid;
__entry->caller = (void *)get_wchan(tsk);
__entry->io_wait = tsk->in_iowait;
),
TP_printk("pid=%d iowait=%d caller=%pS", __entry->pid, __entry->io_wait, __entry->caller)
);
/*
* Tracepoint for accounting runtime (time the task is executing
* on a CPU).

View file

@ -0,0 +1,24 @@
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM sysrqcrash
#define TRACE_INCLUDE_PATH trace/hooks
#if !defined(_TRACE_HOOK_SYSRQCRASH_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_SYSRQCRASH_H
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
/*
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
DECLARE_HOOK(android_vh_sysrq_crash,
TP_PROTO(void *data),
TP_ARGS(data));
#else
#define trace_android_vh_sysrq_crash(data)
#endif
#endif /* _TRACE_HOOK_SYSRQCRASH_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View file

@ -0,0 +1,24 @@
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM wqlockup
#define TRACE_INCLUDE_PATH trace/hooks
#if !defined(_TRACE_HOOK_WQLOCKUP_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_WQLOCKUP_H
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
/*
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
DECLARE_HOOK(android_vh_wq_lockup_pool,
TP_PROTO(int cpu, unsigned long pool_ts),
TP_ARGS(cpu, pool_ts));
#else
#define trace_android_vh_wq_lockup_pool(cpu, pool_ts)
#endif
#endif /* _TRACE_HOOK_WQLOCKUP_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View file

@ -208,3 +208,11 @@ config GKI_HACKS_TO_FIX
Unless you are building a GKI kernel to be used with modules
built from a different config, say N here.
config GKI_OPT_FEATURES
bool "Optional GKI features"
help
Config option that should be enabled in GKI kernels to allow optional
GKI features be enabled or disabled without ABI breakage.
If you are not building a GKI kernel, say N here.

View file

@ -994,6 +994,7 @@ update_stats_enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se)
}
trace_sched_stat_blocked(tsk, delta);
trace_sched_blocked_reason(tsk);
/*
* Blocking time is in units of nanosecs, so shift by

View file

@ -55,6 +55,10 @@
#include "workqueue_internal.h"
#include <trace/hooks/wqlockup.h>
/* events/workqueue.h uses default TRACE_INCLUDE_PATH */
#undef TRACE_INCLUDE_PATH
enum {
/*
* worker_pool flags
@ -5776,6 +5780,7 @@ static void wq_watchdog_timer_fn(struct timer_list *unused)
pr_cont_pool_info(pool);
pr_cont(" stuck for %us!\n",
jiffies_to_msecs(jiffies - pool_ts) / 1000);
trace_android_vh_wq_lockup_pool(pool->cpu, pool_ts);
}
}

View file

@ -309,7 +309,7 @@ compound_page_dtor * const compound_page_dtors[] = {
#ifdef CONFIG_HUGETLB_PAGE
free_huge_page,
#endif
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
free_transhuge_page,
#endif
};

View file

@ -1259,7 +1259,7 @@ const char * const vmstat_text[] = {
"unevictable_pgs_cleared",
"unevictable_pgs_stranded",
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_GKI_OPT_FEATURES)
"thp_fault_alloc",
"thp_fault_fallback",
"thp_collapse_alloc",