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?