commit e40b26c5bbaab6fc8068fe5c111bdfeff0963408 Author: Paulo Andrade Date: Tue Jun 12 18:48:26 2018 -0400 rhbz1547238: adapt vfs.add_to_page_cache probes The add_to_page_cache_lru variant should also be probed, along with kernel.function("add_to_page_cache_locked"), but if present, not the add_to_page_cache variant. This backward compatibility needed a little bit of tapset probe point operator jiujitsu to go beyond Paulo's initial patch. diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp index 6f5fe77..1fe71ae 100644 --- a/tapset/linux/vfs.stp +++ b/tapset/linux/vfs.stp @@ -908,9 +908,16 @@ probe __vfs.ext4_mpage_readpages.return = size = @entry($nr_pages) } + +/* newer style */ +probe vfs.__add_to_page_cache = + kernel.function("add_to_page_cache_locked"), + kernel.function("add_to_page_cache_lru") + { } + probe vfs.add_to_page_cache = - kernel.function("add_to_page_cache_locked") !, - kernel.function("add_to_page_cache") + vfs.__add_to_page_cache !, + kernel.function("add_to_page_cache") /* older style */ { dev = $mapping->host->i_sb->s_dev devname = __find_bdevname(dev, $mapping->host->i_sb->s_bdev) @@ -925,9 +932,16 @@ probe vfs.add_to_page_cache = argstr = sprintf("%d, %d", ino, $offset) } + +/* newer style */ +probe vfs.__add_to_page_cache.return = + kernel.function("add_to_page_cache_locked").return, + kernel.function("add_to_page_cache_lru").return + { } + probe vfs.add_to_page_cache.return = - kernel.function("add_to_page_cache_locked").return !, - kernel.function("add_to_page_cache").return + vfs.__add_to_page_cache.return !, + kernel.function("add_to_page_cache").return /* older style */ { name = "vfs.add_to_page_cache" retstr = sprintf("%d", $return) diff --git a/testsuite/semok/vfs_add_to_page_cache.stp b/testsuite/semok/vfs_add_to_page_cache.stp new file mode 100755 index 0000000..5edea75 --- /dev/null +++ b/testsuite/semok/vfs_add_to_page_cache.stp @@ -0,0 +1,4 @@ +#! stap -p2 + +probe vfs.add_to_page_cache { println(name, argstr) } +probe vfs.add_to_page_cache.return { println(name, retstr) }