Check that memory page is filled by zeros when a process gets it in first time

I have to check whether AIX fills physical memory pages by zeros when they are given for a new process (or may be when they are freed from an address space, but it's hardly probable).

In other words when a process gets a new memory page, this one must be cleaned.

I've solved this issue for Solaris using DTrace.
I found out that in Solaris memory pages are cleaned by pagezero routine.
So using entry and return probes of fbt provider in DTrace and getting input and output of the functions which are used in pagezero implementation I achieved my goal.

And now I have to solve the same task in AIX.
As I understand the source code of AIX is closed and that way which was used in Solaris isn't fit.

First of all could you tell me how can I translate the virtual address which was gotten from malloc to the physical address?

I thought it's possible to do using kdb and its tr command.
But when I type the next command in kdb:
(0)> tr 0x20001878
i get the next result:
WARNING: 0000000020001878 invalid sid
where 0x20001878 is the address which was gotten from malloc, and sid - segment identifier.
May be it's because the main purpose of kdb is debugging of kernel extension and my actions are wrong?

My system: AIX 6.1 powerpc

---------- Post updated 11-13-09 at 04:01 PM ---------- Previous update was 11-12-09 at 04:56 PM ----------

Ok. One more question.
How can I get dump of whole computer's main memory (physical memory)?
Does AIX include some utility like memdump?

Hi,

for your second question:

sysdumpstart -p
    Starts dump in the primary dump device
sysdumpstart -s
    Starts dump in the secondary dump device

For your first question - no idea - since all memory is all the time assigned to the vmm, and the vmm itself manages the memory cleanups, it's hard to say what AIX really does to cleanup the memory.
If you execute the crush command like I explained here and right afterwards the system dump, you might be able to determine what exactly happens to the memory.

Kind regards
zxmaus

Thanks a lot.