Merge branch 'android12-5.10' into android12-5.10-lts

Sync up with android12-5.10 for the following commits:

66379c1ee5 Merge tag 'android12-5.10.66_r00' into android12-5.10
93ec12dc50 FROMGIT: dma-buf: system_heap: Avoid warning on mid-order allocations
74f247e31b ANDROID: mm: cma: disable LRU cache early
496b17304a ANDROID: vendor_hooks: Add param for android_vh_cpu_up/down
9c78b0eb03 ANDROID: GKI: rockchip: Enable symbol for rkcif
fc1f8e4047 ANDROID: GKI: rockchip: Enable symbols for display IF
69c931581f ANDROID: vendor_hooks: export hooks of mem_cgroup subsystem
44447dec6e ANDROID: sched: move blocked reason trace point to cover all class
c36e5828d0 ANDROID: GKI: rockchip: Enable symbols for rockchip cpufreq
897e5dd0f0 ANDROID: GKI: rockchip: Sync symbols
c264cbbec4 ANDROID: GKI: rockchip: Remove symbol for slip
2cb6fc0554 ANDROID: GKI: rockchip: Enable symbol for rknpu
142d4b0ce2 ANDROID: GKI: rockchip: Enable symbols for rkisp
db3e01ecf0 ANDROID: cpuhp: pause: reduce running priority pause/resume
2b8b5e76c7 ANDROID: qcom: Add another neighbor related symbol
0eb2083a6d ANDROID: GKI: rockchip: Enable symbols for dw_8250
ed493d61fe FROMGIT: f2fs: fix to use WHINT_MODE

The following symbols are also added to the .xml file to be tracked:

Leaf changes summary: 22 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 21 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

21 Added functions:

  [A] 'function void cec_queue_pin_hpd_event(cec_adapter*, bool, ktime_t)'
  [A] 'function void dev_pm_opp_put_prop_name(opp_table*)'
  [A] 'function opp_table* dev_pm_opp_register_set_opp_helper(device*, int (dev_pm_set_opp_data*)*)'
  [A] 'function int drm_dp_start_crc(drm_dp_aux*, drm_crtc*)'
  [A] 'function int drm_dp_stop_crc(drm_dp_aux*)'
  [A] 'function int drm_gem_handle_delete(drm_file*, u32)'
  [A] 'function bool drm_mode_is_420(const drm_display_info*, const drm_display_mode*)'
  [A] 'function drm_connector* drm_panel_bridge_connector(drm_bridge*)'
  [A] 'function int drm_property_replace_global_blob(drm_device*, drm_property_blob**, size_t, void*, drm_mode_object*, drm_property*)'
  [A] 'function int media_entity_setup_link(media_link*, u32)'
  [A] 'function int neigh_resolve_output(neighbour*, sk_buff*)'
  [A] 'function bool of_device_is_big_endian(const device_node*)'
  [A] 'function void serial8250_clear_and_reinit_fifos(uart_8250_port*)'
  [A] 'function void serial8250_do_pm(uart_port*, unsigned int, unsigned int)'
  [A] 'function void serial8250_do_set_divisor(uart_port*, unsigned int, unsigned int, unsigned int)'
  [A] 'function void serial8250_do_set_ldisc(uart_port*, ktermios*)'
  [A] 'function int serial8250_handle_irq(uart_port*, unsigned int)'
  [A] 'function void serial8250_update_uartclk(uart_port*, unsigned int)'
  [A] 'function void sha1_init(__u32*)'
  [A] 'function int v4l2_pipeline_pm_get(media_entity*)'
  [A] 'function void v4l2_pipeline_pm_put(media_entity*)'

1 Added variable:

  [A] 'const char* v4l2_type_names[15]'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I24b1e7c72660a22ece0605d2969d7596f740a767
This commit is contained in:
Greg Kroah-Hartman
2021-10-21 12:18:08 +02:00
11 changed files with 1286 additions and 935 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1482,6 +1482,7 @@
neigh_destroy
__neigh_event_send
neigh_lookup
neigh_resolve_output
neigh_xmit
__netdev_alloc_skb
netdev_err

File diff suppressed because it is too large Load Diff

View File

@@ -386,3 +386,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_pci_d3_sleep);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kmalloc_slab);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_id_remove);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_offline);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_css_online);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_free);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mem_cgroup_alloc);

View File

@@ -49,11 +49,12 @@ struct dma_heap_attachment {
bool uncached;
};
#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
#define MID_ORDER_GFP (LOW_ORDER_GFP | __GFP_NOWARN)
#define HIGH_ORDER_GFP (((GFP_HIGHUSER | __GFP_ZERO | __GFP_NOWARN \
| __GFP_NORETRY) & ~__GFP_RECLAIM) \
| __GFP_COMP)
#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
static gfp_t order_flags[] = {HIGH_ORDER_GFP, LOW_ORDER_GFP, LOW_ORDER_GFP};
static gfp_t order_flags[] = {HIGH_ORDER_GFP, MID_ORDER_GFP, LOW_ORDER_GFP};
/*
* The selection of the orders used for allocation (1MB, 64K, 4K) is designed
* to match with the sizes often found in IOMMUs. Using order 4 pages instead

View File

@@ -1185,7 +1185,7 @@ default_check:
/* Not pass down write hints if the number of active logs is lesser
* than NR_CURSEG_PERSIST_TYPE.
*/
if (F2FS_OPTION(sbi).active_logs != NR_CURSEG_TYPE)
if (F2FS_OPTION(sbi).active_logs != NR_CURSEG_PERSIST_TYPE)
F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF;
if (f2fs_sb_has_readonly(sbi) && !f2fs_readonly(sbi->sb)) {

View File

@@ -11,12 +11,12 @@
* mechanism for vendor modules to hook and extend functionality
*/
DECLARE_HOOK(android_vh_cpu_up,
TP_PROTO(void *unused),
TP_ARGS(unused));
TP_PROTO(unsigned int cpu),
TP_ARGS(cpu));
DECLARE_HOOK(android_vh_cpu_down,
TP_PROTO(void *unused),
TP_ARGS(unused));
TP_PROTO(unsigned int cpu),
TP_ARGS(cpu));
/* macro versions of hooks are no longer required */

View File

@@ -1120,7 +1120,7 @@ static int cpu_down(unsigned int cpu, enum cpuhp_state target)
{
int err;
trace_android_vh_cpu_down(NULL);
trace_android_vh_cpu_down(cpu);
cpu_maps_update_begin();
err = cpu_down_maps_locked(cpu, target);
@@ -1183,11 +1183,37 @@ void __wait_drain_rq(struct cpumask *cpus)
sched_cpu_drain_rq_wait(cpu);
}
/* if rt task, set to cfs and return previous prio */
static int pause_reduce_prio(void)
{
int prev_prio = -1;
if (current->prio < MAX_RT_PRIO) {
struct sched_param param = { .sched_priority = 0 };
prev_prio = current->prio;
sched_setscheduler_nocheck(current, SCHED_NORMAL, &param);
}
return prev_prio;
}
/* if previous prio was set, restore */
static void pause_restore_prio(int prev_prio)
{
if (prev_prio >= 0 && prev_prio < MAX_RT_PRIO) {
struct sched_param param = { .sched_priority = MAX_RT_PRIO-1-prev_prio };
sched_setscheduler_nocheck(current, SCHED_FIFO, &param);
}
}
int pause_cpus(struct cpumask *cpus)
{
int err = 0;
int cpu;
u64 start_time = 0;
int prev_prio;
start_time = sched_clock();
@@ -1242,6 +1268,8 @@ int pause_cpus(struct cpumask *cpus)
goto err_cpu_maps_update;
}
prev_prio = pause_reduce_prio();
/*
* Slow path deactivation:
*
@@ -1285,6 +1313,7 @@ int pause_cpus(struct cpumask *cpus)
err_cpus_write_unlock:
cpus_write_unlock();
pause_restore_prio(prev_prio);
err_cpu_maps_update:
cpu_maps_update_done();
@@ -1299,6 +1328,7 @@ int resume_cpus(struct cpumask *cpus)
unsigned int cpu;
int err = 0;
u64 start_time = 0;
int prev_prio;
start_time = sched_clock();
@@ -1329,6 +1359,8 @@ int resume_cpus(struct cpumask *cpus)
if (err)
goto err_cpu_maps_update;
prev_prio = pause_reduce_prio();
/* Lazy Resume. Build domains immediately instead of scheduling
* a workqueue. This is so that the cpu can pull load when
* sent a load balancing kick.
@@ -1356,6 +1388,7 @@ int resume_cpus(struct cpumask *cpus)
err_cpus_write_unlock:
cpus_write_unlock();
pause_restore_prio(prev_prio);
err_cpu_maps_update:
cpu_maps_update_done();
@@ -1553,7 +1586,7 @@ static int cpu_up(unsigned int cpu, enum cpuhp_state target)
return -EINVAL;
}
trace_android_vh_cpu_up(NULL);
trace_android_vh_cpu_up(cpu);
/*
* CPU hotplug operations consists of many steps and each step

View File

@@ -3113,6 +3113,9 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
if (READ_ONCE(p->on_rq) && ttwu_runnable(p, wake_flags))
goto unlock;
if (p->state & TASK_UNINTERRUPTIBLE)
trace_sched_blocked_reason(p);
#ifdef CONFIG_SMP
/*
* Ensure we load p->on_cpu _after_ p->on_rq, otherwise it would be

View File

@@ -999,7 +999,6 @@ 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

@@ -42,6 +42,9 @@
#include "cma.h"
extern void lru_cache_disable(void);
extern void lru_cache_enable(void);
struct cma cma_areas[MAX_CMA_AREAS];
unsigned cma_area_count;
@@ -466,6 +469,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align,
if (bitmap_count > bitmap_maxno)
goto out;
lru_cache_disable();
for (;;) {
struct acr_info info = {0};
@@ -545,6 +549,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align,
}
}
lru_cache_enable();
trace_cma_alloc_finish(cma->name, pfn, page, count, align);
trace_cma_alloc_info(cma->name, page, count, align, &cma_info);