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.1093ec12dc50
FROMGIT: dma-buf: system_heap: Avoid warning on mid-order allocations74f247e31b
ANDROID: mm: cma: disable LRU cache early496b17304a
ANDROID: vendor_hooks: Add param for android_vh_cpu_up/down9c78b0eb03
ANDROID: GKI: rockchip: Enable symbol for rkciffc1f8e4047
ANDROID: GKI: rockchip: Enable symbols for display IF69c931581f
ANDROID: vendor_hooks: export hooks of mem_cgroup subsystem44447dec6e
ANDROID: sched: move blocked reason trace point to cover all classc36e5828d0
ANDROID: GKI: rockchip: Enable symbols for rockchip cpufreq897e5dd0f0
ANDROID: GKI: rockchip: Sync symbolsc264cbbec4
ANDROID: GKI: rockchip: Remove symbol for slip2cb6fc0554
ANDROID: GKI: rockchip: Enable symbol for rknpu142d4b0ce2
ANDROID: GKI: rockchip: Enable symbols for rkispdb3e01ecf0
ANDROID: cpuhp: pause: reduce running priority pause/resume2b8b5e76c7
ANDROID: qcom: Add another neighbor related symbol0eb2083a6d
ANDROID: GKI: rockchip: Enable symbols for dw_8250ed493d61fe
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:
File diff suppressed because it is too large
Load Diff
@@ -1482,6 +1482,7 @@
|
|||||||
neigh_destroy
|
neigh_destroy
|
||||||
__neigh_event_send
|
__neigh_event_send
|
||||||
neigh_lookup
|
neigh_lookup
|
||||||
|
neigh_resolve_output
|
||||||
neigh_xmit
|
neigh_xmit
|
||||||
__netdev_alloc_skb
|
__netdev_alloc_skb
|
||||||
netdev_err
|
netdev_err
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -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_kmalloc_slab);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one);
|
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);
|
||||||
|
@@ -49,11 +49,12 @@ struct dma_heap_attachment {
|
|||||||
bool uncached;
|
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 \
|
#define HIGH_ORDER_GFP (((GFP_HIGHUSER | __GFP_ZERO | __GFP_NOWARN \
|
||||||
| __GFP_NORETRY) & ~__GFP_RECLAIM) \
|
| __GFP_NORETRY) & ~__GFP_RECLAIM) \
|
||||||
| __GFP_COMP)
|
| __GFP_COMP)
|
||||||
#define LOW_ORDER_GFP (GFP_HIGHUSER | __GFP_ZERO | __GFP_COMP)
|
static gfp_t order_flags[] = {HIGH_ORDER_GFP, MID_ORDER_GFP, LOW_ORDER_GFP};
|
||||||
static gfp_t order_flags[] = {HIGH_ORDER_GFP, LOW_ORDER_GFP, LOW_ORDER_GFP};
|
|
||||||
/*
|
/*
|
||||||
* The selection of the orders used for allocation (1MB, 64K, 4K) is designed
|
* 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
|
* to match with the sizes often found in IOMMUs. Using order 4 pages instead
|
||||||
|
@@ -1185,7 +1185,7 @@ default_check:
|
|||||||
/* Not pass down write hints if the number of active logs is lesser
|
/* Not pass down write hints if the number of active logs is lesser
|
||||||
* than NR_CURSEG_PERSIST_TYPE.
|
* 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;
|
F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF;
|
||||||
|
|
||||||
if (f2fs_sb_has_readonly(sbi) && !f2fs_readonly(sbi->sb)) {
|
if (f2fs_sb_has_readonly(sbi) && !f2fs_readonly(sbi->sb)) {
|
||||||
|
@@ -11,12 +11,12 @@
|
|||||||
* mechanism for vendor modules to hook and extend functionality
|
* mechanism for vendor modules to hook and extend functionality
|
||||||
*/
|
*/
|
||||||
DECLARE_HOOK(android_vh_cpu_up,
|
DECLARE_HOOK(android_vh_cpu_up,
|
||||||
TP_PROTO(void *unused),
|
TP_PROTO(unsigned int cpu),
|
||||||
TP_ARGS(unused));
|
TP_ARGS(cpu));
|
||||||
|
|
||||||
DECLARE_HOOK(android_vh_cpu_down,
|
DECLARE_HOOK(android_vh_cpu_down,
|
||||||
TP_PROTO(void *unused),
|
TP_PROTO(unsigned int cpu),
|
||||||
TP_ARGS(unused));
|
TP_ARGS(cpu));
|
||||||
|
|
||||||
/* macro versions of hooks are no longer required */
|
/* macro versions of hooks are no longer required */
|
||||||
|
|
||||||
|
37
kernel/cpu.c
37
kernel/cpu.c
@@ -1120,7 +1120,7 @@ static int cpu_down(unsigned int cpu, enum cpuhp_state target)
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
trace_android_vh_cpu_down(NULL);
|
trace_android_vh_cpu_down(cpu);
|
||||||
|
|
||||||
cpu_maps_update_begin();
|
cpu_maps_update_begin();
|
||||||
err = cpu_down_maps_locked(cpu, target);
|
err = cpu_down_maps_locked(cpu, target);
|
||||||
@@ -1183,11 +1183,37 @@ void __wait_drain_rq(struct cpumask *cpus)
|
|||||||
sched_cpu_drain_rq_wait(cpu);
|
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, ¶m);
|
||||||
|
}
|
||||||
|
|
||||||
|
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, ¶m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int pause_cpus(struct cpumask *cpus)
|
int pause_cpus(struct cpumask *cpus)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
int cpu;
|
int cpu;
|
||||||
u64 start_time = 0;
|
u64 start_time = 0;
|
||||||
|
int prev_prio;
|
||||||
|
|
||||||
start_time = sched_clock();
|
start_time = sched_clock();
|
||||||
|
|
||||||
@@ -1242,6 +1268,8 @@ int pause_cpus(struct cpumask *cpus)
|
|||||||
goto err_cpu_maps_update;
|
goto err_cpu_maps_update;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prev_prio = pause_reduce_prio();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Slow path deactivation:
|
* Slow path deactivation:
|
||||||
*
|
*
|
||||||
@@ -1285,6 +1313,7 @@ int pause_cpus(struct cpumask *cpus)
|
|||||||
|
|
||||||
err_cpus_write_unlock:
|
err_cpus_write_unlock:
|
||||||
cpus_write_unlock();
|
cpus_write_unlock();
|
||||||
|
pause_restore_prio(prev_prio);
|
||||||
err_cpu_maps_update:
|
err_cpu_maps_update:
|
||||||
cpu_maps_update_done();
|
cpu_maps_update_done();
|
||||||
|
|
||||||
@@ -1299,6 +1328,7 @@ int resume_cpus(struct cpumask *cpus)
|
|||||||
unsigned int cpu;
|
unsigned int cpu;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
u64 start_time = 0;
|
u64 start_time = 0;
|
||||||
|
int prev_prio;
|
||||||
|
|
||||||
start_time = sched_clock();
|
start_time = sched_clock();
|
||||||
|
|
||||||
@@ -1329,6 +1359,8 @@ int resume_cpus(struct cpumask *cpus)
|
|||||||
if (err)
|
if (err)
|
||||||
goto err_cpu_maps_update;
|
goto err_cpu_maps_update;
|
||||||
|
|
||||||
|
prev_prio = pause_reduce_prio();
|
||||||
|
|
||||||
/* Lazy Resume. Build domains immediately instead of scheduling
|
/* Lazy Resume. Build domains immediately instead of scheduling
|
||||||
* a workqueue. This is so that the cpu can pull load when
|
* a workqueue. This is so that the cpu can pull load when
|
||||||
* sent a load balancing kick.
|
* sent a load balancing kick.
|
||||||
@@ -1356,6 +1388,7 @@ int resume_cpus(struct cpumask *cpus)
|
|||||||
|
|
||||||
err_cpus_write_unlock:
|
err_cpus_write_unlock:
|
||||||
cpus_write_unlock();
|
cpus_write_unlock();
|
||||||
|
pause_restore_prio(prev_prio);
|
||||||
err_cpu_maps_update:
|
err_cpu_maps_update:
|
||||||
cpu_maps_update_done();
|
cpu_maps_update_done();
|
||||||
|
|
||||||
@@ -1553,7 +1586,7 @@ static int cpu_up(unsigned int cpu, enum cpuhp_state target)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_android_vh_cpu_up(NULL);
|
trace_android_vh_cpu_up(cpu);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CPU hotplug operations consists of many steps and each step
|
* CPU hotplug operations consists of many steps and each step
|
||||||
|
@@ -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))
|
if (READ_ONCE(p->on_rq) && ttwu_runnable(p, wake_flags))
|
||||||
goto unlock;
|
goto unlock;
|
||||||
|
|
||||||
|
if (p->state & TASK_UNINTERRUPTIBLE)
|
||||||
|
trace_sched_blocked_reason(p);
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
/*
|
/*
|
||||||
* Ensure we load p->on_cpu _after_ p->on_rq, otherwise it would be
|
* Ensure we load p->on_cpu _after_ p->on_rq, otherwise it would be
|
||||||
|
@@ -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_stat_blocked(tsk, delta);
|
||||||
trace_sched_blocked_reason(tsk);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Blocking time is in units of nanosecs, so shift by
|
* Blocking time is in units of nanosecs, so shift by
|
||||||
|
5
mm/cma.c
5
mm/cma.c
@@ -42,6 +42,9 @@
|
|||||||
|
|
||||||
#include "cma.h"
|
#include "cma.h"
|
||||||
|
|
||||||
|
extern void lru_cache_disable(void);
|
||||||
|
extern void lru_cache_enable(void);
|
||||||
|
|
||||||
struct cma cma_areas[MAX_CMA_AREAS];
|
struct cma cma_areas[MAX_CMA_AREAS];
|
||||||
unsigned cma_area_count;
|
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)
|
if (bitmap_count > bitmap_maxno)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
lru_cache_disable();
|
||||||
for (;;) {
|
for (;;) {
|
||||||
struct acr_info info = {0};
|
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_finish(cma->name, pfn, page, count, align);
|
||||||
trace_cma_alloc_info(cma->name, page, count, align, &cma_info);
|
trace_cma_alloc_info(cma->name, page, count, align, &cma_info);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user