ftrace_set_filter_ip(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ ftrace_set_filter_ip(9) ✨

okay so this is a page straight out of the Kernel API Manual (section 9, the kernel-functions girlies πŸŽ€) and we're talking about ftrace_set_filter_ip β€” lowkey the function that lets you point at a function by address and say "yeah, that one, filter on that one bestie." πŸ’…


πŸ’– NAME πŸ’–

ftrace_set_filter_ip β€” set a function to filter on in ftrace, but by address πŸ¦‹


🌸 SYNOPSIS 🌸

int ftrace_set_filter_ip (struct ftrace_ops *ops , unsigned long ip ,
       int remove , int reset );

like yes she takes four whole args, she's thorough, we respect her 😌


πŸŽ€ ARGUMENTS πŸŽ€

  • ops β€” the ops you're setting the filter with. the main character of this whole situation πŸ‘‘
  • ip β€” the address you're adding to (or removing from) the filter, fr fr πŸ“
  • remove β€” non zero = take the ip out of the filter. bye bestie πŸ‘‹
  • reset β€” non zero = reset all filters before applying this filter. clean slate energy ✨

πŸ¦‹ DESCRIPTION πŸ¦‹

So. Filters denote which functions should be enabled when tracing is enabled β€” that's the whole vibe, that's the assignment πŸ’œ

If ip is NULL, it fails to update the filter. like it just doesn't work, that's the rule, no cap πŸ™ˆ

⚠️ okay this part matters: this can allocate memory, and that memory must be freed before ops can be freed β€” either by removing each filtered addr one by one, or by using ftrace_free_filter(ops). do not skip this step, i'm literally begging πŸ˜­πŸ’€

⭐ SEE ALSO ⭐

Kernel file ./kernel/trace/ftrace.c β€” and here's the whole friend group, no one left out 🫢:

ftrace_lookup_ip(9), ftrace_free_filter(9), ftrace_hash_move(9), ftrace_location_range(9), ftrace_location(9), ftrace_text_reserved(9), ftrace_bug(9), ftrace_update_record(9), ftrace_test_record(9), ftrace_get_addr_new(9), ftrace_get_addr_curr(9), ftrace_rec_iter_start(9), ftrace_rec_iter_next(9), ftrace_rec_iter_record(9), ftrace_run_stop_machine(9), arch_ftrace_update_code(9), ftrace_startup_subops(9), ftrace_shutdown_subops(9), ftrace_regex_open(9), allocate_ftrace_func_mapper(9), ftrace_func_mapper_find_ip(9), ftrace_func_mapper_add_ip(9), ftrace_func_mapper_remove_ip(9), free_ftrace_func_mapper(9), register_ftrace_direct(9), unregister_ftrace_direct(9), modify_ftrace_direct_nolock(9), modify_ftrace_direct(9), hash_add(9), update_ftrace_direct_add(9), hash_sub(9), update_ftrace_direct_del(9), update_ftrace_direct_mod(9), ftrace_set_filter_ips(9), ftrace_ops_set_global_filter(9), ftrace_set_filter(9), ftrace_set_notrace(9), ftrace_set_global_filter(9), ftrace_set_global_notrace(9), ftrace_ops_get_func(9), ftrace_kill(9), ftrace_is_dead(9), register_ftrace_function(9), unregister_ftrace_function(9), ftrace_lookup_symbols(9)


and that's the page!! 🧚 this lil drop is sourced from ./kernel/trace and stamped October 2026 β€” go forth and filter responsibly, mwah πŸ’–πŸ’…

πŸ“¦ where this page comes from