From 9520a2129fbeb10150ff8d7e08ed26662a27d334 Mon Sep 17 00:00:00 2001 From: Ryun Park Date: Wed, 28 Jul 2021 20:44:52 +0900 Subject: [PATCH 01/12] ANDROID: ABI: Update allowed list for galaxy Leaf changes summary: 31 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 27 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 4 Added variables 27 Added functions: [A] 'function int __traceiter_android_rvh_die_kernel_fault(void*, pt_regs*, unsigned int, unsigned long int, const char*)' [A] 'function int __traceiter_android_rvh_do_mem_abort(void*, pt_regs*, unsigned int, unsigned long int, const char*)' [A] 'function int __traceiter_android_rvh_do_sp_pc_abort(void*, pt_regs*, unsigned int, unsigned long int, bool)' [A] 'function int __traceiter_android_rvh_report_bug(void*, const char*, unsigned int, unsigned long int)' [A] 'function int __traceiter_android_vh_kfree_skb(void*, sk_buff*)' [A] 'function int __traceiter_android_vh_ptype_head(void*, const packet_type*, list_head*)' [A] 'function int blkdev_fsync(file*, loff_t, loff_t, int)' [A] 'function void bt_info(const char*, ...)' [A] 'function void cpufreq_update_policy(unsigned int)' [A] 'function device* create_function_device(char*)' [A] 'function void drm_edid_get_monitor_name(edid*, char*, int)' [A] 'function void file_ra_state_init(file_ra_state*, address_space*)' [A] 'function ssize_t generic_file_read_iter(kiocb*, iov_iter*)' [A] 'function ssize_t generic_perform_write(file*, iov_iter*, loff_t)' [A] 'function ssize_t generic_write_checks(kiocb*, iov_iter*)' [A] 'function u64 get_random_u64()' [A] 'function gpio_chip* gpiochip_find(void*, int (gpio_chip*, void*)*)' [A] 'function int gpiod_cansleep(const gpio_desc*)' [A] 'function gpio_chip* gpiod_to_chip(const gpio_desc*)' [A] 'function int i2c_bit_add_numbered_bus(i2c_adapter*)' [A] 'function void iov_iter_kvec(iov_iter*, unsigned int, const kvec*, unsigned long int, size_t)' [A] 'function void netlink_ack(sk_buff*, nlmsghdr*, int, const netlink_ext_ack*)' [A] 'function device_node* of_find_all_nodes(device_node*)' [A] 'function int platform_add_devices(platform_device**, int)' [A] 'function int pstore_register(pstore_info*)' [A] 'function void pstore_unregister(pstore_info*)' [A] 'function int vfs_fsync_range(file*, loff_t, loff_t, int)' 4 Added variables: [A] 'tracepoint __tracepoint_android_rvh_die_kernel_fault' [A] 'tracepoint __tracepoint_android_rvh_do_mem_abort' [A] 'tracepoint __tracepoint_android_rvh_do_sp_pc_abort' [A] 'tracepoint __tracepoint_android_rvh_report_bug' Bug: 194879316 Change-Id: I589e3b5942aa61c98f8235087875569b823165d0 Signed-off-by: Ryun Park --- android/abi_gki_aarch64.xml | 318 ++++++++++++++++++++++++++++++++- android/abi_gki_aarch64_galaxy | 145 +++++++++++++++ 2 files changed, 461 insertions(+), 2 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 99419ee33dc4..524faae3504e 100755 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -257,6 +257,9 @@ + + + @@ -282,6 +285,7 @@ + @@ -370,6 +374,7 @@ + @@ -383,6 +388,7 @@ + @@ -748,6 +754,7 @@ + @@ -778,6 +785,7 @@ + @@ -961,6 +969,7 @@ + @@ -979,6 +988,7 @@ + @@ -1705,6 +1715,7 @@ + @@ -1993,6 +2004,7 @@ + @@ -2080,10 +2092,13 @@ + + + @@ -2112,6 +2127,7 @@ + @@ -2147,6 +2163,7 @@ + @@ -2156,6 +2173,7 @@ + @@ -2171,6 +2189,7 @@ + @@ -2229,6 +2248,7 @@ + @@ -2437,6 +2457,7 @@ + @@ -2884,6 +2905,7 @@ + @@ -2962,6 +2984,7 @@ + @@ -3282,6 +3305,7 @@ + @@ -3386,6 +3410,8 @@ + + @@ -4800,6 +4826,7 @@ + @@ -5009,6 +5036,9 @@ + + + @@ -5034,6 +5064,7 @@ + @@ -7381,6 +7412,11 @@ + + + + + @@ -7880,6 +7916,10 @@ + + + + @@ -10693,6 +10733,7 @@ + @@ -13047,6 +13088,7 @@ + @@ -13060,6 +13102,19 @@ + + + + + + + + + + + + + @@ -28514,6 +28569,7 @@ + @@ -28904,6 +28960,10 @@ + + + + @@ -36116,6 +36176,7 @@ + @@ -42711,6 +42772,7 @@ + @@ -43676,6 +43738,7 @@ + @@ -51095,6 +51158,7 @@ + @@ -52861,6 +52925,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -54785,7 +54884,7 @@ - + @@ -60739,6 +60838,7 @@ + @@ -63174,6 +63274,7 @@ + @@ -76699,6 +76800,7 @@ + @@ -80196,6 +80298,7 @@ + @@ -89880,6 +89983,7 @@ + @@ -93788,6 +93892,7 @@ + @@ -98101,7 +98206,7 @@ - + @@ -98327,6 +98432,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -99626,6 +99778,11 @@ + + + + + @@ -102691,6 +102848,7 @@ + @@ -105295,6 +105453,10 @@ + + + + @@ -109671,6 +109833,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -109839,6 +110025,13 @@ + + + + + + + @@ -110401,6 +110594,11 @@ + + + + + @@ -110482,6 +110680,12 @@ + + + + + + @@ -111094,6 +111298,9 @@ + + + @@ -111119,6 +111326,7 @@ + @@ -112732,6 +112940,13 @@ + + + + + + + @@ -112957,6 +113172,11 @@ + + + + + @@ -113879,6 +114099,10 @@ + + + + @@ -113962,6 +114186,10 @@ + + + + @@ -117849,6 +118077,12 @@ + + + + + + @@ -119339,6 +119573,11 @@ + + + + + @@ -119805,6 +120044,11 @@ + + + + + @@ -119821,10 +120065,21 @@ + + + + + + + + + + + @@ -119971,6 +120226,9 @@ + + + @@ -120155,6 +120413,11 @@ + + + + + @@ -120200,6 +120463,10 @@ + + + + @@ -120271,6 +120538,10 @@ + + + + @@ -120545,6 +120816,10 @@ + + + + @@ -121611,6 +121886,14 @@ + + + + + + + + @@ -123863,6 +124146,13 @@ + + + + + + + @@ -124264,6 +124554,10 @@ + + + + @@ -125921,6 +126215,11 @@ + + + + + @@ -126443,6 +126742,14 @@ + + + + + + + + @@ -133672,6 +133979,13 @@ + + + + + + + diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy index c944f9221ae1..a6d6c37a2f7a 100644 --- a/android/abi_gki_aarch64_galaxy +++ b/android/abi_gki_aarch64_galaxy @@ -223,6 +223,117 @@ __tasklet_schedule __trace_bprintk __trace_bputs __trace_printk +__traceiter_android_rvh_account_irq +__traceiter_android_rvh_build_perf_domains +__traceiter_android_rvh_can_migrate_task +__traceiter_android_rvh_check_preempt_wakeup +__traceiter_android_rvh_cpu_cgroup_attach +__traceiter_android_rvh_cpu_cgroup_can_attach +__traceiter_android_rvh_cpu_cgroup_online +__traceiter_android_rvh_cpu_overutilized +__traceiter_android_rvh_cpufreq_transition +__traceiter_android_rvh_dequeue_task +__traceiter_android_rvh_die_kernel_fault +__traceiter_android_rvh_do_mem_abort +__traceiter_android_rvh_do_sp_pc_abort +__traceiter_android_rvh_enqueue_task +__traceiter_android_rvh_find_busiest_queue +__traceiter_android_rvh_find_energy_efficient_cpu +__traceiter_android_rvh_find_lowest_rq +__traceiter_android_rvh_flush_task +__traceiter_android_rvh_irqs_disable +__traceiter_android_rvh_irqs_enable +__traceiter_android_rvh_migrate_queued_task +__traceiter_android_rvh_new_task_stats +__traceiter_android_rvh_pick_next_entity +__traceiter_android_rvh_place_entity +__traceiter_android_rvh_preempt_disable +__traceiter_android_rvh_preempt_enable +__traceiter_android_rvh_replace_next_task_fair +__traceiter_android_rvh_report_bug +__traceiter_android_rvh_resume_cpus +__traceiter_android_rvh_sched_balance_rt +__traceiter_android_rvh_sched_cpu_dying +__traceiter_android_rvh_sched_cpu_starting +__traceiter_android_rvh_sched_exec +__traceiter_android_rvh_sched_fork +__traceiter_android_rvh_sched_fork_init +__traceiter_android_rvh_sched_newidle_balance +__traceiter_android_rvh_sched_nohz_balancer_kick +__traceiter_android_rvh_sched_rebalance_domains +__traceiter_android_rvh_schedule +__traceiter_android_rvh_schedule_bug +__traceiter_android_rvh_select_fallback_rq +__traceiter_android_rvh_select_task_rq_fair +__traceiter_android_rvh_select_task_rq_rt +__traceiter_android_rvh_set_gfp_zone_flags +__traceiter_android_rvh_set_iowait +__traceiter_android_rvh_set_readahead_gfp_mask +__traceiter_android_rvh_set_skip_swapcache_flags +__traceiter_android_rvh_set_task_cpu +__traceiter_android_rvh_tick_entry +__traceiter_android_rvh_try_to_wake_up +__traceiter_android_rvh_try_to_wake_up_success +__traceiter_android_rvh_ttwu_cond +__traceiter_android_rvh_typec_tcpci_chk_contaminant +__traceiter_android_rvh_typec_tcpci_get_vbus +__traceiter_android_rvh_uclamp_eff_get +__traceiter_android_rvh_update_cpu_capacity +__traceiter_android_rvh_update_cpus_allowed +__traceiter_android_rvh_update_misfit_status +__traceiter_android_rvh_util_est_update +__traceiter_android_rvh_wake_up_new_task +__traceiter_android_vh_allow_domain_state +__traceiter_android_vh_arch_set_freq_scale +__traceiter_android_vh_binder_restore_priority +__traceiter_android_vh_binder_set_priority +__traceiter_android_vh_binder_transaction_init +__traceiter_android_vh_binder_wakeup_ilocked +__traceiter_android_vh_cma_alloc_finish +__traceiter_android_vh_cma_alloc_start +__traceiter_android_vh_cpu_idle_enter +__traceiter_android_vh_cpu_idle_exit +__traceiter_android_vh_dump_throttled_rt_tasks +__traceiter_android_vh_enable_thermal_genl_check +__traceiter_android_vh_ep_create_wakeup_source +__traceiter_android_vh_freq_table_limits +__traceiter_android_vh_ftrace_dump_buffer +__traceiter_android_vh_ftrace_format_check +__traceiter_android_vh_ftrace_oops_enter +__traceiter_android_vh_ftrace_oops_exit +__traceiter_android_vh_ftrace_size_check +__traceiter_android_vh_iommu_setup_dma_ops +__traceiter_android_vh_ipi_stop +__traceiter_android_vh_is_fpsimd_save +__traceiter_android_vh_jiffies_update +__traceiter_android_vh_kfree_skb +__traceiter_android_vh_logbuf +__traceiter_android_vh_logbuf_pr_cont +__traceiter_android_vh_meminfo_proc_show +__traceiter_android_vh_pagecache_get_page +__traceiter_android_vh_printk_hotplug +__traceiter_android_vh_ptype_head +__traceiter_android_vh_rmqueue +__traceiter_android_vh_scheduler_tick +__traceiter_android_vh_show_max_freq +__traceiter_android_vh_show_mem +__traceiter_android_vh_show_resume_epoch_val +__traceiter_android_vh_show_suspend_epoch_val +__traceiter_android_vh_timer_calc_index +__traceiter_android_vh_timerfd_create +__traceiter_android_vh_typec_store_partner_src_caps +__traceiter_android_vh_typec_tcpci_override_toggling +__traceiter_android_vh_typec_tcpm_adj_current_limit +__traceiter_android_vh_typec_tcpm_get_timer +__traceiter_android_vh_ufs_check_int_errors +__traceiter_android_vh_ufs_compl_command +__traceiter_android_vh_ufs_fill_prdt +__traceiter_android_vh_ufs_prepare_command +__traceiter_android_vh_ufs_send_command +__traceiter_android_vh_ufs_send_tm_command +__traceiter_android_vh_ufs_send_uic_command +__traceiter_android_vh_ufs_update_sdev +__traceiter_android_vh_ufs_update_sysfs __traceiter_clock_set_rate __traceiter_cpu_frequency __traceiter_dma_fence_emit @@ -241,6 +352,9 @@ __tracepoint_android_rvh_cpu_cgroup_online __tracepoint_android_rvh_cpu_overutilized __tracepoint_android_rvh_cpufreq_transition __tracepoint_android_rvh_dequeue_task +__tracepoint_android_rvh_die_kernel_fault +__tracepoint_android_rvh_do_mem_abort +__tracepoint_android_rvh_do_sp_pc_abort __tracepoint_android_rvh_enqueue_task __tracepoint_android_rvh_find_busiest_queue __tracepoint_android_rvh_find_energy_efficient_cpu @@ -255,6 +369,7 @@ __tracepoint_android_rvh_place_entity __tracepoint_android_rvh_preempt_disable __tracepoint_android_rvh_preempt_enable __tracepoint_android_rvh_replace_next_task_fair +__tracepoint_android_rvh_report_bug __tracepoint_android_rvh_resume_cpus __tracepoint_android_rvh_sched_balance_rt __tracepoint_android_rvh_sched_cpu_dying @@ -308,9 +423,11 @@ __tracepoint_android_vh_ftrace_oops_exit __tracepoint_android_vh_ftrace_size_check __tracepoint_android_vh_iommu_setup_dma_ops __tracepoint_android_vh_ipi_stop +__tracepoint_android_vh_is_fpsimd_save __tracepoint_android_vh_jiffies_update __tracepoint_android_vh_kfree_skb __tracepoint_android_vh_logbuf +__tracepoint_android_vh_logbuf_pr_cont __tracepoint_android_vh_meminfo_proc_show __tracepoint_android_vh_pagecache_get_page __tracepoint_android_vh_printk_hotplug @@ -318,6 +435,7 @@ __tracepoint_android_vh_ptype_head __tracepoint_android_vh_rmqueue __tracepoint_android_vh_scheduler_tick __tracepoint_android_vh_show_max_freq +__tracepoint_android_vh_show_mem __tracepoint_android_vh_show_resume_epoch_val __tracepoint_android_vh_show_suspend_epoch_val __tracepoint_android_vh_timer_calc_index @@ -607,6 +725,7 @@ blk_sync_queue blk_unregister_region blk_update_request blk_verify_command +blkdev_fsync blkdev_get_by_dev blkdev_get_by_path blkdev_issue_flush @@ -635,6 +754,7 @@ bpf_trace_run9 bpf_warn_invalid_xdp_action bsearch bt_err +bt_info build_skb bus_find_device bus_for_each_dev @@ -680,6 +800,7 @@ class_destroy class_find_device class_for_each_device class_interface_unregister +class_remove_file_ns class_unregister cleancache_register_ops cleanup_srcu_struct @@ -814,6 +935,7 @@ cpufreq_table_index_unsorted cpufreq_this_cpu_can_update cpufreq_unregister_driver cpufreq_unregister_notifier +cpufreq_update_policy cpuhp_tasks_frozen cpuidle_governor_latency_req cpuidle_register_governor @@ -827,6 +949,7 @@ cpus_read_unlock crc32_le crc8 crc8_populate_msb +create_function_device crypto_aead_encrypt crypto_aead_setauthsize crypto_aead_setkey @@ -1438,6 +1561,7 @@ drm_dp_update_payload_part1 drm_dp_update_payload_part2 drm_edid_block_valid drm_edid_duplicate +drm_edid_get_monitor_name drm_edid_header_is_valid drm_edid_is_valid drm_edid_to_sad @@ -1714,6 +1838,7 @@ fasync_helper fd_install fget file_path +file_ra_state_init filp_close filp_open_block find_get_pid @@ -1726,6 +1851,7 @@ find_vma find_vpid finish_wait firmware_request_nowarn +fixed_size_llseek flow_keys_basic_dissector flush_dcache_page flush_delayed_work @@ -1783,9 +1909,12 @@ gen_pool_virt_to_phys generic_delete_inode generic_device_group generic_file_llseek +generic_file_read_iter generic_handle_irq generic_iommu_put_resv_regions generic_mii_ioctl +generic_perform_write +generic_write_checks genl_notify genl_register_family genl_unregister_family @@ -1805,6 +1934,7 @@ get_pid_task get_random_bytes get_random_bytes_arch get_random_u32 +get_random_u64 get_sg_io_hdr get_state_synchronize_rcu get_task_exe_file @@ -1839,6 +1969,7 @@ gpio_request_one gpio_to_desc gpiochip_add_data_with_key gpiochip_add_pin_range +gpiochip_find gpiochip_generic_config gpiochip_generic_free gpiochip_generic_request @@ -1848,6 +1979,7 @@ gpiochip_lock_as_irq gpiochip_populate_parent_fwspec_fourcell gpiochip_remove gpiochip_unlock_as_irq +gpiod_cansleep gpiod_count gpiod_direction_input gpiod_direction_output @@ -1863,6 +1995,7 @@ gpiod_set_raw_value gpiod_set_raw_value_cansleep gpiod_set_value gpiod_set_value_cansleep +gpiod_to_chip gpiod_to_irq gro_cells_destroy gro_cells_init @@ -1918,6 +2051,7 @@ i2c_adapter_type i2c_add_adapter i2c_add_numbered_adapter i2c_bit_add_bus +i2c_bit_add_numbered_bus i2c_bus_type i2c_client_type i2c_del_adapter @@ -1998,6 +2132,7 @@ iio_device_free iio_device_unregister iio_push_to_buffers iio_read_channel_processed +iio_read_channel_raw import_iovec in4_pton in6_pton @@ -2098,6 +2233,7 @@ iommu_unmap iommu_unregister_device_fault_handler iounmap iov_iter_bvec +iov_iter_kvec ip_compute_csum ip_send_check ipi_desc_get @@ -2202,6 +2338,8 @@ kmem_cache_destroy kmem_cache_free kmemdup kmemdup_nul +kmsg_dump_get_line +kmsg_dump_rewind kobj_sysfs_ops kobject_add kobject_create_and_add @@ -2443,6 +2581,7 @@ mutex_lock_interruptible mutex_trylock mutex_trylock_recursive mutex_unlock +name_to_dev_t names_cachep napi_complete_done napi_consume_skb @@ -2482,6 +2621,7 @@ netif_set_real_num_tx_queues netif_stacked_transfer_operstate netif_tx_stop_all_queues netif_tx_wake_queue +netlink_ack netlink_broadcast netlink_capable netlink_has_listeners @@ -2555,6 +2695,7 @@ of_dma_controller_register of_dma_is_coherent of_drm_find_bridge of_drm_find_panel +of_find_all_nodes of_find_compatible_node of_find_device_by_node of_find_i2c_adapter_by_node @@ -2834,6 +2975,7 @@ pinctrl_utils_free_map pipe_lock pipe_unlock pktgen_xfrm_outer_mode_output +platform_add_devices platform_bus_type platform_device_add platform_device_add_data @@ -2934,6 +3076,8 @@ ps2_init ps2_sendbyte ps2_sliced_command pskb_expand_head +pstore_register +pstore_unregister put_device put_disk put_iova_domain @@ -4177,6 +4321,7 @@ vchan_init vchan_tx_desc_free vchan_tx_submit vfree +vfs_fsync_range video_devdata video_device_alloc video_device_release From d479d97cb774a7ea34f24ed4098fe0e8b9ecc992 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 10 Aug 2021 09:10:15 +0200 Subject: [PATCH 02/12] FROMGIT: Revert "usb: dwc3: gadget: Use list_replace_init() before traversing lists" This reverts commit d25d85061bd856d6be221626605319154f9b5043 as it is reported to cause problems on many different types of boards. Reported-by: Thinh Nguyen Reported-by: John Stultz Cc: Ray Chi Link: https://lore.kernel.org/r/CANcMJZCEVxVLyFgLwK98hqBEdc0_n4P0x_K6Gih8zNH3ouzbJQ@mail.gmail.com Fixes: d25d85061bd8 ("usb: dwc3: gadget: Use list_replace_init() before traversing lists") Cc: stable Cc: Felipe Balbi Cc: Wesley Cheng Signed-off-by: Greg Kroah-Hartman (cherry picked from commit 664cc971fb259007e49cc8a3ac43b0787d89443f https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-linus) Bug: 195570448 Signed-off-by: Greg Kroah-Hartman Change-Id: I211e8ab42340d18f7f342ff5bc4fb3efe37e1f2e --- drivers/usb/dwc3/gadget.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 4e8af37da25f..2b8377dbbab5 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1924,13 +1924,9 @@ static void dwc3_gadget_ep_cleanup_cancelled_requests(struct dwc3_ep *dep) { struct dwc3_request *req; struct dwc3_request *tmp; - struct list_head local; struct dwc3 *dwc = dep->dwc; -restart: - list_replace_init(&dep->cancelled_list, &local); - - list_for_each_entry_safe(req, tmp, &local, list) { + list_for_each_entry_safe(req, tmp, &dep->cancelled_list, list) { dwc3_gadget_ep_skip_trbs(dep, req); switch (req->status) { case DWC3_REQUEST_STATUS_DISCONNECTED: @@ -1948,9 +1944,6 @@ static void dwc3_gadget_ep_cleanup_cancelled_requests(struct dwc3_ep *dep) break; } } - - if (!list_empty(&dep->cancelled_list)) - goto restart; } static int dwc3_gadget_ep_dequeue(struct usb_ep *ep, @@ -3218,12 +3211,8 @@ static void dwc3_gadget_ep_cleanup_completed_requests(struct dwc3_ep *dep, { struct dwc3_request *req; struct dwc3_request *tmp; - struct list_head local; -restart: - list_replace_init(&dep->started_list, &local); - - list_for_each_entry_safe(req, tmp, &local, list) { + list_for_each_entry_safe(req, tmp, &dep->started_list, list) { int ret; ret = dwc3_gadget_ep_cleanup_completed_request(dep, event, @@ -3231,9 +3220,6 @@ static void dwc3_gadget_ep_cleanup_completed_requests(struct dwc3_ep *dep, if (ret) break; } - - if (!list_empty(&dep->started_list)) - goto restart; } static bool dwc3_gadget_ep_should_continue(struct dwc3_ep *dep) From ac42699756c90e251da737ae4a1ca5cbb4a7d8bb Mon Sep 17 00:00:00 2001 From: Quentin Perret Date: Thu, 5 Aug 2021 11:21:53 +0100 Subject: [PATCH 03/12] BACKPORT: FROMGIT: sched: Fix UCLAMP_FLAG_IDLE setting The UCLAMP_FLAG_IDLE flag is set on a runqueue when dequeueing the last uclamp active task (that is, when buckets.tasks reaches 0 for all buckets) to maintain the last uclamp.max and prevent blocked util from suddenly becoming visible. However, there is an asymmetry in how the flag is set and cleared which can lead to having the flag set whilst there are active tasks on the rq. Specifically, the flag is cleared in the uclamp_rq_inc() path, which is called at enqueue time, but set in uclamp_rq_dec_id() which is called both when dequeueing a task _and_ in the update_uclamp_active() path. As a result, when both uclamp_rq_{dec,ind}_id() are called from update_uclamp_active(), the flag ends up being set but not cleared, hence leaving the runqueue in a broken state. Fix this by clearing the flag in update_uclamp_active() as well. Fixes: e496187da710 ("sched/uclamp: Enforce last task's UCLAMP_MAX") Reported-by: Rick Yiu Signed-off-by: Quentin Perret Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Qais Yousef Tested-by: Dietmar Eggemann Link: https://lore.kernel.org/r/20210805102154.590709-2-qperret@google.com [ qperret: BACKPORT due to trivial cherry-pick conflict caused by 0213b7083e81 ("sched/uclamp: Fix uclamp_tg_restrict()") missing from 5.10. ] Bug: 192559209 (cherry picked from commit ca4984a7dd863f3e1c0df775ae3e744bff24c303 git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core) Signed-off-by: Quentin Perret Change-Id: I7b3418e553ba0f06dd5ef6f0d38a99c3210ae897 --- kernel/sched/core.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 36521a857126..a104db879cdf 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1321,6 +1321,23 @@ static inline void uclamp_rq_dec(struct rq *rq, struct task_struct *p) uclamp_rq_dec_id(rq, p, clamp_id); } +static inline void uclamp_rq_reinc_id(struct rq *rq, struct task_struct *p, + enum uclamp_id clamp_id) +{ + if (!p->uclamp[clamp_id].active) + return; + + uclamp_rq_dec_id(rq, p, clamp_id); + uclamp_rq_inc_id(rq, p, clamp_id); + + /* + * Make sure to clear the idle flag if we've transiently reached 0 + * active tasks on rq. + */ + if (clamp_id == UCLAMP_MAX && (rq->uclamp_flags & UCLAMP_FLAG_IDLE)) + rq->uclamp_flags &= ~UCLAMP_FLAG_IDLE; +} + static inline void uclamp_update_active(struct task_struct *p, enum uclamp_id clamp_id) { @@ -1343,10 +1360,7 @@ uclamp_update_active(struct task_struct *p, enum uclamp_id clamp_id) * affecting a valid clamp bucket, the next time it's enqueued, * it will already see the updated clamp bucket value. */ - if (p->uclamp[clamp_id].active) { - uclamp_rq_dec_id(rq, p, clamp_id); - uclamp_rq_inc_id(rq, p, clamp_id); - } + uclamp_rq_reinc_id(rq, p, clamp_id); task_rq_unlock(rq, p, &rf); } From 4bb5a5c55bcd47c52dbfb3f050671fb5d7c24b8d Mon Sep 17 00:00:00 2001 From: Quentin Perret Date: Tue, 27 Jul 2021 11:11:01 +0100 Subject: [PATCH 04/12] FROMGIT: sched/deadline: Fix reset_on_fork reporting of DL tasks It is possible for sched_getattr() to incorrectly report the state of the reset_on_fork flag when called on a deadline task. Indeed, if the flag was set on a deadline task using sched_setattr() with flags (SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_KEEP_PARAMS), then p->sched_reset_on_fork will be set, but __setscheduler() will bail out early, which means that the dl_se->flags will not get updated by __setscheduler_params()->__setparam_dl(). Consequently, if sched_getattr() is then called on the task, __getparam_dl() will override kattr.sched_flags with the now out-of-date copy in dl_se->flags and report the stale value to userspace. To fix this, make sure to only copy the flags that are relevant to sched_deadline to and from the dl_se->flags field. Signed-off-by: Quentin Perret Signed-off-by: Peter Zijlstra (Intel) Link: https://lore.kernel.org/r/20210727101103.2729607-2-qperret@google.com Bug: 190237315 (cherry picked from commit f95091536f78971b269ec321b057b8d630b0ad8a git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core) Signed-off-by: Quentin Perret Change-Id: I251a433e0ddde6b63881f92821bc0d47c1693a02 --- kernel/sched/deadline.c | 7 ++++--- kernel/sched/sched.h | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index e7525f2caa58..a09dfcdbe055 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2704,7 +2704,7 @@ void __setparam_dl(struct task_struct *p, const struct sched_attr *attr) dl_se->dl_runtime = attr->sched_runtime; dl_se->dl_deadline = attr->sched_deadline; dl_se->dl_period = attr->sched_period ?: dl_se->dl_deadline; - dl_se->flags = attr->sched_flags; + dl_se->flags = attr->sched_flags & SCHED_DL_FLAGS; dl_se->dl_bw = to_ratio(dl_se->dl_period, dl_se->dl_runtime); dl_se->dl_density = to_ratio(dl_se->dl_deadline, dl_se->dl_runtime); } @@ -2717,7 +2717,8 @@ void __getparam_dl(struct task_struct *p, struct sched_attr *attr) attr->sched_runtime = dl_se->dl_runtime; attr->sched_deadline = dl_se->dl_deadline; attr->sched_period = dl_se->dl_period; - attr->sched_flags = dl_se->flags; + attr->sched_flags &= ~SCHED_DL_FLAGS; + attr->sched_flags |= dl_se->flags; } /* @@ -2814,7 +2815,7 @@ bool dl_param_changed(struct task_struct *p, const struct sched_attr *attr) if (dl_se->dl_runtime != attr->sched_runtime || dl_se->dl_deadline != attr->sched_deadline || dl_se->dl_period != attr->sched_period || - dl_se->flags != attr->sched_flags) + dl_se->flags != (attr->sched_flags & SCHED_DL_FLAGS)) return true; return false; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index e21ffcae3508..d612e837764e 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -228,6 +228,8 @@ static inline void update_avg(u64 *avg, u64 sample) */ #define SCHED_FLAG_SUGOV 0x10000000 +#define SCHED_DL_FLAGS (SCHED_FLAG_RECLAIM | SCHED_FLAG_DL_OVERRUN | SCHED_FLAG_SUGOV) + static inline bool dl_entity_is_special(struct sched_dl_entity *dl_se) { #ifdef CONFIG_CPU_FREQ_GOV_SCHEDUTIL From aaf62dc81649e0a8f48674cd76ee50a15c6ac75c Mon Sep 17 00:00:00 2001 From: Quentin Perret Date: Tue, 27 Jul 2021 11:11:02 +0100 Subject: [PATCH 05/12] FROMGIT: sched: Don't report SCHED_FLAG_SUGOV in sched_getattr() SCHED_FLAG_SUGOV is supposed to be a kernel-only flag that userspace cannot interact with. However, sched_getattr() currently reports it in sched_flags if called on a sugov worker even though it is not actually defined in a UAPI header. To avoid this, make sure to clean-up the sched_flags field in sched_getattr() before returning to userspace. Signed-off-by: Quentin Perret Signed-off-by: Peter Zijlstra (Intel) Link: https://lore.kernel.org/r/20210727101103.2729607-3-qperret@google.com Bug: 190237315 (cherry picked from commit 7ad721bf10718a4e480a27ded8bb16b8f6feb2d1 git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core) Signed-off-by: Quentin Perret Change-Id: Ib998d497fc38a7f8e6ccb80119336c9ac30719b7 --- kernel/sched/core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index a104db879cdf..a537028d19fd 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6116,6 +6116,7 @@ SYSCALL_DEFINE4(sched_getattr, pid_t, pid, struct sched_attr __user *, uattr, kattr.sched_priority = p->rt_priority; else kattr.sched_nice = task_nice(p); + kattr.sched_flags &= SCHED_FLAG_ALL; #ifdef CONFIG_UCLAMP_TASK /* From bfc334cc0bdd70d94e63a029af54753f832d3713 Mon Sep 17 00:00:00 2001 From: Quentin Perret Date: Thu, 5 Aug 2021 11:21:54 +0100 Subject: [PATCH 06/12] FROMGIT: sched: Skip priority checks with SCHED_FLAG_KEEP_PARAMS SCHED_FLAG_KEEP_PARAMS can be passed to sched_setattr to specify that the call must not touch scheduling parameters (nice or priority). This is particularly handy for uclamp when used in conjunction with SCHED_FLAG_KEEP_POLICY as that allows to issue a syscall that only impacts uclamp values. However, sched_setattr always checks whether the priorities and nice values passed in sched_attr are valid first, even if those never get used down the line. This is useless at best since userspace can trivially bypass this check to set the uclamp values by specifying low priorities. However, it is cumbersome to do so as there is no single expression of this that skips both RT and CFS checks at once. As such, userspace needs to query the task policy first with e.g. sched_getattr and then set sched_attr.sched_priority accordingly. This is racy and slower than a single call. As the priority and nice checks are useless when SCHED_FLAG_KEEP_PARAMS is specified, simply inherit them in this case to match the policy inheritance of SCHED_FLAG_KEEP_POLICY. Reported-by: Wei Wang Signed-off-by: Quentin Perret Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Dietmar Eggemann Reviewed-by: Qais Yousef Link: https://lore.kernel.org/r/20210805102154.590709-3-qperret@google.com Bug: 190237315 (cherry picked from commit f4dddf90d58d77b48492b775868af4041a217f4c git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core) Signed-off-by: Quentin Perret Change-Id: Ifdbc9262b82c7f5c0d34952ece07770a53e3f6a5 --- kernel/sched/core.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index a537028d19fd..0571b9efb7e2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5901,6 +5901,16 @@ static int sched_copy_attr(struct sched_attr __user *uattr, struct sched_attr *a return -E2BIG; } +static void get_params(struct task_struct *p, struct sched_attr *attr) +{ + if (task_has_dl_policy(p)) + __getparam_dl(p, attr); + else if (task_has_rt_policy(p)) + attr->sched_priority = p->rt_priority; + else + attr->sched_nice = task_nice(p); +} + /** * sys_sched_setscheduler - set/change the scheduler policy and RT priority * @pid: the pid in question. @@ -5962,6 +5972,8 @@ SYSCALL_DEFINE3(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr, rcu_read_unlock(); if (likely(p)) { + if (attr.sched_flags & SCHED_FLAG_KEEP_PARAMS) + get_params(p, &attr); retval = sched_setattr(p, &attr); put_task_struct(p); } @@ -6110,12 +6122,7 @@ SYSCALL_DEFINE4(sched_getattr, pid_t, pid, struct sched_attr __user *, uattr, kattr.sched_policy = p->policy; if (p->sched_reset_on_fork) kattr.sched_flags |= SCHED_FLAG_RESET_ON_FORK; - if (task_has_dl_policy(p)) - __getparam_dl(p, &kattr); - else if (task_has_rt_policy(p)) - kattr.sched_priority = p->rt_priority; - else - kattr.sched_nice = task_nice(p); + get_params(p, &kattr); kattr.sched_flags &= SCHED_FLAG_ALL; #ifdef CONFIG_UCLAMP_TASK From e06796855dc7e4495e27cb1fb5821f334798e1ed Mon Sep 17 00:00:00 2001 From: Hajun Sung Date: Tue, 3 Aug 2021 07:45:59 +0900 Subject: [PATCH 07/12] ANDROID: ABI: update allowed list for exynos Leaf changes summary: 3 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable 3 Added functions: [A] 'function int drm_hdmi_infoframe_set_hdr_metadata(hdmi_drm_infoframe*, const drm_connector_state*)' [A] 'function ssize_t hdmi_drm_infoframe_pack_only(const hdmi_drm_infoframe*, void*, size_t)' [A] 'function int snd_pcm_hw_constraint_mask64(snd_pcm_runtime*, snd_pcm_hw_param_t, u_int64_t)' Bug: 195331412 Change-Id: Ice427cd480ab24c90d3fbf11dddf207077c98a02 Signed-off-by: Hajun Sung Signed-off-by: Giuliano Procida --- android/abi_gki_aarch64.xml | 53 ++++++++++++++++++++++++---------- android/abi_gki_aarch64_exynos | 7 +++++ 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 524faae3504e..d1da8c9bc15e 100755 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -1796,6 +1796,7 @@ + @@ -2217,6 +2218,7 @@ + @@ -4010,6 +4012,7 @@ + @@ -11655,6 +11658,7 @@ + @@ -46671,6 +46675,7 @@ + @@ -47384,6 +47389,7 @@ + @@ -111558,9 +111564,9 @@ - - - + + + @@ -113897,8 +113903,8 @@ - - + + @@ -118489,6 +118495,11 @@ + + + + + @@ -119253,10 +119264,10 @@ - - - - + + + + @@ -119329,14 +119340,14 @@ - - - + + + - - - + + + @@ -120658,6 +120669,12 @@ + + + + + + @@ -129790,6 +129807,12 @@ + + + + + + diff --git a/android/abi_gki_aarch64_exynos b/android/abi_gki_aarch64_exynos index e463c74791c5..721a73fc9370 100644 --- a/android/abi_gki_aarch64_exynos +++ b/android/abi_gki_aarch64_exynos @@ -643,6 +643,7 @@ drm_get_format_name drm_handle_vblank drm_hdmi_avi_infoframe_from_display_mode + drm_hdmi_infoframe_set_hdr_metadata drm_helper_connector_dpms drm_helper_disable_unused_functions drm_helper_force_disable_all @@ -842,6 +843,7 @@ gpiod_get_raw_value gpiod_get_raw_value_cansleep gpiod_set_raw_value + gpiod_set_raw_value_cansleep gpiod_set_value gpiod_set_value_cansleep gpiod_to_irq @@ -858,6 +860,7 @@ handle_simple_irq handle_sysrq hdmi_avi_infoframe_pack + hdmi_drm_infoframe_pack_only hex_dump_to_buffer hmm_range_fault housekeeping_cpumask @@ -1338,6 +1341,7 @@ pcie_get_speed_cap pci_enable_atomic_ops_to_root pci_enable_device + pci_enable_pcie_error_reporting pci_enable_wake pci_find_bus pci_find_capability @@ -1705,6 +1709,7 @@ snd_pcm_format_width snd_pcm_hw_constraint_integer snd_pcm_hw_constraint_list + snd_pcm_hw_constraint_mask64 snd_pcm_lib_free_pages snd_pcm_lib_ioctl snd_pcm_lib_malloc_pages @@ -1822,6 +1827,7 @@ strlen strncasecmp strncat + strnchr strncmp strncpy strnlen @@ -2244,6 +2250,7 @@ __wake_up_locked_key wake_up_process wakeup_source_add + wakeup_source_destroy wakeup_source_register wakeup_source_unregister __wake_up_sync From 23db10c83f9def1b98888d888b511785e2f7bc3f Mon Sep 17 00:00:00 2001 From: huangqiujun Date: Tue, 10 Aug 2021 15:43:26 +0800 Subject: [PATCH 08/12] ANDROID: GKI: Update symbols to symbol list Update symbols to symbol list externed by oem modules. Leaf changes summary: 20 artifacts changed Changed leaf types summary: 0 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 12 Added functions Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 8 Added variables 12 Added functions: [A] 'function int __traceiter_android_vh_alter_mutex_list_add(void*, mutex*, mutex_waiter*, list_head*, bool*)' [A] 'function int __traceiter_android_vh_binder_wait_for_work(void*, bool, binder_thread*, binder_proc*)' [A] 'function int __traceiter_android_vh_build_sched_domains(void*, bool)' [A] 'function int __traceiter_android_vh_check_uninterruptible_tasks(void*, task_struct*, unsigned long int, bool*)' [A] 'function int __traceiter_android_vh_check_uninterruptible_tasks_dn(void*, void*)' [A] 'function int __traceiter_android_vh_mutex_unlock_slowpath(void*, mutex*)' [A] 'function int __traceiter_android_vh_mutex_wait_finish(void*, mutex*)' [A] 'function int __traceiter_android_vh_mutex_wait_start(void*, mutex*)' [A] 'function int __traceiter_android_vh_rwsem_wake_finish(void*, rw_semaphore*)' [A] 'function int __traceiter_android_vh_sync_txn_recvd(void*, task_struct*, task_struct*)' [A] 'function int public_key_verify_signature(const public_key*, const public_key_signature*)' [A] 'function void sdhci_request(mmc_host*, mmc_request*)' 8 Added variables: [A] 'tracepoint __tracepoint_android_vh_alter_mutex_list_add' [A] 'tracepoint __tracepoint_android_vh_binder_wait_for_work' [A] 'tracepoint __tracepoint_android_vh_build_sched_domains' [A] 'tracepoint __tracepoint_android_vh_mutex_unlock_slowpath' [A] 'tracepoint __tracepoint_android_vh_mutex_wait_finish' [A] 'tracepoint __tracepoint_android_vh_mutex_wait_start' [A] 'tracepoint __tracepoint_android_vh_rwsem_wake_finish' [A] 'tracepoint __tracepoint_android_vh_sync_txn_recvd' Bug: 193384408 Change-Id: I0267bc8fb752e2df3a757dfac78b65f4a3b9cac5 Signed-off-by: huangqiujun --- android/abi_gki_aarch64.xml | 266 +++++++++++++++++++++++++++++++++- android/abi_gki_aarch64_oplus | 41 +++++- 2 files changed, 303 insertions(+), 4 deletions(-) diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index d1da8c9bc15e..df919dfae0d3 100755 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -332,17 +332,22 @@ + + + + + @@ -383,6 +388,9 @@ + + + @@ -394,6 +402,7 @@ + @@ -418,6 +427,7 @@ + @@ -3414,6 +3424,7 @@ + @@ -3784,6 +3795,7 @@ + @@ -5114,12 +5126,15 @@ + + + @@ -5167,6 +5182,9 @@ + + + @@ -5182,6 +5200,7 @@ + @@ -5207,6 +5226,7 @@ + @@ -10109,6 +10129,9 @@ + + + @@ -17292,6 +17315,7 @@ + @@ -20907,6 +20931,7 @@ + @@ -26997,6 +27022,7 @@ + @@ -31715,6 +31741,17 @@ + + + + + + + + + + + @@ -33969,6 +34006,14 @@ + + + + + + + + @@ -50461,6 +50506,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -54890,7 +55017,7 @@ - + @@ -65850,6 +65977,7 @@ + @@ -67268,6 +67396,7 @@ + @@ -71042,6 +71171,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -100614,6 +100769,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -106408,6 +106595,7 @@ + @@ -110337,6 +110525,14 @@ + + + + + + + + @@ -110369,6 +110565,13 @@ + + + + + + + @@ -110376,6 +110579,11 @@ + + + + + @@ -110408,6 +110616,18 @@ + + + + + + + + + + + + @@ -110654,6 +110874,21 @@ + + + + + + + + + + + + + + + @@ -110723,6 +110958,11 @@ + + + + + @@ -110864,6 +111104,12 @@ + + + + + + @@ -111379,12 +111625,15 @@ + + + @@ -111432,6 +111681,9 @@ + + + @@ -111447,6 +111699,7 @@ + @@ -111472,6 +111725,7 @@ + @@ -126767,6 +127021,11 @@ + + + + + @@ -128564,6 +128823,11 @@ + + + + + diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus index a6fe4bb93126..8a16c1d45a1c 100644 --- a/android/abi_gki_aarch64_oplus +++ b/android/abi_gki_aarch64_oplus @@ -69,9 +69,9 @@ blocking_notifier_call_chain blocking_notifier_chain_register blocking_notifier_chain_unregister - bpf_trace_run1 bpf_trace_run10 bpf_trace_run12 + bpf_trace_run1 bpf_trace_run2 bpf_trace_run3 bpf_trace_run4 @@ -231,6 +231,7 @@ crc8 crc8_populate_msb crypto_alloc_base + crypto_alloc_shash crypto_comp_compress crypto_comp_decompress crypto_destroy_tfm @@ -238,6 +239,7 @@ crypto_register_alg crypto_register_rngs crypto_register_scomp + crypto_shash_digest crypto_unregister_alg crypto_unregister_rngs crypto_unregister_scomp @@ -682,6 +684,7 @@ idr_replace iio_channel_get iio_channel_get_all + iio_channel_release iio_read_channel_processed import_iovec inc_node_page_state @@ -939,8 +942,8 @@ mempool_free mempool_free_slab memremap - memset memset64 + memset __memset_io memstart_addr memunmap @@ -976,8 +979,8 @@ netlink_unicast nla_find nla_put - nla_reserve nla_reserve_64bit + nla_reserve __nla_validate __nlmsg_put no_llseek @@ -1237,9 +1240,11 @@ proc_douintvec_minmax proc_mkdir proc_remove + proc_symlink proto_register proto_unregister __pskb_pull_tail + public_key_verify_signature putback_movable_pages put_device put_disk @@ -1464,6 +1469,7 @@ sdhci_pltfm_free sdhci_pltfm_init sdhci_remove_host + sdhci_request sdhci_reset sdhci_set_bus_width sdhci_set_power_noreg @@ -1504,6 +1510,7 @@ simple_attr_release simple_open simple_read_from_buffer + simple_strtol simple_strtoul simple_write_to_buffer single_open @@ -1616,6 +1623,7 @@ syscon_node_to_regmap syscon_regmap_lookup_by_phandle sysctl_sched_features + sysctl_sched_latency sysctl_vals sysfs_add_file_to_group sysfs_add_link_to_group @@ -1651,6 +1659,7 @@ task_may_not_preempt __task_pid_nr_ns __task_rq_lock + task_rq_lock thermal_cooling_device_register thermal_cooling_device_unregister thermal_of_cooling_device_register @@ -1694,6 +1703,8 @@ __traceiter_android_rvh_gic_v3_set_affinity __traceiter_android_rvh_migrate_queued_task __traceiter_android_rvh_new_task_stats + __traceiter_android_rvh_pick_next_entity + __traceiter_android_rvh_place_entity __traceiter_android_rvh_replace_next_task_fair __traceiter_android_rvh_resume_cpus __traceiter_android_rvh_sched_cpu_dying @@ -1720,9 +1731,15 @@ __traceiter_android_rvh_update_misfit_status __traceiter_android_rvh_wake_up_new_task __traceiter_android_vh_allow_domain_state + __traceiter_android_vh_alter_mutex_list_add + __traceiter_android_vh_alter_rwsem_list_add __traceiter_android_vh_binder_restore_priority __traceiter_android_vh_binder_set_priority + __traceiter_android_vh_binder_wait_for_work __traceiter_android_vh_binder_wakeup_ilocked + __traceiter_android_vh_build_sched_domains + __traceiter_android_vh_check_uninterruptible_tasks + __traceiter_android_vh_check_uninterruptible_tasks_dn __traceiter_android_vh_cpu_idle_enter __traceiter_android_vh_cpu_idle_exit __traceiter_android_vh_ftrace_dump_buffer @@ -1735,11 +1752,17 @@ __traceiter_android_vh_ipi_stop __traceiter_android_vh_jiffies_update __traceiter_android_vh_logbuf + __traceiter_android_vh_mutex_unlock_slowpath + __traceiter_android_vh_mutex_wait_finish + __traceiter_android_vh_mutex_wait_start __traceiter_android_vh_printk_hotplug + __traceiter_android_vh_rwsem_wake + __traceiter_android_vh_rwsem_wake_finish __traceiter_android_vh_scheduler_tick __traceiter_android_vh_show_max_freq __traceiter_android_vh_show_resume_epoch_val __traceiter_android_vh_show_suspend_epoch_val + __traceiter_android_vh_sync_txn_recvd __traceiter_android_vh_timer_calc_index __traceiter_android_vh_update_topology_flags_workfn __traceiter_binder_transaction_received @@ -1770,6 +1793,8 @@ __tracepoint_android_rvh_gic_v3_set_affinity __tracepoint_android_rvh_migrate_queued_task __tracepoint_android_rvh_new_task_stats + __tracepoint_android_rvh_pick_next_entity + __tracepoint_android_rvh_place_entity __tracepoint_android_rvh_replace_next_task_fair __tracepoint_android_rvh_resume_cpus __tracepoint_android_rvh_sched_cpu_dying @@ -1796,9 +1821,13 @@ __tracepoint_android_rvh_update_misfit_status __tracepoint_android_rvh_wake_up_new_task __tracepoint_android_vh_allow_domain_state + __tracepoint_android_vh_alter_mutex_list_add + __tracepoint_android_vh_alter_rwsem_list_add __tracepoint_android_vh_binder_restore_priority __tracepoint_android_vh_binder_set_priority + __tracepoint_android_vh_binder_wait_for_work __tracepoint_android_vh_binder_wakeup_ilocked + __tracepoint_android_vh_build_sched_domains __tracepoint_android_vh_check_uninterruptible_tasks __tracepoint_android_vh_check_uninterruptible_tasks_dn __tracepoint_android_vh_cpu_idle_enter @@ -1813,11 +1842,17 @@ __tracepoint_android_vh_ipi_stop __tracepoint_android_vh_jiffies_update __tracepoint_android_vh_logbuf + __tracepoint_android_vh_mutex_unlock_slowpath + __tracepoint_android_vh_mutex_wait_finish + __tracepoint_android_vh_mutex_wait_start __tracepoint_android_vh_printk_hotplug + __tracepoint_android_vh_rwsem_wake + __tracepoint_android_vh_rwsem_wake_finish __tracepoint_android_vh_scheduler_tick __tracepoint_android_vh_show_max_freq __tracepoint_android_vh_show_resume_epoch_val __tracepoint_android_vh_show_suspend_epoch_val + __tracepoint_android_vh_sync_txn_recvd __tracepoint_android_vh_timer_calc_index __tracepoint_android_vh_update_topology_flags_workfn __tracepoint_binder_transaction_received From a1a3544a4cecda54b01267af939607e081db075c Mon Sep 17 00:00:00 2001 From: Alistair Delva Date: Fri, 6 Aug 2021 11:16:02 -0700 Subject: [PATCH 09/12] ANDROID: GKI: Disable X86_MCE drivers Android does not use these drivers and enabling them causes additional and unwanted epoll wakeups due to uevents at suspend/resume time. Bug: 195607946 Signed-off-by: Alistair Delva Change-Id: Id3d58dc695c0cd6d2a65503a421de1afebd83784 --- arch/x86/configs/gki_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig index 65d05fc15038..6ea0778d07ef 100644 --- a/arch/x86/configs/gki_defconfig +++ b/arch/x86/configs/gki_defconfig @@ -52,6 +52,7 @@ CONFIG_X86_X2APIC=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_NR_CPUS=32 +# CONFIG_X86_MCE is not set CONFIG_EFI=y CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure cgroup.memory=nokmem" @@ -358,7 +359,6 @@ CONFIG_THERMAL_GOV_USER_SPACE=y CONFIG_CPU_THERMAL=y CONFIG_DEVFREQ_THERMAL=y CONFIG_THERMAL_EMULATION=y -# CONFIG_X86_PKG_TEMP_THERMAL is not set CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y CONFIG_MFD_SYSCON=y From b2cbc7e5aae472f856c57f09d9c14f92c1ea34d1 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Thu, 18 Mar 2021 17:07:37 +0000 Subject: [PATCH 10/12] UPSTREAM: arm64: vdso: Avoid ISB after reading from cntvct_el0 commit 77ec462536a13d4b428a1eead725c4818a49f0b1 upstream. (The upstream patch was not marked as fixed but this can fix Fixes: 28b1a824a4f4 ("arm64: vdso: Substitute gettimeofday() with C implementation") sysbench memory comparison: - Before: 3072.00 MB transferred (2601.11 MB/sec) - After: 3072.00 MB transferred (3217.86 MB/sec) ) We can avoid the expensive ISB instruction after reading the counter in the vDSO gettime functions by creating a fake address hazard against a dummy stack read, just like we do inside the kernel. Bug: 195968646 Fixes: 28b1a824a4f4 ("arm64: vdso: Substitute gettimeofday() with C implementation") Signed-off-by: Will Deacon Reviewed-by: Vincenzo Frascino Link: https://lore.kernel.org/r/20210318170738.7756-5-will@kernel.org Signed-off-by: Catalin Marinas CC: stable@vger.kernel.org (cherry picked from commit 77ec462536a13d4b428a1eead725c4818a49f0b1) Signed-off-by: Chanho Park Change-Id: I891873626c27060e7ead724754096a7c5f59e4e6 --- arch/arm64/include/asm/arch_timer.h | 21 --------------------- arch/arm64/include/asm/barrier.h | 19 +++++++++++++++++++ arch/arm64/include/asm/vdso/gettimeofday.h | 6 +----- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/arch/arm64/include/asm/arch_timer.h b/arch/arm64/include/asm/arch_timer.h index 9f0ec21d6327..88d20f04c64a 100644 --- a/arch/arm64/include/asm/arch_timer.h +++ b/arch/arm64/include/asm/arch_timer.h @@ -165,25 +165,6 @@ static inline void arch_timer_set_cntkctl(u32 cntkctl) isb(); } -/* - * Ensure that reads of the counter are treated the same as memory reads - * for the purposes of ordering by subsequent memory barriers. - * - * This insanity brought to you by speculative system register reads, - * out-of-order memory accesses, sequence locks and Thomas Gleixner. - * - * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html - */ -#define arch_counter_enforce_ordering(val) do { \ - u64 tmp, _val = (val); \ - \ - asm volatile( \ - " eor %0, %1, %1\n" \ - " add %0, sp, %0\n" \ - " ldr xzr, [%0]" \ - : "=r" (tmp) : "r" (_val)); \ -} while (0) - static __always_inline u64 __arch_counter_get_cntpct_stable(void) { u64 cnt; @@ -224,8 +205,6 @@ static __always_inline u64 __arch_counter_get_cntvct(void) return cnt; } -#undef arch_counter_enforce_ordering - static inline int arch_timer_arch_init(void) { return 0; diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h index 5a8367a2b868..bffa8860af1c 100644 --- a/arch/arm64/include/asm/barrier.h +++ b/arch/arm64/include/asm/barrier.h @@ -71,6 +71,25 @@ static inline unsigned long array_index_mask_nospec(unsigned long idx, return mask; } +/* + * Ensure that reads of the counter are treated the same as memory reads + * for the purposes of ordering by subsequent memory barriers. + * + * This insanity brought to you by speculative system register reads, + * out-of-order memory accesses, sequence locks and Thomas Gleixner. + * + * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html + */ +#define arch_counter_enforce_ordering(val) do { \ + u64 tmp, _val = (val); \ + \ + asm volatile( \ + " eor %0, %1, %1\n" \ + " add %0, sp, %0\n" \ + " ldr xzr, [%0]" \ + : "=r" (tmp) : "r" (_val)); \ +} while (0) + #define __smp_mb() dmb(ish) #define __smp_rmb() dmb(ishld) #define __smp_wmb() dmb(ishst) diff --git a/arch/arm64/include/asm/vdso/gettimeofday.h b/arch/arm64/include/asm/vdso/gettimeofday.h index 631ab1281633..4b4c0dac0e14 100644 --- a/arch/arm64/include/asm/vdso/gettimeofday.h +++ b/arch/arm64/include/asm/vdso/gettimeofday.h @@ -83,11 +83,7 @@ static __always_inline u64 __arch_get_hw_counter(s32 clock_mode, */ isb(); asm volatile("mrs %0, cntvct_el0" : "=r" (res) :: "memory"); - /* - * This isb() is required to prevent that the seq lock is - * speculated.# - */ - isb(); + arch_counter_enforce_ordering(res); return res; } From 82b96336e5e6f58cdae1dcc27fbf2dfae51980d7 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Mon, 9 Aug 2021 11:50:55 -0700 Subject: [PATCH 11/12] ANDROID: scsi: ufs: Make CONFIG_SCSI_UFS_HPB compatible with the GKI Move the ufshpb_dev member into a new structure such that enabling HPB does not affect the layout of other members of struct ufs_hba. This change does not affect the ABI since UFS HPB support is currently disabled. The only function that allocates a struct ufs_hba instance is ufshcd_alloc_host() and that function allocates struct ufs_hba dynamically. Modify that function such that it also allocates memory for the HPB data if necessary. Bug: 194163838 Bug: 195507090 Test: Built the kernel with this patch applied and installed it on an Android device. Change-Id: Ia4c5ba07ae343576373ec116553c5fdee8f75a94 Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufshcd.c | 2 +- drivers/scsi/ufs/ufshcd.h | 14 +++++++++++++- drivers/scsi/ufs/ufshpb.c | 20 ++++++++++++-------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index eb2baf3b69b6..b17dedc68732 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -9313,7 +9313,7 @@ int ufshcd_alloc_host(struct device *dev, struct ufs_hba **hba_handle) } host = scsi_host_alloc(&ufshcd_driver_template, - sizeof(struct ufs_hba)); + sizeof(struct ufs_hba_with_hpb)); if (!host) { dev_err(dev, "scsi_host_alloc failed\n"); err = -ENOMEM; diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index f4d0fb6fdd97..c75c5cd7b973 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -912,7 +912,8 @@ struct ufs_hba { bool wb_enabled; struct delayed_work rpm_dev_flush_recheck_work; -#ifdef CONFIG_SCSI_UFS_HPB +#if 0 + /* This has been moved into struct ufs_hba_with_hpb. */ struct ufshpb_dev_info ufshpb_dev; #endif @@ -934,6 +935,17 @@ struct ufs_hba { ANDROID_KABI_RESERVE(4); }; +/* + * Compared to the upstream equivalent, @hpb_dev has been moved from struct + * ufs_hba into struct ufs_hba_with_hpb to satisfy the Android ABI checks. + */ +struct ufs_hba_with_hpb { + struct ufs_hba hba; +#ifdef CONFIG_SCSI_UFS_HPB + struct ufshpb_dev_info hpb_dev; +#endif +}; + /* Returns true if clocks can be gated. Otherwise false */ static inline bool ufshcd_is_clkgating_allowed(struct ufs_hba *hba) { diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c index cb4a34ae5be1..9755317c3301 100644 --- a/drivers/scsi/ufs/ufshpb.c +++ b/drivers/scsi/ufs/ufshpb.c @@ -35,15 +35,20 @@ static struct workqueue_struct *ufshpb_wq; static void ufshpb_update_active_info(struct ufshpb_lu *hpb, int rgn_idx, int srgn_idx); +static inline struct ufshpb_dev_info *ufs_hba_to_hpb(struct ufs_hba *hba) +{ + return &container_of(hba, struct ufs_hba_with_hpb, hba)->hpb_dev; +} + bool ufshpb_is_allowed(struct ufs_hba *hba) { - return !(hba->ufshpb_dev.hpb_disabled); + return !(ufs_hba_to_hpb(hba)->hpb_disabled); } /* HPB version 1.0 is called as legacy version. */ bool ufshpb_is_legacy(struct ufs_hba *hba) { - return hba->ufshpb_dev.is_legacy; + return ufs_hba_to_hpb(hba)->is_legacy; } static struct ufshpb_lu *ufshpb_get_hpb_data(struct scsi_device *sdev) @@ -2743,8 +2748,7 @@ void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device *sdev) if (ret) goto out; - hpb = ufshpb_alloc_hpb_lu(hba, sdev, &hba->ufshpb_dev, - &hpb_lu_info); + hpb = ufshpb_alloc_hpb_lu(hba, sdev, ufs_hba_to_hpb(hba), &hpb_lu_info); if (!hpb) goto out; @@ -2753,7 +2757,7 @@ void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device *sdev) out: /* All LUs are initialized */ - if (atomic_dec_and_test(&hba->ufshpb_dev.slave_conf_cnt)) + if (atomic_dec_and_test(&ufs_hba_to_hpb(hba)->slave_conf_cnt)) ufshpb_hpb_lu_prepared(hba); } @@ -2810,7 +2814,7 @@ static int ufshpb_init_mem_wq(struct ufs_hba *hba) void ufshpb_get_geo_info(struct ufs_hba *hba, u8 *geo_buf) { - struct ufshpb_dev_info *hpb_info = &hba->ufshpb_dev; + struct ufshpb_dev_info *hpb_info = ufs_hba_to_hpb(hba); int max_active_rgns = 0; int hpb_num_lu; @@ -2836,7 +2840,7 @@ void ufshpb_get_geo_info(struct ufs_hba *hba, u8 *geo_buf) void ufshpb_get_dev_info(struct ufs_hba *hba, u8 *desc_buf) { - struct ufshpb_dev_info *hpb_dev_info = &hba->ufshpb_dev; + struct ufshpb_dev_info *hpb_dev_info = ufs_hba_to_hpb(hba); int version, ret; u32 max_hpb_single_cmd = HPB_MULTI_CHUNK_LOW; @@ -2873,7 +2877,7 @@ void ufshpb_get_dev_info(struct ufs_hba *hba, u8 *desc_buf) void ufshpb_init(struct ufs_hba *hba) { - struct ufshpb_dev_info *hpb_dev_info = &hba->ufshpb_dev; + struct ufshpb_dev_info *hpb_dev_info = ufs_hba_to_hpb(hba); int try; int ret; From e41c9937238f52c66c07cbcb3a0ea5ed6de152df Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Tue, 10 Aug 2021 10:18:01 -0700 Subject: [PATCH 12/12] ANDROID: scsi: ufs: Enable CONFIG_SCSI_UFS_HPB Enable CONFIG_SCSI_UFS_HPB such that the UFS HPB (Host Performance Booster) feature can be used. From an Android test device running a kernel with this patch applied: $ cd /sys/devices/...ufs/host0 $ grep -aH . */*/hpb*/* grep: target0:0:0/0:0:0:0/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:0/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:0/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:0/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:0/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:0/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:0/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:0/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:0/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:0/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:0/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:0/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:0/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:0/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:0/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:0/hpb_stats/umap_req_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:1/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:1/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:1/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:1/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:1/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:1/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:1/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:1/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:1/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:1/hpb_stats/umap_req_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:2/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:2/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:2/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:2/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:2/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:2/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:2/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:2/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:2/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:2/hpb_stats/umap_req_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:3/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:3/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:3/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:3/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:3/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:3/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:3/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:3/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:3/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:3/hpb_stats/umap_req_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:49456/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:49456/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:49456/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:49456/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:49456/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:49456/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:49456/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:49456/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:49456/hpb_stats/umap_req_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:49476/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:49476/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:49476/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:49476/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:49476/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:49476/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:49476/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:49476/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:49476/hpb_stats/umap_req_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_params/activation_thld: No such device grep: target0:0:0/0:0:0:49488/hpb_params/eviction_thld_enter: No such device grep: target0:0:0/0:0:0:49488/hpb_params/eviction_thld_exit: No such device grep: target0:0:0/0:0:0:49488/hpb_params/inflight_map_req: No such device grep: target0:0:0/0:0:0:49488/hpb_params/normalization_factor: No such device grep: target0:0:0/0:0:0:49488/hpb_params/read_timeout_expiries: No such device grep: target0:0:0/0:0:0:49488/hpb_params/read_timeout_ms: No such device grep: target0:0:0/0:0:0:49488/hpb_params/requeue_timeout_ms: No such device grep: target0:0:0/0:0:0:49488/hpb_params/timeout_polling_interval_ms: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/hit_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/map_req_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/miss_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/rb_active_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/rb_inactive_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/rb_noti_cnt: No such device grep: target0:0:0/0:0:0:49488/hpb_stats/umap_req_cnt: No such device Bug: 194163838 Bug: 195507090 Change-Id: I1aab63c83445e243be190396c452a4203e93dbc1 Signed-off-by: Bart Van Assche --- arch/arm64/configs/gki_defconfig | 1 + arch/x86/configs/gki_defconfig | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig index 92175e738c81..74fc8a647899 100644 --- a/arch/arm64/configs/gki_defconfig +++ b/arch/arm64/configs/gki_defconfig @@ -301,6 +301,7 @@ CONFIG_SCSI_UFS_DWC_TC_PLATFORM=y CONFIG_SCSI_UFS_HISI=y CONFIG_SCSI_UFS_BSG=y CONFIG_SCSI_UFS_CRYPTO=y +CONFIG_SCSI_UFS_HPB=y CONFIG_MD=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig index 6ea0778d07ef..b2eb9fd0368d 100644 --- a/arch/x86/configs/gki_defconfig +++ b/arch/x86/configs/gki_defconfig @@ -274,6 +274,7 @@ CONFIG_SCSI_UFSHCD_PLATFORM=y CONFIG_SCSI_UFS_DWC_TC_PLATFORM=y CONFIG_SCSI_UFS_BSG=y CONFIG_SCSI_UFS_CRYPTO=y +CONFIG_SCSI_UFS_HPB=y CONFIG_MD=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y