1. 31 Jul, 2023 2 commits
    • Ajay Kaher's avatar
      test: ftrace: Fix kprobe test for eventfs · 7c1130ea
      Ajay Kaher authored
      kprobe_args_char.tc, kprobe_args_string.tc has validation check
      for tracefs_create_dir, for eventfs it should be eventfs_create_dir.
      
      Link: https://lkml.kernel.org/r/1690568452-46553-11-git-send-email-akaher@vmware.comSigned-off-by: default avatarAjay Kaher <akaher@vmware.com>
      Co-developed-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Tested-by: default avatarChing-lin Yu <chinglinyu@google.com>
      Acked-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      7c1130ea
    • Ajay Kaher's avatar
      eventfs: Move tracing/events to eventfs · 27152bce
      Ajay Kaher authored
      Up until now, /sys/kernel/tracing/events was no different than any other
      part of tracefs. The files and directories within the events directory was
      created when the tracefs was mounted, and also created for the instances in
      /sys/kernel/tracing/instances/<instance>/events. Most of these files and
      directories will never be referenced. Since there are thousands of these
      files and directories they spend their time wasting precious memory
      resources.
      
      Move the "events" directory to the new eventfs. The eventfs will take the
      meta data of the events that they represent and store that. When the files
      in the events directory are referenced, the dentry and inodes to represent
      them are then created. When the files are no longer referenced, they are
      freed. This saves the precious memory resources that were wasted on these
      seldom referenced dentries and inodes.
      
      Running the following:
      
       ~# cat /proc/meminfo /proc/slabinfo  > before.out
       ~# mkdir /sys/kernel/tracing/instances/foo
       ~# cat /proc/meminfo /proc/slabinfo  > after.out
      
      to test the changes produces the following deltas:
      
      Before this change:
      
       Before after deltas for meminfo:
      
         MemFree: -32260
         MemAvailable: -21496
         KReclaimable: 21528
         Slab: 22440
         SReclaimable: 21528
         SUnreclaim: 912
         VmallocUsed: 16
      
       Before after deltas for slabinfo:
      
         <slab>:		<objects>	[ * <size> = <total>]
      
         tracefs_inode_cache:	14472		[* 1184 = 17134848]
         buffer_head:		24		[* 168 = 4032]
         hmem_inode_cache:	28		[* 1480 = 41440]
         dentry:		14450		[* 312 = 4508400]
         lsm_inode_cache:	14453		[* 32 = 462496]
         vma_lock:		11		[* 152 = 1672]
         vm_area_struct:	2		[* 184 = 368]
         trace_event_file:	1748		[* 88 = 153824]
         kmalloc-256:		1072		[* 256 = 274432]
         kmalloc-64:		2842		[* 64 = 181888]
      
       Total slab additions in size: 22,763,400 bytes
      
      With this change:
      
       Before after deltas for meminfo:
      
         MemFree: -12600
         MemAvailable: -12580
         Cached: 24
         Active: 12
         Inactive: 68
         Inactive(anon): 48
         Active(file): 12
         Inactive(file): 20
         Dirty: -4
         AnonPages: 68
         KReclaimable: 12
         Slab: 1856
         SReclaimable: 12
         SUnreclaim: 1844
         KernelStack: 16
         PageTables: 36
         VmallocUsed: 16
      
       Before after deltas for slabinfo:
      
         <slab>:		<objects>	[ * <size> = <total>]
      
         tracefs_inode_cache:	108		[* 1184 = 127872]
         buffer_head:		24		[* 168 = 4032]
         hmem_inode_cache:	18		[* 1480 = 26640]
         dentry:		127		[* 312 = 39624]
         lsm_inode_cache:	152		[* 32 = 4864]
         vma_lock:		67		[* 152 = 10184]
         vm_area_struct:	-12		[* 184 = -2208]
         trace_event_file: 	1764		[* 96 = 169344]
         kmalloc-96:		14322		[* 96 = 1374912]
         kmalloc-64:		2814		[* 64 = 180096]
         kmalloc-32:		1103		[* 32 = 35296]
         kmalloc-16:		2308		[* 16 = 36928]
         kmalloc-8:		12800		[* 8 = 102400]
      
       Total slab additions in size: 2,109,984 bytes
      
      Which is a savings of 20,653,416 bytes (20 MB) per tracing instance.
      
      Link: https://lkml.kernel.org/r/1690568452-46553-10-git-send-email-akaher@vmware.comSigned-off-by: default avatarAjay Kaher <akaher@vmware.com>
      Co-developed-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      Tested-by: default avatarChing-lin Yu <chinglinyu@google.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      27152bce
  2. 30 Jul, 2023 27 commits
  3. 29 Jul, 2023 11 commits