Hello all,

I just was running strace in the writer process and I noticed this pattern:

select(0, NULL, NULL, NULL, {0, 200000}) = 0 (Timeout)
getppid()                               = 4240
time(NULL)                              = 1123773324
mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0x81000) = 0x69ea3000
semop(1409034, 0xffffc0bc, 1)           = 0
<...seeks and writes...>
munmap(0x69ea3000, 528384)              = 0
select(0, NULL, NULL, NULL, {0, 200000}) = 0 (Timeout)
getppid()                               = 4240
time(NULL)                              = 1123773324
mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0x81000) = 0x69ea3000
semop(1605648, 0xffffc0bc, 1)           = 0
<...seeks and writes...>
munmap(0x69ea3000, 528384)              = 0
select(0, NULL, NULL, NULL, {0, 200000}) = 0 (Timeout)


why mmap and munmap each time? mmap and munmap are fairly expensive operations (on some systems), especially on multi cpu machines. munmap in particular generally needs to issue cross calls to the other cpus to ensure any page mappings are invalidated.
Just curious.

Thanks!

-- Alan

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to