Hi Stephane, Thanks for the reply!
> What you are seeing is a side effect of monitoring probably lots of > threads + aggregation. Well, I suppose not since I monitor only single threaded applications for now (SPEC 2006 suite to be specific). Anyway, I think I solved this problem, at least in c program: the key is to use a pseudo terminal instead of pipe (man openpty). In this case threads are coming on the other side of the terminal in real time without any kind of buffering. Hope this helps. -- Sincerely, Sergey Blagodurov On Mon, Jul 13, 2009 at 10:54 PM, stephane eranian<eran...@googlemail.com> wrote: > Sergey, > > > I suspect that what you are seeing has nothing to do with printf buffering. > The line is flushed out on \n. > > What you are seeing is a side effect of monitoring probably lots of > threads + aggregation. > There is no output until a sampling buffer fills up. With > --smpl-entries=1, they fill up quickly > but you may have lots of threads. > > On Thu, Jul 9, 2009 at 11:23 PM, Sergey Blagodurov<blagodu...@gmail.com> > wrote: >> Hello, >> >> I was wondering if it's somehow possible to obtain the output from >> pfmon unbuffered during sampling. >> >> What I want to do is to monitor a program's miss rate in real time >> with pfmon using the following invocation: >> >> pfmon --attach-task <pid of the program to monitor> >> --smpl-module=compact --smpl-entries=1 --long-smpl-periods=100000000 >> --follow-all --aggregate-results -0 -3 >> -eUNHALTED_CORE_CYCLES,L2_LINES_IN:SELF >> >> When I type it in the terminal, all is fine and strings for each >> sample show up in real time as soon as they are available. >> >> Problems start when I try to obtain the same results within c program. >> For that I create pipe and then redirect pfmon's stdout into this >> pipe. in this case, the results show not in real time, but buffered as >> 4k blocks, i.e. only after a block is full, it's being shown on the >> other side of the pipe. The same output with delays between the blocks >> can be obtained by issuing the following command: >> >> pfmon --attach-task <pid of the program to monitor> >> --smpl-module=compact --smpl-entries=1 --long-smpl-periods=100000000 >> --follow-all --aggregate-results -0 -3 >> -eUNHALTED_CORE_CYCLES,L2_LINES_IN:SELF | cat >> >> or by writing into the sample file with --smpl-outfile option: >> >> pfmon --attach-task <pid of the program to monitor> >> --smpl-module=compact --smpl-entries=1 --long-smpl-periods=100000000 >> --follow-all --aggregate-results -0 -3 >> -eUNHALTED_CORE_CYCLES,L2_LINES_IN:SELF --smpl-outfile=pfmon.log >> >> At first I thought that the problem is in the pipe itself. However, >> the output from some other commands doesn't have this same feature. >> For example, the following command brings lines as soon as they appear >> without any kind of buffering: >> >> ping 127.0.0.1 | cat >> >> Any ideas how I can solve this issue are greatly appreciated. >> >> Thank you! >> >> -- >> Sincerely, >> >> Sergey Blagodurov >> >> ------------------------------------------------------------------------------ >> Enter the BlackBerry Developer Challenge >> This is your chance to win up to $100,000 in prizes! For a limited time, >> vendors submitting new applications to BlackBerry App World(TM) will have >> the opportunity to enter the BlackBerry Developer Challenge. See full prize >> details at: http://p.sf.net/sfu/Challenge >> _______________________________________________ >> perfmon2-devel mailing list >> perfmon2-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/perfmon2-devel >> > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel