It's not completely clear to me from the notes whether or not to 
uncompress a vmdump.N needs to be done on the machine that generated the 
vmdump.N, or if it can be done anywhere else. From a support 
perspective, the latter would be nice. i.e. Customer uploads a vmcore.N 
to us and we uncompress it.

Regards,
Alan Hargreaves


Sherry Moore wrote:
> I am sponsoring this fasttrack for Dave Plauger and Steve Sistare.  The
> timer is set for next Tuesday August 18, 2009.  Requesting Micro/Patch
> binding.
>
> The one-pager, project specification and man page diffs are available
> in the materials directory.
>
> Sherry Moore
>
> Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> This information is Copyright 2009 Sun Microsystems
>
> 1. Introduction
>    1.1. Project/Component Working Name: 
>               Fast Crash Dump
>    1.2. Name of Document Author/Supplier:
>               Dave Plauger
>               Steve Sistare
>    1.3. Date of This Document:
>               August 11, 2009
>
> 4. Technical Description:
>     4.1. Details:
>       New command line flags to dumpadm(1M) control how core files
>       are to be saved. The setting is saved across reboots in
>       /etc/dumpadm.conf. The new default behavior is to save files
>       in compressed format instead of always uncompressing them, as
>       it does currently.
>
>       If saving compressed, savecore(1M) copies the core file from
>       the dump device to vmdump.N, where N is the usual dump
>       integer. Copying a core file is much faster than uncompressing
>       it into unix.N and vmcore.N images; and it takes up much less
>       disk space. On systems that dump to the swap area there is
>       less risk that the core image will be over-written by swap
>       activity before it can be extracted.
>
>       savecore(1M) performance has been improved by reading the dump
>       file with fread(3C) instead of pread(2).
>
>       The compressed core dump format is largely unchanged. The dump
>       header and the dump version number are unchanged. However,
>       there are changes to the way memory pages are saved within the
>       compressed file. A compressed dump file must be uncompressed
>       first, by manually running savecore(1M) a second time, before
>       it can be used by other tools. Therefore, there is no impact
>       on mdb(1) due to the changes in compression methods. Once the
>       core dump has been uncompressed, the resulting unix.N and
>       vmcore.N files are in the same format as before.
>
>       This project has introduced a bzip2 compression library [2]
>       into Solaris common code, where it is shared by savecore(1M)
>       and the kernel. The current lzjb compression algorithm is much
>       faster, but also much weaker. The bzip2 library requires much
>       more memory and compute resources. If these resources are
>       available during panic, the kernel will save memory pages with
>       bzip2 instead of lzjb, and savecore(1M) will use the same
>       bzip2 library in order to uncompress the pages.
>
>       The kernel function dumpsys() does most of the work in
>       creating core dump images. The section that saves memory pages
>       has been expanded to support parallelism. Most kernel services
>       are not available during panic. Instead, CPUs spinning in
>       panic_idle() call into dumpsys() and coordinate via
>       memory. These helper CPUs copy pages, compress them, and
>       produce streams of compression data that savecore(1M) can
>       uncompress. The panic CPU acts as the master and does all page
>       mapping and I/O operations.
>
>       There are two compression modes in this implementation. The
>       older method, lzjb is the default on smaller systems. With up
>       to 4 CPUs, it usually speeds up dump by 2-4 times. The new
>       bzip2 library is employed on large systems with many spare
>       CPUs and memory. This can speed up dumps by 4-10 times. The
>       mode is chosen at crash time based on processor type, number
>       of CPUs, and available free memory for buffers.
>
>       The existing savecore -L (live dump) option creates a dump
>       image on a running system. This option is available only when
>       there is a dedicated dump device. In this case, the dump
>       helpers in the kernel run as system tasks.
>
>       file(1) can detect the new compressed format. For example,
>         # file vmcore.0
>         vmcore.0: SunOS 5.11 snv_81 64-bit SPARC crash dump from 'oaf415'
>         # file vmdump.0
>         vmdump.0: SunOS 5.11 snv_81 64-bit SPARC compressed crash dump from 
> 'oaf415'
>
>       For more information, see the project specification in the
>       materials directory.
>
>     4.2. Bug/RFE Number(s):
>
>       RFE 6828976 Fast Crash Dump
>     
>     4.5. Interfaces:
>
>       New command line flags to dumpadm(1M). And additions to the
>       meaning of existing flags to savecore(1M).
>
>       Micro/patch binding requested.
>
>       INTERFACE           COMMITMENT LEVEL        COMMENT
>       
>       dumpadm -z (1M) Committed       Enables save compressed, or not.
>
>        
>     4.6. Doc Impact:
>     
>       Man page changes for dumpadm(1M) and savecore(1M).
>
>       See appendix A for diffs.
>
> 6. Resources and Schedule:
>
>    6.4. Product Approval Committee requested information:
>       6.4.1. Consolidation or Component Name:
>               OS/Net
>
>    6.5. ARC review type: Fasttrack
>
>    6.6. ARC Exposure: Open.
>
> A. Man pages
>     A.1 dumpadm(1M)
>     A.2 savecore(1M)
>
>     A.1 Man pages dumpadm(1M)
>
>
> System Administration Commands                        dumpadm(1M)
>
> NAME
>      dumpadm - configure operating system crash dump
>
> SYNOPSIS
>      /usr/sbin/dumpadm [-nuy] [-c content-type] [-d dump-device]
>           [-m mink | minm | min%] [-s savecore-dir]
>           [-r root-dir] [-z y | n]                                 |
>
> DESCRIPTION
>      The  dumpadm  program  is  an  administrative  command  that
>      manages the configuration of the operating system crash dump
>      facility. A crash dump is a disk copy of the physical memory
>      of  the computer at the time of a fatal system error. When a
>      fatal operating system error occurs,  a  message  describing
>      the  error  is  printed to the console. The operating system
>      then generates a crash dump by writing the contents of  phy-
>      sical  memory to a predetermined dump device, which is typi-
>      cally a local disk partition. The dump device can be config-
>      ured by way of dumpadm. Once the crash dump has been written
>      to the dump device, the system will reboot.
>
>      Fatal operating system errors can be caused by bugs  in  the  |
>      operating system, its associated device drivers and loadable  |
>      modules, or by faulty  hardware.  Whatever  the  cause,  the  |
>      crash  dump  itself  provides invaluable information to your  |
>      support engineer to aid in diagnosing the problem. As  such,  |
>      it  is  vital  that the crash dump be retrieved and given to  |
>      your support provider. Following an operating system  crash,  |
>      the  savecore(1M)  utility  is executed automatically during  |
>      boot to retrieve the crash dump from the  dump  device,  and  |
>      write  it  to  your file system in compressed form to a file  |
>      name vmdump.X, where X is an integer identifying  the  dump.  |
>      Afterwards,  savecore(1M)  can  be  invoked  on  the same or  |
>      another system to expand the compressed crash dump to a pair  |
>      of  files  named unix.X and vmcore.X. The directory in which  |
>      the crash dump is saved on reboot  can  also  be  configured  |
>      using dumpadm.
>
>
>      For systems with a UFS root file system,  the  default  dump  |
>      device  is  configured  to be an appropriate swap partition.  |
>      Swap partitions are  disk  partitions  reserved  as  virtual  |
>      memory backing store for the operating system. Thus, no per-  |
>      manent information resides in swap to be overwritten by  the  |
>      dump. See swap(1M). For systems with a ZFS root file system,  |
>      dedicated ZFS volumes are used for swap and dump areas.  For  |
>      further  information  about setting up a dump area with ZFS,  |
>      see the ZFS Administration Guide. To view the  current  dump  |
>      configuration, use the dumpadm command with no arguments:
>
>        example# dumpadm
>
>              Dump content: kernel pages
>               Dump device: /dev/dsk/c0t0d0s1 (swap)
>        Savecore directory: /var/crash/saturn
>          Savecore enabled: yes
>           Save compressed: yes                                     |
>
>      When no options are specified, dumpadm  prints  the  current  |
>      crash  dump  configuration.  The  example  shows  the set of  |
>      default values: the dump content is  set  to  kernel  memory  |
>      pages  only,  the  dump device is a swap disk partition, the  |
>      directory for savecore files is set to  /var/crash/hostname.  |
>      savecore(1M)  is set to run automatically on reboot and save  |
>      the crash dump in a compressed format.
>
>      -z y | n                                                      |
>          Modify the dump configuration to control  the  operation  |
>          of savecore on reboot. The options are y (yes) to enable  |
>          saving core files in a compressed  format,  and  n  (no)  |
>          automatically   uncompress  the  crash  dump  file.  The  |
>          default is yes, because crash dump  files  can  be  very  |
>          large  and  will require less file system space if saved  |
>          in a compressed format.                                   |
>
>
> EXAMPLES
>      Example 1 Reconfiguring The Dump Device To A Dedicated  Dump
>      Device:
>
>      The following command reconfigures  the  dump  device  to  a
>      dedicated dump device:
>
>        example# dumpadm -d /dev/dsk/c0t2d0s2
>
>                   Dump content: kernel pages
>                    Dump device: /dev/dsk/c0t2d0s2 (dedicated)
>             Savecore directory: /var/crash/saturn
>               Savecore enabled: yes
>                Save compressed: yes                                |
>
>     A.2 Man pages for savecore(1M)
>
> System Administration Commands                       savecore(1M)
>
> NAME
>      savecore - save a crash dump of the operating system
>
> SYNOPSIS
>      /usr/bin/savecore [-Lvd] [-f dumpfile] [directory]
>
>
> DESCRIPTION
>      The savecore utility  saves  a  crash  dump  of  the  kernel
>      (assuming  that one was made) and writes a reboot message in
>      the shutdown log. It is invoked by the dumpadm service  each
>      time the system boots.
>
>      savecore can be configured by dumpadm(1M) to save crash dump  |
>      data  in either a compressed or uncompressed format. For the  |
>      compressed format, savecore saves the crash dump data in the  |
>      file  directory/vmdump.N, where N in the name is replaced by  |
>      a number which grows every time  savecore  is  run  in  that  |
>      directory.  The  compressed  file  can  be uncompressed in a  |
>      separate  step  using  the  -f  dumpfile  option.  For   the  |
>      uncompressed  format,  savecore saves the crash dump data in  |
>      the file directory/vmcore.N and  the  kernel's  namelist  in  |
>      directory/unix.N.
>
> OPTIONS
>
>      -f dumpfile    Save a crash dump  from  the  specified  file  |
>                     instead  of  from  the  system's current dump  |
>                     device.   When   given    directory/vmdump.N,  |
>                     uncompress  the  file to vmcore.N and unix.N,  |
>                     where  N  is  the  same  number  as  in   the  |
>                     compressed name.                               |
>
>                     This option may also be useful if the  infor-  |
>                     mation  stored  on  the  dump device has been  |
>                     copied to an on-disk file  by  means  of  the  |
>                     dd(1M) command.
>
> FILES
>      directory/vmdump.n                                            |
>      directory/vmcore.n
>      directory/unix.n
>
>   

-- 
Alan Hargreaves - http://blogs.sun.com/tpenta
Principal Field Technologist (Kernel/VOSJEC/Performance)
Asia Pacific/Emerging Markets
Sun Microsystems


Reply via email to