9.5 Including Page Classes in the Crashdump Configuration With our crashdump configuration, we need to ensure all of the useful data that was in memory at the time of the system crash is saved. The important phrase in the previous sentence is useful data . Prior to HP-UX 11.0, a crashdump would have constituted a complete image of main memory at the time of the crash. This meant that the dump space we configured had to be at least as big as main memory. In fact, due to the organization of the dump, it was suggested to make the dump space at least 10 percent bigger than main memory. Imagine the amount of dump space we would have had to reserve on a 64-way, 512GB Integrity Superdome partition. Now the default behavior of HP-UX at the time of a crash is to dump only the data elements stored in memory. This includes kernel data pages as well as data pages relating to user processes. To see our current crashdump configuration, we use the crashconf command: root@hpeos003[] crashconf CLASS PAGES INCLUDED IN DUMP DESCRIPTION -------- ---------- ---------------- ------------------------------------- UNUSED 157446 no, by default unused pages USERPG 25089 no, by default user process pages BCACHE 35796 no, by default buffer cache pages KCODE 2581 no, by default kernel code pages USTACK 839 yes, by default user process stacks FSDATA 193 yes, by default file system metadata KDDATA 26932 yes, by default kernel dynamic data KSDATA 13268 yes, by default kernel static data Total pages on system: 262144 Total pages included in dump: 41232 DEVICE OFFSET(kB) SIZE (kB) LOGICAL VOL. NAME ------------ ---------- ---------- ------------ --------------------- 31:0x01f000 117600 2097152 64:0x000002 /dev/vg00/lvol2 ---------- 2097152 root@hpeos003[] The difficult task is knowing how big these data elements are going to be and which ones to include. As far as the page classes to include, the default list that you can see above should be sufficient; we can always get a copy of the kernel code from /stand/vmunix , and user program code is available via the programs stored in the filesystem if we need it. In some instances, we may be requested (by our local HP Response Center) to include more page classes into our dump configuration in order for the Response Center engineers to diagnose a particular problem. Adding page classes can be done online and takes immediate effect. As an example, we may have been experiencing system crashes on a 64-bit machine running 32-bit code. Sometimes, we need to include kernel code pages ( KCODE ) in a crashdump for these types of situations because the /stand/vmunix file may be slightly different than the kernel image in memory. Only when prompted by a Response Center engineer would I include KCODE pages in with our crashdump. We simply use the crashconf command to add pages classes in the dump configuration: root@hpeos003[] crashconf -i KCODE root@hpeos003[] crashconf Crash dump configuration has been changed since boot. CLASS PAGES INCLUDED IN DUMP DESCRIPTION -------- ---------- ---------------- ------------------------------------- UNUSED 157691 no, by default unused pages USERPG 25023 no, by default user process pages BCACHE 35641 no, by default buffer cache pages KCODE 2581 yes, forced kernel code pages USTACK 815 yes, by default user process stacks FSDATA 209 yes, by default file system metadata KDDATA 26916 yes, by default kernel dynamic data KSDATA 13268 yes, by default kernel static data Total pages on system: 262144 Total pages included in dump: 43789 DEVICE OFFSET(kB) SIZE (kB) LOGICAL VOL. NAME ------------ ---------- ---------- ------------ ------------------------- 31:0x01f000 117600 2097152 64:0x000002 /dev/vg00/lvol2 ---------- 2097152 root@hpeos003[] This change was immediate, and the " Total pages included in dump " has gone up accordingly . If this change is to survive a reboot, we must edit the file /etc/rc.config.d/crashconf : root@hpeos003[] vi /etc/rc.config.d/crashconf #!/sbin/sh # @(#)B.11.11_LR # Crash dump configuration # # # CRASHCONF_ENABLED: Configure crash dumps at boot time. CRASHCONF_ENABLED=1 # CRASH_INCLUDED_PAGES: A blank-separated list of page classes that must be # included in any dump. crashconf -v will give you a list of # valid page classes. Specify "all" to force full dumps. CRASH_INCLUDED_PAGES="KCODE" ... root@hpeos003[] Additionally, we should monitor our system over a period of time, especially during the time when the system has most processes running in order to monitor how big the crashdump will be by monitoring the " Total pages included in dump " from the crashconf output. From the output above, we can see the size of a crashdump on this system would be 41,232 pages in size. A page being 4KB means the dump is approximately 160MB currently. Typically, an HP-UX system running only HP-UX will have an initial dump requirement of 10-20 percent the size of main memory. The only dump device configured is /dev/vg00/lvol2 , which is 2GB in size; that's more than enough to store our current crashdump. Should it get to a point were the crashdump wouldn't fit in the dump device(s), we need to configure more dump space. |