Corey,

On Wed, Jan 7, 2009 at 3:24 AM, Corey J Ashford <cjash...@us.ibm.com> wrote:
>
> Hello,
>
> I'd appreciate it if someone on this mailing list could try out the libpfm
> example: task_smpl and see if it runs correctly for you on any other
> architecture besides Power.
>
> When I run it on my Power5-based machine here, I get a system hang that
> occurs when the munmap call is made.  Looking at the code in the example, I
> reversed the order of the close and munmap... so that the memory is unmapped
> before the fd is closed, and this allows the test to run to completion
> without error and causes no hang.  I also tried commenting out the call to
> pfm_start, to cut  perfmon out of the loop for the most part, and the
> behavior still reproduces - the system hangs unless I reverse those two
> calls.
>
> When the system hangs like this, if I get it to go into Xmon, none of the
> CPU stacks are interesting.  They all appear to be idle.
>
> I run the test as follows:
>
> ./task_smpl /bin/sleep 3
>

This test runs fine on my x86-64 system (Core 2). The order of the
close() vs munmap()
should not matter. The calls can be made in any order. The perfmon
context is destroyed
when the last reference to the file descriptor disappears, mmap counts
as 1. If you do close()
followed by munmap(), the perfmon context is destroyed as part of the
munmap(). This sequence
should not hang for you. What happens if you do a similar sequence but
just with a regular file:
    fd = open("/tmp/foo);
    addr = mmap(fd);
    close(fd);
    munmap(addr);

The test runs to completion on both x86-64 and ia64:

$ task_smpl /bin/sleep 3
sycall base 295
major version 2
minor version 82
[FIXED_CTRL(pmc16)=0xaa pmi0=1 en0=0x2 pmi1=1 en1=0x2 pmi2=1 en2=0x0]
INSTRUCTIONS_RETIRED UNHALTED_CORE_CYCLES
[FIXED_CTR0(pmd16)]
[FIXED_CTR1(pmd17)]
programming 1 PMCS and 2 PMDS
buffer mapped @0x7f999029b000
hdr_cur_offs=128 version=1.0
task terminated
entry 0 PID:32691 TID:32691 CPU:2 LAST_VAL:100000 IIP:0x7f66702246c2
PMD16 :0x0000000000004130
entry 1 PID:32691 TID:32691 CPU:2 LAST_VAL:100213 IIP:0x7f6670227560
PMD16 :0x000000000000ef70
entry 2 PID:32691 TID:32691 CPU:2 LAST_VAL:100060 IIP:0x7f6670233e52
PMD16 :0x000000000000f384
entry 3 PID:32691 TID:32691 CPU:2 LAST_VAL:100155 IIP:0xffffffff805c9e6f
PMD16 :0x00000000000104fe
4 samples (4 in partial buffer) collected in 0 buffer overflows
real 0h00m03.001s user 0h00m00.000s sys 0h00m00.001s
$

------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to