ANDROID: dma-contiguous: Add tracehook to allow subpage allocations in dma_alloc_contiguous

Add a tracehook to allow callers into dma_alloc_contiguous() to make
use of the built-in CMA area if the caller has addressing limitations;
this provides a means of allocating from memory whose bounds are
restricted to the lower 4 GB of memory, without having to enable DMA32
(assuming the default CMA area has been restricted to the appropriate
address ranges).

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_subpage_dma_contig_alloc'

Bug: 199917449
Change-Id: Ia86fb416376bca231405b06ab27b0674c8fe3e14
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
This commit is contained in:
Chris Goldsworthy
2021-12-09 14:47:35 -08:00
parent d94655c43e
commit 84fc3abca0
5 changed files with 74 additions and 60 deletions

View File

@@ -5974,6 +5974,7 @@
<elf-symbol name='__tracepoint_android_vh_snd_compr_use_pause_in_drain' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9b89d106'/>
<elf-symbol name='__tracepoint_android_vh_snd_soc_card_get_comp_chain' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3011ec02'/>
<elf-symbol name='__tracepoint_android_vh_sound_usb_support_cpu_suspend' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdc96142a'/>
<elf-symbol name='__tracepoint_android_vh_subpage_dma_contig_alloc' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63c884a5'/>
<elf-symbol name='__tracepoint_android_vh_sync_txn_recvd' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa651215'/>
<elf-symbol name='__tracepoint_android_vh_syscall_prctl_finished' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf9fc82b5'/>
<elf-symbol name='__tracepoint_android_vh_thermal_pm_notify_suspend' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbacbda3'/>
@@ -35503,27 +35504,27 @@
<parameter type-id='bd54fe1a'/>
<return type-id='48b5725f'/>
</function-type>
<class-decl name='mmu_notifier_range' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mmu_notifier.h' line='274' column='1' id='4e648697'>
<class-decl name='mmu_notifier_range' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/mmu_notifier.h' line='283' column='1' id='4e648697'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='vma' type-id='2ae08426' visibility='default' filepath='include/linux/mmu_notifier.h' line='275' column='1'/>
<var-decl name='vma' type-id='2ae08426' visibility='default' filepath='include/linux/mmu_notifier.h' line='284' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/mmu_notifier.h' line='276' column='1'/>
<var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/mmu_notifier.h' line='285' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
<var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/mmu_notifier.h' line='277' column='1'/>
<var-decl name='start' type-id='7359adad' visibility='default' filepath='include/linux/mmu_notifier.h' line='286' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
<var-decl name='end' type-id='7359adad' visibility='default' filepath='include/linux/mmu_notifier.h' line='278' column='1'/>
<var-decl name='end' type-id='7359adad' visibility='default' filepath='include/linux/mmu_notifier.h' line='287' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
<var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/mmu_notifier.h' line='279' column='1'/>
<var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/mmu_notifier.h' line='288' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
<var-decl name='event' type-id='9326b383' visibility='default' filepath='include/linux/mmu_notifier.h' line='280' column='1'/>
<var-decl name='event' type-id='9326b383' visibility='default' filepath='include/linux/mmu_notifier.h' line='289' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
<var-decl name='migrate_pgmap_owner' type-id='eaa32e2f' visibility='default' filepath='include/linux/mmu_notifier.h' line='281' column='1'/>
<var-decl name='migrate_pgmap_owner' type-id='eaa32e2f' visibility='default' filepath='include/linux/mmu_notifier.h' line='290' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='90cdb889' const='yes' id='4e65adfa'/>
@@ -41420,9 +41421,9 @@
<parameter type-id='d8e6b335'/>
<return type-id='95e97e5e'/>
</function-type>
<class-decl name='mmu_interval_notifier_ops' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mmu_notifier.h' line='254' column='1' id='5bb89a4e'>
<class-decl name='mmu_interval_notifier_ops' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/linux/mmu_notifier.h' line='263' column='1' id='5bb89a4e'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='invalidate' type-id='669703fc' visibility='default' filepath='include/linux/mmu_notifier.h' line='255' column='1'/>
<var-decl name='invalidate' type-id='669703fc' visibility='default' filepath='include/linux/mmu_notifier.h' line='264' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='70c545cd' size-in-bits='64' id='5bb9c75d'/>
@@ -64672,7 +64673,7 @@
</class-decl>
<pointer-type-def type-id='8754454d' size-in-bits='64' id='93226281'/>
<pointer-type-def type-id='225a561d' size-in-bits='64' id='9324451e'/>
<enum-decl name='mmu_notifier_event' filepath='include/linux/mmu_notifier.h' line='47' column='1' id='9326b383'>
<enum-decl name='mmu_notifier_event' filepath='include/linux/mmu_notifier.h' line='56' column='1' id='9326b383'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='MMU_NOTIFY_UNMAP' value='0'/>
<enumerator name='MMU_NOTIFY_CLEAR' value='1'/>
@@ -78408,21 +78409,21 @@
<parameter type-id='bdcee7ae'/>
<return type-id='48b5725f'/>
</function-type>
<class-decl name='mmu_interval_notifier' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/mmu_notifier.h' line='260' column='1' id='b3ba2c95'>
<class-decl name='mmu_interval_notifier' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/mmu_notifier.h' line='269' column='1' id='b3ba2c95'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='interval_tree' type-id='7a8b9f02' visibility='default' filepath='include/linux/mmu_notifier.h' line='261' column='1'/>
<var-decl name='interval_tree' type-id='7a8b9f02' visibility='default' filepath='include/linux/mmu_notifier.h' line='270' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
<var-decl name='ops' type-id='b8ae29f5' visibility='default' filepath='include/linux/mmu_notifier.h' line='262' column='1'/>
<var-decl name='ops' type-id='b8ae29f5' visibility='default' filepath='include/linux/mmu_notifier.h' line='271' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
<var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/mmu_notifier.h' line='263' column='1'/>
<var-decl name='mm' type-id='df4b7819' visibility='default' filepath='include/linux/mmu_notifier.h' line='272' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
<var-decl name='deferred_item' type-id='03a4a074' visibility='default' filepath='include/linux/mmu_notifier.h' line='264' column='1'/>
<var-decl name='deferred_item' type-id='03a4a074' visibility='default' filepath='include/linux/mmu_notifier.h' line='273' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
<var-decl name='invalidate_seq' type-id='7359adad' visibility='default' filepath='include/linux/mmu_notifier.h' line='265' column='1'/>
<var-decl name='invalidate_seq' type-id='7359adad' visibility='default' filepath='include/linux/mmu_notifier.h' line='274' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='b3bc5b3a'>
@@ -114167,15 +114168,15 @@
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='__per_cpu_offset' type-id='bc3af5fa' mangled-name='__per_cpu_offset' visibility='default' filepath='mm/percpu.c' line='3083' column='1' elf-symbol-id='__per_cpu_offset'/>
<function-decl name='__percpu_down_read' mangled-name='__percpu_down_read' filepath='kernel/locking/percpu-rwsem.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_down_read'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='165' column='1'/>
<parameter type-id='b50a4934' name='try' filepath='kernel/locking/percpu-rwsem.c' line='165' column='1'/>
<function-decl name='__percpu_down_read' mangled-name='__percpu_down_read' filepath='kernel/locking/percpu-rwsem.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_down_read'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='166' column='1'/>
<parameter type-id='b50a4934' name='try' filepath='kernel/locking/percpu-rwsem.c' line='166' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='__percpu_init_rwsem' mangled-name='__percpu_init_rwsem' filepath='kernel/locking/percpu-rwsem.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_init_rwsem'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='12' column='1'/>
<parameter type-id='80f4b756' name='name' filepath='kernel/locking/percpu-rwsem.c' line='13' column='1'/>
<parameter type-id='a57283f9' name='key' filepath='kernel/locking/percpu-rwsem.c' line='13' column='1'/>
<function-decl name='__percpu_init_rwsem' mangled-name='__percpu_init_rwsem' filepath='kernel/locking/percpu-rwsem.c' line='13' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__percpu_init_rwsem'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='13' column='1'/>
<parameter type-id='80f4b756' name='name' filepath='kernel/locking/percpu-rwsem.c' line='14' column='1'/>
<parameter type-id='a57283f9' name='key' filepath='kernel/locking/percpu-rwsem.c' line='14' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__phy_modify' mangled-name='__phy_modify' filepath='drivers/net/phy/phy-core.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__phy_modify'>
@@ -117002,6 +117003,7 @@
<var-decl name='__tracepoint_android_vh_snd_compr_use_pause_in_drain' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_snd_compr_use_pause_in_drain' visibility='default' filepath='include/trace/hooks/snd_compr.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_snd_compr_use_pause_in_drain'/>
<var-decl name='__tracepoint_android_vh_snd_soc_card_get_comp_chain' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_snd_soc_card_get_comp_chain' visibility='default' filepath='include/trace/hooks/sound.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_snd_soc_card_get_comp_chain'/>
<var-decl name='__tracepoint_android_vh_sound_usb_support_cpu_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sound_usb_support_cpu_suspend' visibility='default' filepath='include/trace/hooks/sound.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_sound_usb_support_cpu_suspend'/>
<var-decl name='__tracepoint_android_vh_subpage_dma_contig_alloc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_subpage_dma_contig_alloc' visibility='default' filepath='include/trace/hooks/mm.h' line='130' column='1' elf-symbol-id='__tracepoint_android_vh_subpage_dma_contig_alloc'/>
<var-decl name='__tracepoint_android_vh_sync_txn_recvd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sync_txn_recvd' visibility='default' filepath='include/trace/hooks/binder.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_sync_txn_recvd'/>
<var-decl name='__tracepoint_android_vh_syscall_prctl_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_syscall_prctl_finished' visibility='default' filepath='include/trace/hooks/sys.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_syscall_prctl_finished'/>
<var-decl name='__tracepoint_android_vh_thermal_pm_notify_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_pm_notify_suspend' visibility='default' filepath='include/trace/hooks/thermal.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_pm_notify_suspend'/>
@@ -117493,12 +117495,12 @@
<parameter type-id='e0ea832a' name='lock' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1109' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
<parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5562' column='1'/>
<parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5562' column='1'/>
<parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5563' column='1'/>
<parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5563' column='1'/>
<parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5563' column='1'/>
<function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
<parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5573' column='1'/>
<parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5573' column='1'/>
<parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5574' column='1'/>
<parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5574' column='1'/>
<parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5574' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='ack_all_badblocks' mangled-name='ack_all_badblocks' filepath='block/badblocks.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ack_all_badblocks'>
@@ -122714,7 +122716,7 @@
<parameter type-id='eaa32e2f' name='vaddr' filepath='drivers/dma-buf/dma-buf.c' line='1344' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<var-decl name='dma_contiguous_default_area' type-id='6f67b38a' mangled-name='dma_contiguous_default_area' visibility='default' filepath='kernel/dma/contiguous.c' line='60' column='1' elf-symbol-id='dma_contiguous_default_area'/>
<var-decl name='dma_contiguous_default_area' type-id='6f67b38a' mangled-name='dma_contiguous_default_area' visibility='default' filepath='kernel/dma/contiguous.c' line='61' column='1' elf-symbol-id='dma_contiguous_default_area'/>
<function-decl name='dma_fence_add_callback' mangled-name='dma_fence_add_callback' filepath='drivers/dma-buf/dma-fence.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_fence_add_callback'>
<parameter type-id='28271da3' name='fence' filepath='drivers/dma-buf/dma-fence.c' line='612' column='1'/>
<parameter type-id='a47516e5' name='cb' filepath='drivers/dma-buf/dma-fence.c' line='612' column='1'/>
@@ -126212,10 +126214,10 @@
<parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2788' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
<parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5398' column='1'/>
<parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5398' column='1'/>
<parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5399' column='1'/>
<function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
<parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5409' column='1'/>
<parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5409' column='1'/>
<parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5410' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='font_vga_8x16' type-id='d2d06e23' mangled-name='font_vga_8x16' visibility='default' filepath='lib/fonts/font_8x16.c' line='4625' column='1' elf-symbol-id='font_vga_8x16'/>
@@ -126835,12 +126837,12 @@
<function-decl name='get_state_synchronize_rcu' mangled-name='get_state_synchronize_rcu' filepath='kernel/rcu/tree.c' line='3688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_state_synchronize_rcu'>
<return type-id='7359adad'/>
</function-decl>
<function-decl name='get_task_exe_file' mangled-name='get_task_exe_file' filepath='kernel/fork.c' line='1227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_exe_file'>
<parameter type-id='f23e2572' name='task' filepath='kernel/fork.c' line='1227' column='1'/>
<function-decl name='get_task_exe_file' mangled-name='get_task_exe_file' filepath='kernel/fork.c' line='1228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_exe_file'>
<parameter type-id='f23e2572' name='task' filepath='kernel/fork.c' line='1228' column='1'/>
<return type-id='77e79a4b'/>
</function-decl>
<function-decl name='get_task_mm' mangled-name='get_task_mm' filepath='kernel/fork.c' line='1252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_mm'>
<parameter type-id='f23e2572' name='task' filepath='kernel/fork.c' line='1252' column='1'/>
<function-decl name='get_task_mm' mangled-name='get_task_mm' filepath='kernel/fork.c' line='1253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_mm'>
<parameter type-id='f23e2572' name='task' filepath='kernel/fork.c' line='1253' column='1'/>
<return type-id='df4b7819'/>
</function-decl>
<function-decl name='get_task_pid' mangled-name='get_task_pid' filepath='kernel/pid.c' line='439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_task_pid'>
@@ -130947,27 +130949,27 @@
<parameter type-id='47f117d4' name='mrq' filepath='drivers/mmc/core/core.c' line='603' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='mmput' mangled-name='mmput' filepath='kernel/fork.c' line='1145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmput'>
<parameter type-id='df4b7819' name='mm' filepath='kernel/fork.c' line='1145' column='1'/>
<function-decl name='mmput' mangled-name='mmput' filepath='kernel/fork.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmput'>
<parameter type-id='df4b7819' name='mm' filepath='kernel/fork.c' line='1146' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='mmu_interval_notifier_insert' mangled-name='mmu_interval_notifier_insert' filepath='mm/mmu_notifier.c' line='1002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_interval_notifier_insert'>
<parameter type-id='4bf7c965' name='interval_sub' filepath='mm/mmu_notifier.c' line='1002' column='1'/>
<parameter type-id='df4b7819' name='mm' filepath='mm/mmu_notifier.c' line='1003' column='1'/>
<parameter type-id='7359adad' name='start' filepath='mm/mmu_notifier.c' line='1003' column='1'/>
<parameter type-id='7359adad' name='length' filepath='mm/mmu_notifier.c' line='1004' column='1'/>
<parameter type-id='b8ae29f5' name='ops' filepath='mm/mmu_notifier.c' line='1005' column='1'/>
<function-decl name='mmu_interval_notifier_insert' mangled-name='mmu_interval_notifier_insert' filepath='mm/mmu_notifier.c' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_interval_notifier_insert'>
<parameter type-id='4bf7c965' name='interval_sub' filepath='mm/mmu_notifier.c' line='1040' column='1'/>
<parameter type-id='df4b7819' name='mm' filepath='mm/mmu_notifier.c' line='1041' column='1'/>
<parameter type-id='7359adad' name='start' filepath='mm/mmu_notifier.c' line='1041' column='1'/>
<parameter type-id='7359adad' name='length' filepath='mm/mmu_notifier.c' line='1042' column='1'/>
<parameter type-id='b8ae29f5' name='ops' filepath='mm/mmu_notifier.c' line='1043' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='mmu_interval_notifier_remove' mangled-name='mmu_interval_notifier_remove' filepath='mm/mmu_notifier.c' line='1056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_interval_notifier_remove'>
<parameter type-id='4bf7c965' name='interval_sub' filepath='mm/mmu_notifier.c' line='1056' column='1'/>
<function-decl name='mmu_interval_notifier_remove' mangled-name='mmu_interval_notifier_remove' filepath='mm/mmu_notifier.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_interval_notifier_remove'>
<parameter type-id='4bf7c965' name='interval_sub' filepath='mm/mmu_notifier.c' line='1094' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='mmu_interval_read_begin' mangled-name='mmu_interval_read_begin' filepath='mm/mmu_notifier.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_interval_read_begin'>
<parameter type-id='4bf7c965' name='interval_sub' filepath='mm/mmu_notifier.c' line='186' column='1'/>
<function-decl name='mmu_interval_read_begin' mangled-name='mmu_interval_read_begin' filepath='mm/mmu_notifier.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_interval_read_begin'>
<parameter type-id='4bf7c965' name='interval_sub' filepath='mm/mmu_notifier.c' line='192' column='1'/>
<return type-id='7359adad'/>
</function-decl>
<function-decl name='mmu_notifier_synchronize' mangled-name='mmu_notifier_synchronize' filepath='mm/mmu_notifier.c' line='1113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_notifier_synchronize'>
<function-decl name='mmu_notifier_synchronize' mangled-name='mmu_notifier_synchronize' filepath='mm/mmu_notifier.c' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmu_notifier_synchronize'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='mod_delayed_work_on' mangled-name='mod_delayed_work_on' filepath='kernel/workqueue.c' line='1723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mod_delayed_work_on'>
@@ -133016,8 +133018,8 @@
<parameter type-id='eaa32e2f' name='addr' filepath='mm/percpu.c' line='2191' column='1'/>
<return type-id='2522883d'/>
</function-decl>
<function-decl name='percpu_down_write' mangled-name='percpu_down_write' filepath='kernel/locking/percpu-rwsem.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_down_write'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='214' column='1'/>
<function-decl name='percpu_down_write' mangled-name='percpu_down_write' filepath='kernel/locking/percpu-rwsem.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_down_write'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='215' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='percpu_ref_exit' mangled-name='percpu_ref_exit' filepath='lib/percpu-refcount.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_ref_exit'>
@@ -133048,8 +133050,8 @@
<parameter type-id='60219102' name='ref' filepath='lib/percpu-refcount.c' line='345' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='percpu_up_write' mangled-name='percpu_up_write' filepath='kernel/locking/percpu-rwsem.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_up_write'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='242' column='1'/>
<function-decl name='percpu_up_write' mangled-name='percpu_up_write' filepath='kernel/locking/percpu-rwsem.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='percpu_up_write'>
<parameter type-id='652d9ef9' name='sem' filepath='kernel/locking/percpu-rwsem.c' line='243' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='perf_aux_output_begin' mangled-name='perf_aux_output_begin' filepath='kernel/events/ring_buffer.c' line='361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='perf_aux_output_begin'>
@@ -137550,8 +137552,8 @@
<parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='127' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='snd_dma_free_pages' mangled-name='snd_dma_free_pages' filepath='sound/core/memalloc.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dma_free_pages'>
<parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='226' column='1'/>
<function-decl name='snd_dma_free_pages' mangled-name='snd_dma_free_pages' filepath='sound/core/memalloc.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dma_free_pages'>
<parameter type-id='a02b8cd2' name='dmab' filepath='sound/core/memalloc.c' line='227' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='snd_dmaengine_pcm_close_release_chan' mangled-name='snd_dmaengine_pcm_close_release_chan' filepath='sound/core/pcm_dmaengine.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_dmaengine_pcm_close_release_chan'>

View File

@@ -2699,6 +2699,7 @@
__tracepoint_android_vh_show_max_freq
__tracepoint_android_vh_show_resume_epoch_val
__tracepoint_android_vh_show_suspend_epoch_val
__tracepoint_android_vh_subpage_dma_contig_alloc
__tracepoint_android_vh_timer_calc_index
__tracepoint_android_vh_ufs_check_int_errors
__tracepoint_android_vh_ufs_clock_scaling

View File

@@ -400,3 +400,4 @@ 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);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_subpage_dma_contig_alloc);

View File

@@ -126,6 +126,10 @@ DECLARE_HOOK(android_vh_mmap_region,
DECLARE_HOOK(android_vh_try_to_unmap_one,
TP_PROTO(struct vm_area_struct *vma, struct page *page, unsigned long addr, bool ret),
TP_ARGS(vma, page, addr, ret));
struct device;
DECLARE_HOOK(android_vh_subpage_dma_contig_alloc,
TP_PROTO(bool *allow_subpage_alloc, struct device *dev, size_t *size),
TP_ARGS(allow_subpage_alloc, dev, size));
/* macro versions of hooks are no longer required */
#endif /* _TRACE_HOOK_MM_H */

View File

@@ -50,6 +50,7 @@
#include <linux/sizes.h>
#include <linux/dma-map-ops.h>
#include <linux/cma.h>
#include <trace/hooks/mm.h>
#ifdef CONFIG_CMA_SIZE_MBYTES
#define CMA_SIZE_MBYTES CONFIG_CMA_SIZE_MBYTES
@@ -309,14 +310,19 @@ struct page *dma_alloc_contiguous(struct device *dev, size_t size, gfp_t gfp)
#ifdef CONFIG_DMA_PERNUMA_CMA
int nid = dev_to_node(dev);
#endif
bool allow_subpage_alloc = false;
/* CMA can be used only in the context which permits sleeping */
if (!gfpflags_allow_blocking(gfp))
return NULL;
if (dev->cma_area)
return cma_alloc_aligned(dev->cma_area, size, gfp);
if (size <= PAGE_SIZE)
return NULL;
if (size <= PAGE_SIZE) {
trace_android_vh_subpage_dma_contig_alloc(&allow_subpage_alloc, dev, &size);
if (!allow_subpage_alloc)
return NULL;
}
#ifdef CONFIG_DMA_PERNUMA_CMA
if (nid != NUMA_NO_NODE && !(gfp & (GFP_DMA | GFP_DMA32))) {