![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /opt/rh/gcc-toolset-11/root/usr/share/systemtap/tapset/linux/ |
// rcu tapset // Copyright (C) 2013, 2017 Red Hat // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General // Public License (GPL); either version 2, or (at your option) any // later version. %{ #include <linux/rcupdate.h> %} function rcu_dereference:long (protected_pointer:long) %{ /* pure */ void *protected_pointer = (void *)(uintptr_t)STAP_ARG_protected_pointer; long fetched_value; /* We call kderef() here to ensure the memory is valid to read. * Note the result is thrown away, then we use the "real" * rcu_dereference function now that we know the address is * safe. */ (void)kderef(sizeof(*protected_pointer), protected_pointer); rcu_read_lock(); fetched_value = (long)rcu_dereference(protected_pointer); rcu_read_unlock(); STAP_RETVALUE = fetched_value; CATCH_DEREF_FAULT(); %}