<div xmlns="http://www.w3.org/1999/xhtml">I found that it is advised to check first @count(Statist) ans if it positve applut to @max operator</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">There is also interesting @entry operator.</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">My script still produces warning but produces result</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">Herfe is the script:</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml"><div># script arguments :</div><div># $1 - total test duration in sec</div><div># ex: stap -v  <script>  100 5000</div><div>global Sum=0;</div><div>global Requests=0;</div><div> </div><div>global Statist; // collects Sum on the end of sampling interval to calculate avg and max</div><div> </div><div>global allocs;</div><div> </div><div>probe kernel.function("__kmalloc").return { </div><div>    if (isinstr(sprint_backtrace(),"argus"))  {</div><div>        //printf("[%ld] Ret  Alloc =%ld Ret Addr=%p\n",gettimeofday_us(), alloc_size, $return);</div><div>        Sum+=@entry($size);</div><div>        Statist <<< Sum</div><div>        allocs[$return]=@entry($size);  /* Store requested size by address */</div><div>    }</div><div>}</div><div> </div><div>probe kernel.function("kfree") { </div><div>    if ($x in allocs ) {</div><div>        try {</div><div>        freed_size = allocs[$x];</div><div>        }</div><div>        catch {</div><div>            printf("Non existing allocs[ Addr]=%p\n", $x);</div><div>        }</div><div>        delete allocs[$x];</div><div> </div><div>        if (freed_size == 0 ) {</div><div>            next;</div><div>        }</div><div> </div><div>probe timer.s($1) {</div><div>        exit();  /* Exit on timer , go to probe end */</div><div>}</div><div> </div><div>probe end { </div><div>    if (@count(Statist) > 0) {  /* if statistics is not empty */</div><div>        printf(" <EXIT> Alloc Requests=%ld Max=%ld Total Size=%ld\n", Requests, @max(Statist),Sum);</div><div>    }</div><div>    else {</div><div>        printf(" <EXIT> Alloc Requests=0 Max=0 Total Size=0\n");</div><div>    }</div><div>}</div></div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">06.01.2019, 15:40, "Lev Olshvang" <levonshe@yandex.com>:</div><div xmlns="http://www.w3.org/1999/xhtml">> Hi,</div><div xmlns="http://www.w3.org/1999/xhtml">></div><div xmlns="http://www.w3.org/1999/xhtml">> I debugged systemtap scripts which monitor __kmalloc() which are coming from my my 2 module MOD1.KO, MOD2.ko</div><div xmlns="http://www.w3.org/1999/xhtml">></div><div xmlns="http://www.w3.org/1999/xhtml">> and they are working perfectly on my Ubuntu 16.10 kernel 4.8.17 VM with gcc 6.2.0 and systemtap package v3.0-7 amd64 . This is a custom kernel and I compiled it with debuginfo myself</div><div xmlns="http://www.w3.org/1999/xhtml">></div><div xmlns="http://www.w3.org/1999/xhtml">> Then I moved this scripts to Amazon ?Ubuntu VM 16 I again compiled kernel with debuginfo myself.</div><div xmlns="http://www.w3.org/1999/xhtml">></div><div xmlns="http://www.w3.org/1999/xhtml">> My modules are compiled with EXTRA_CFLAGS += -g -DDEBUG</div><div xmlns="http://www.w3.org/1999/xhtml">></div><div xmlns="http://www.w3.org/1999/xhtml">> gcc on this host is v5.5.0</div><div xmlns="http://www.w3.org/1999/xhtml">> I tried systemtap 3.1, 3,3 4.0 , same error</div><div xmlns="http://www.w3.org/1999/xhtml">></div><div xmlns="http://www.w3.org/1999/xhtml">> sudo /usr/local/stap_v4.0/bin/stap -v -d MOD1.ko -d MOD2 ./kmalloc_argus.stp 1 1</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 1: parsed user script and 472 library scripts using 91988virt/65864res/5032shr/61236data kb, in 260usr/50sys/320real ms.</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 2: analyzed script: 5 probes, 7 functions, 1 embed, 6 globals using 131248virt/106220res/5972shr/100496data kb, in 640usr/70sys/711real ms.</div><div xmlns="http://www.w3.org/1999/xhtml">> WARNING: missing unwind/symbol data for module 'MOD1.ko'</div><div xmlns="http://www.w3.org/1999/xhtml">> WARNING: missing unwind/symbol data for module 'MOD2.ko'</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 3: translated to C into "/tmp/stap7YDmYH/stap_9b711e9d9caac3ad6af772118b2bf956_4495_src.c" using 131248virt/106476res/6228shr/100496data kb, in 350usr/500sys/850real ms.</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 4: compiled C into "stap_9b711e9d9caac3ad6af772118b2bf956_4495.ko" in 38820usr/166550sys/191672real ms.</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 5: starting run.</div><div xmlns="http://www.w3.org/1999/xhtml">> ERROR: empty aggregate near operator '@max' at ./kmalloc_argus.stp:58:3</div><div xmlns="http://www.w3.org/1999/xhtml">> WARNING: Number of errors: 1, skipped probes: 0</div><div xmlns="http://www.w3.org/1999/xhtml">> WARNING: /usr/local/stap_v4.0/bin/staprun exited with status: 1</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 5: run completed in 130usr/1160sys/1748real ms.</div><div xmlns="http://www.w3.org/1999/xhtml">> Pass 5: run failed. [man error::pass5]</div>