google / kernel-sanitizers

Linux Kernel Sanitizers, fast bug-detectors for the Linux kernel
https://google.github.io/kernel-sanitizers/
437 stars 87 forks source link

caches support #55

Closed ramosian-glider closed 4 years ago

ramosian-glider commented 4 years ago

Thanks!

Which non-kmalloc caches do you currently have in mind?

The more the better :)

Here's the list of currently handled caches:

[    0.069753] registering cache kmalloc-8
[    0.070185] registering cache kmalloc-16
[    0.070622] registering cache kmalloc-32
[    0.071072] registering cache kmalloc-64
[    0.071509] registering cache kmalloc-96
[    0.071945] registering cache kmalloc-128
[    0.072392] registering cache kmalloc-192
[    0.072866] registering cache kmalloc-256
[    0.073320] registering cache kmalloc-512
[    0.073766] registering cache kmalloc-1k
[    0.074204] registering cache kmalloc-2k
[    0.074663] registering cache kmalloc-4k
[    0.075100] registering cache kmalloc-rcl-8
[    0.075566] registering cache kmalloc-rcl-16
[    0.076040] registering cache kmalloc-rcl-32
[    0.076526] registering cache kmalloc-rcl-64
[    0.077000] registering cache kmalloc-rcl-96
[    0.077561] registering cache kmalloc-rcl-128
[    0.078046] registering cache kmalloc-rcl-192
[    0.078531] registering cache kmalloc-rcl-256
[    0.079017] registering cache kmalloc-rcl-512
[    0.079517] registering cache kmalloc-rcl-1k
[    0.079991] registering cache kmalloc-rcl-2k
[    0.080512] registering cache kmalloc-rcl-4k
[    0.081737] registering cache page->ptl
[    0.082174] registering cache vmap_area
[    0.083269] registering cache task_group
[    0.083718] registering cache pool_workqueue
[    0.088987] registering cache ftrace_event_field
[    0.089524] registering cache trace_event_file
[    0.109512] registering cache numa_policy
[    0.110535] registering cache Acpi-State
[    0.110997] registering cache Acpi-Operand
[    0.122933] registering cache pid
[    0.123336] registering cache signal_cache
[    0.123808] registering cache files_cache
[    0.123932] registering cache mm_struct
[    0.124410] registering cache uts_namespace
[    0.124932] registering cache buffer_head
[    0.125402] registering cache key_jar
[    0.126519] registering cache lsm_file_cache
[    0.126932] registering cache lsm_inode_cache
[    0.128362] registering cache avc_xperms_data
[    0.128869] registering cache avtab_extended_perms
[    0.128936] registering cache names_cache
[    0.129931] registering cache dentry
[    0.131932] registering cache kernfs_node_cache
[    0.132448] registering cache kernfs_iattrs_cache
[    0.133164] registering cache seq_file
[    0.133934] registering cache proc_dir_entry
[    0.134566] registering cache taskstats
[    0.134939] registering cache task_delay_info
[    0.159760] registering cache file_lock_ctx
[    0.159935] registering cache file_lock_cache
[    0.161669] registering cache skbuff_head_cache
[    0.175980] registering cache biovec-64
[    0.176442] registering cache biovec-128
[    0.176915] registering cache biovec-max
[    0.177006] registering cache blkdev_ioc
[    0.177514] registering cache request_queue
[    0.360816] registering cache dquot
[    0.374980] registering cache UDP
[    0.375323] registering cache RAW
[    0.381922] registering cache ip4-frags
[    0.382332] registering cache UNIX
[    0.391366] registering cache posix_timers_cache
[    0.392006] registering cache pid_namespace
[    0.397462] registering cache fasync_cache
[    0.398048] registering cache dio
[    0.398626] registering cache kioctx
[    0.399104] registering cache mbcache
[    0.399587] registering cache ext4_extent_status
[    0.400206] registering cache ext4_pending_reservation
[    0.400862] registering cache ext4_io_end
[    0.401380] registering cache ext4_prealloc_space
[    0.402003] registering cache ext4_allocation_context
[    0.402672] registering cache jbd2_revoke_table_s
[    0.403297] registering cache jbd2_transaction_s
[    0.404114] registering cache nfs_read_data
[    0.404649] registering cache nfs_commit_data
[    0.405198] registering cache nfs_direct_cache
[    0.419134] registering cache intel_context
[    0.419661] registering cache drm_i915_gem_object
[    0.426639] registering cache scsi_sense_cache
[    0.940377] registering cache nf_conntrack_expect
[    0.941850] registering cache RAWv6
[    0.945076] registering cache ip6-frags
[    1.491703] registering cache ext4_groupinfo_4k

We can probably handle caches with constructors as well by calling the constructor in guarded_alloc().