home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / memsum23.zip / memsum.doc next >
Text File  |  1999-08-09  |  64KB  |  1,187 lines

  1. MEMSUM 2.3 Virtual Storage Analysis Report
  2. Author: RIchard Moore
  3. Date: 9th August 1999
  4.  
  5. MEMSUM is a utility for analysing application memory usage in the
  6. shared and private arenas from Dump Formatter or Kernel Debugger
  7. output.
  8.  
  9. Version 2.0 is a new and extended version of the MEMSUM utility. It 
  10. has been completely re-written.  It includes new and updated reports
  11. which are selectable from the command line. The syntax for MEMSUM is 
  12. as follows:
  13.  
  14.  
  15.     MEMSUM <options> <file> <options>             
  16.                                                 
  17.     where options are:                          
  18.        /P Process usage report                  
  19.        /M Allocation by module                  
  20.        /H High memory reports with /P and /M    
  21.        /D Detailed reports with /P and /M       
  22.        /I Share index to be reported with /M
  23.        /Rn Region summary and LDT usage         
  24.            where n = 2   for OS/2 V2.11          
  25.            where n = 3   for OS/2 V3 up to FP 18 
  26.            where n = 4   for OS/2 V3 FP 19+ and V4 - default
  27.            where n = S3  for OS/2 V3 SMP         
  28.            where n = U45 for OS/2 V4.5 Warp Server for e-business, UNI
  29.            where n = S45 for OS/2 V4.5 Warp Server for e-business, SMP
  30.        /A Requests all reports, except Share index calculation.
  31.        /I and /R may be specified with /A                   
  32.  
  33.  
  34. If no parameters are entered then syntax help is displayed.
  35.  
  36. The input file is a consolidated log file containing the output from 
  37. the kernel debugger or dump formatter .MA, .MO and .MC commands. From 
  38. the KDB or DF command line enter:
  39.  
  40. .MA;.MO;.MC
  41.  
  42. An easy way to obtain this information is to use the enhanced process 
  43. dump in Fix Pack 35 of Warp 3 and Fix Pack 10 of Warp 4. Specify the 
  44. following commands to dump the memory management control blocks:
  45.  
  46. PDUMPUSR SYSVM
  47. PROCDUMP ON
  48. PROCDUMP FORCE /PID:0
  49.  
  50. The resulting PDUMP.nnn file is somewhat less then 1Mb and is 
  51. non-disruptive to the system. To monitor storage usage a number of 
  52. process dumps can be taken at timed intervals or by using a REXX exec 
  53. and the SEGSHR utility when available memory has dropped to some 
  54. specific level. See SEGSHR PACKAGE on OS2TOOLS.
  55.  
  56.  
  57. If you do this using a PM front-end such as PMDF, be sure to minimise 
  58. the window while output is being logged, otherwise the text will 
  59. overrun the application's display buffer and result in garbage being 
  60. displayed and logged.
  61.  
  62.  
  63. There are 8 possible reports: 
  64.  
  65. 1) System Summary by Arena
  66.  
  67.    This gives an overview of memory usage in each of the arena types.
  68.  
  69.  
  70. 2) Compatibility Region Process Usage Report.
  71.  
  72.    This summarises memory acquired in the compatibility region 
  73.    (0-512Mb) by each process by memory category.
  74.    Memory is owned by either the system or a process. Only when the 
  75.    owner dies or explicitly frees the memory is it released. This 
  76.    report will give an indication of which processes are responsible 
  77.    for memory acquisition.
  78.  
  79. 3) High Memory Region Process Usage Report.
  80.  
  81.    This is the same as 2) but for High Private and High Shared arenas 
  82.    only. High memory regions are >= 512Mb and are only available to
  83.    Warp 3.0 SMP and Warp E-Server.
  84.  
  85. 4) Detailed Process Usage Report.
  86.  
  87.    This shows for each process and each storage category the module 
  88.    responsible for the allocation and the size of the allocation.
  89.  
  90. 5) Compatibility Region Allocation Report.
  91.  
  92.    This summarises the memory allocated by each module by storage 
  93.    category. A particular module responsible for memory shortage will 
  94.    show up here.
  95.  
  96.    If the /I option is specified then for shared arena allocations,
  97.    an index showing percentage shared will be calculated and shown
  98.    below and to the left of the allocation size.
  99.  
  100. 6) High Memory Region Allocation Report.
  101.  
  102.    This is the same as 5) but for High Private and High Shared arenas.
  103.  
  104. 7) Detailed Allocation Report.
  105.    
  106.    This give a break-down of each allocation by each module, showing
  107.    the storage category and accessing process.
  108.  
  109. 8) LDT Segment Availability Report
  110.  
  111.    This shows the compatibility region from the perspective of 16-bit 
  112.    programs and the effect of allocation on the Local Descriptor Table 
  113.    - a H/W defined table, limited to 8192 entries. Each entry maps 64K 
  114.    of virtual address space. The compatibility region shared arena is 
  115.    further subdivided into regions for specific purposes. The usage of 
  116.    these is shown in this report. The size and number of these depends 
  117.    upon the version of OS2. This report will pin-point a process that 
  118.    is responsible for pushing the private/shared boundary into the 
  119.    shared arena.
  120.  
  121.  
  122. Each of these report is described in detail:
  123.  
  124. System Summary by Arena
  125. -----------------------
  126.  
  127. Example:
  128.  
  129. System Summary by Arena.
  130.   System Arena Upper Address Limit:                    fffc0000
  131.   System Arena Current Lower Limit:                    80000000
  132.   System Arena Lower Address Limit:                    80000000
  133.  
  134.   High Shared Arena Upper Address Limit:               80000000
  135.   High Shared Arena Current Lower Limit:               5ffff000
  136.   High Shared Arena Lower Address Limit:               2c000000
  137.  
  138.   High Private Arena Upper Address Limit:              2c000000
  139.   High Private Arena Lower Address Limit:              20000000
  140.  
  141.   Shared Arena Upper Address Limit:                    1fff0000
  142.   Shared Arena Current Lower Limit:                    13a30000
  143.   Shared Arena Lower Address Limit:                    04000000
  144.  
  145.   Private Upper Address Limit:                         04000000
  146.   Private Arena Lower Address Limit:                   00010000
  147.   VDM Private Arena Lower Address Limit:               00000000
  148.  
  149.  
  150.  
  151. This report is always generated. It shows an overall summary of memory 
  152. usage by arena type. The things to note here are that the system and 
  153. shared arenas expand down, while private arenas expand up. Since 
  154. private arena address spaces occupy parallel address ranges and expand 
  155. towards the shared arenas then the largest private and high private 
  156. arenas are shown. This point is illustrated by the following diagram:
  157.     
  158.    ┌───────────────────┐
  159.    │                   │
  160.    │                   │
  161.    │ System Arena      │
  162.    │                   │
  163.    │                   │
  164.    │                   │
  165.    │                   │
  166.    ├───────────────────┤
  167.    │ High Shared       │
  168.    │                   │
  169.    │                   │
  170.    ├-------------------┤ <- current minimum mapped
  171.    │                   │
  172.    ├───────────────────┤ <- shared/private boundary
  173.    │                   │                   ┌──────────────────┐
  174.    │ High Private      │                   │                  │
  175.    │                   ├───────────────────┤                  │
  176.    │ Process 1         │ Process 2         │ Process 3        │
  177.    ├───────────────────┼───────────────────┴──────────────────┘
  178.    │                   │
  179.    │ Shared Arena      │
  180.    │                   │
  181.    ├-------------------┤ <- current minimum mapped
  182.    │                   │
  183.    │                   │
  184.    │                   │
  185.    ├───────────────────┤ <- shared private boundary
  186.    │                   ├───────────────────┐
  187.    │ Private Arena     │                   │                  
  188.    │                   │                   │                  
  189.    │ Process 1         │ Process 2         ├──────────────────┐
  190.    │                   │                   │ Process 3        │
  191.    └───────────────────┴───────────────────┴──────────────────┘
  192.     
  193.  
  194. The extent of the shared arenas is defined to occupy the address space 
  195. from the largest private arena through to highest boundary, which is 
  196. fixed. For each of the shared arenas the current minimum address mapped
  197. is given. The difference between this and the private/shared boundary 
  198. indicates a guaranteed range of unused memory. There may be more, if 
  199. there are holes above the current minimum. 
  200.  
  201. What to look for:
  202. If the current minimum and private/shared boundaries meet then this is 
  203. an indication that memory has been severely constrained. The constraint 
  204. may have subsequently been relieved. 
  205.  
  206. The initial upper limit of the high private arenas is 20000000 and 
  207. (low) private arenas is 04000000. If the current shared minimum has 
  208. moved down to the initial private upper limits then investigate the 
  209. shared arena(s). If the private upper limit has moved up to the shared 
  210. current limit then investigate the private arenas.
  211.  
  212. What to ignore:
  213. High memory is only available to Warp 3 SMP and Warp E-Server Uni and 
  214. SMP.
  215.  
  216. The system arenas current minimum is fixed, so ignore the fact that it 
  217. meets the upper limit of the high shared arena. That's not an 
  218. indication of a problem.
  219.  
  220. Notes:
  221. Upper limits are greater than the achievable address.     
  222. Lower limits are less than or equal to the achievable address.
  223. The first 64K is disallowed in non-VDM processes.
  224. Granularity of virtual address space allocation is 64K in non-VDM 
  225. private and shared arenas. It is 4K elsewhere.
  226.  
  227.  
  228. Compatibility Region Process Usage Report:
  229. ------------------------------------------
  230.  
  231. Example:
  232.  
  233.  
  234.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv hptda pid process
  235.        0        0       64        0      832      640     1536      192       64      256 03a2 0005 g:lanmsgex.exe
  236.        0        0       64       64      512      128      768      192       64      256 03aa 0006 g:cntrl.exe
  237.        0        0       64        0      960      704     1728      192       64      256 03b6 0007 g:landll.exe
  238.        0        0       64        0      512      128      704      192       64      256 03c7 0008 g:logdaem.exe
  239.    19456     5184      832     3072     6272     1088    35904     1600       64     1664 03fb 0009 g:epwrout.exe
  240.    19456    11584     2496     3520    11584     1280    49920     7680       64     7744 041a 000a g:pmshell.exe
  241.    19456     3584      832     3264     4480      320    31936      768       64      832 04e2 000c g:harderr.exe
  242.       64        0       64        0      576      448     1152      256       64      320 058a 000d g:epwmux.exe
  243.    19456     5184     1408     3200     7808     1600    38656     2624       64     2688 059c 000e g:epwmp.exe
  244.    19456     5184     1408     3136     7040      704    36928     1664       64     1728 05bd 000f g:pmspool.exe
  245.    19456     5184     2880     3200    12416     2112    45248     9792       64     9856 05cf 0011 g:pmshell.exe
  246.    19456     5184      832     3136     6208     1280    36096     1408       64     1472 05d0 0010 g:epwpsi.exe
  247.       64        0       64        0      576      448     1152      256       64      320 06a7 0012 g:epwmux.exe
  248.    19456     5312      896     3136     6272      512    35584      960      192     1152 06fc 0013 g:cmd.exe
  249.    19456     5312      832     3136     6272      512    35520     1344       64     1408 0721 0019 g:highmem.exe
  250.  
  251. There is one line per process and within each line the total memory 
  252. acquired in K-bytes is given per storage category. The categories are 
  253. as follows:
  254.           
  255.    give:     Giveable shared memory allocated using DosAllocSharedMem 
  256.              with OBJ_GIVEABLE flag.
  257.  
  258.    get:      Gettable memory allocated using DosAllocaSharedMem with 
  259.              the OBJ_GETTABLE flag.
  260.  
  261.    giveget:  Giveable and Gettable memory allocated using 
  262.              DosAllocSharedMem with both OBJ_GIVEABLE and OBJ_GETTABLE 
  263.              flags.
  264.  
  265.    named:    Named shared memory allocated using DosAllocSharedMem 
  266.              where a name has been specified.
  267.  
  268.    global:   Global shared memory that is either code or part of a 
  269.              global data segment of a DLL.
  270.  
  271.    instance: DLL instance data. This occupies address space in the 
  272.              shared arena, but is mapped to a per-process copy of the 
  273.              data in physical memory.
  274.  
  275.    tot shr:  Total of shared arena allocations. 
  276.              tot shr = give + get + giveget + named + global + instance
  277.  
  278.    private:  Private arena allocations made using DosAllocMem or R/W 
  279.              segments of executable modules.
  280.  
  281.    p-shared: Read-only Data and Code segments allocated in the private 
  282.              arena. The physical storage for these are shared with 
  283.              other processes running the same executable module.
  284.  
  285.    tot prv:  Total of private memory allocations.
  286.              tot prv = private + p-shared
  287.  
  288.    hptda:    The handle for the process - a unique identifier used by 
  289.              OS2 Memory Management.
  290.  
  291.    pid:      The process identifier - a unique identified used by OS2 
  292.              Task Management.
  293.  
  294.    process:  The name of the executable running in that process.
  295.              Pid 1 is the system process and is named *sysinit.
  296.              VDMs are show as *vdm.
  297.  
  298. What to look for:
  299.  
  300. Compare the columns looking for a category that stands out way above 
  301. any other.
  302.  
  303. Look particularly closely at the shared arena since, whether or not a 
  304. process accesses data in the shared arena, once allocated that address 
  305. range for a shared arena object is reserved for all processes.
  306.  
  307.  
  308. Look closely at instance data. In general there is no good reason to 
  309. use more than 4 bytes!! Instance data can always be indirected to the 
  310. private arena using a single instance data pointer.
  311.  
  312. Notes:
  313.  
  314. Granularity of virtual address space allocation in the compatibility 
  315. region is 64Kb.
  316.  
  317.  
  318. High Memory Region Process Usage Report:
  319. ----------------------------------------
  320.  
  321. Example:
  322.  
  323. High Memory Region Process Usage Report in K-bytes.
  324.    Break-down by accessing process and storage category.
  325.  
  326.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv hptda pid process
  327.        0        0        0   524292        0        0   524292       16        0       16 0721 0019 g:highmem.exe
  328.  
  329. This is identical in form to the Compatibility Region Process Usage 
  330. Report. 
  331.  
  332. Notes:
  333.  
  334. Granularity of virtual address space allocation is 4Kb.
  335.  
  336. High memory is only available on Warp 3.0 SMP and Warp E-server.
  337.  
  338. There is currently no way of allocating Global, Instance and P-shared 
  339. categories. So these will always appear as 0.
  340.  
  341. The amount of address space available to the High Memory Region is 
  342. defined by the VIRTUALADDRESSLIMIT specification in CONFIG.SYS. In this 
  343. example VIRTUALADDRESSLIMIT=2048 was specified, defining a total of 
  344. 2Gb for application usage (512Mb Compatibility  Region and 1.5Gb High 
  345. Memory Region).
  346.  
  347.  
  348. Detailed Process Usage Report:
  349. ------------------------------
  350.  
  351. Example:
  352.  
  353. Accessing process: hptda=06fc pid=0013 g:cmd.exe
  354.         High Memory Give allocators:
  355.         High Memory Get allocators:
  356.         High Memory GiveGet allocators:
  357.         High Memory Named Shared allocators:
  358.         High Memory Global allocators:
  359.         High Memory Instance allocators:
  360.         High Memory Private allocators:
  361.         High Memory Shared Private allocators:
  362.         Give allocators:
  363.                     19456Kb hmte=042c g:pmmerge.dll
  364.         Get allocators:
  365.                       128Kb hmte=0100 g:doscall1.dll
  366.                      5120Kb hmte=042c g:pmmerge.dll
  367.                        64Kb hmte=0437 g:pmgpi.dll
  368.         GiveGet allocators:
  369.                        64Kb hmte=0100 g:doscall1.dll
  370.                       768Kb hmte=042c g:pmmerge.dll
  371.                        64Kb hmte=0447 g:pmspl.dll
  372.         Named Shared allocators:
  373.                        64Kb hmte=0100 g:doscall1.dll
  374.                      3072Kb hmte=042c g:pmmerge.dll
  375.         Global allocators:
  376.                       512Kb hmte=0100 g:doscall1.dll
  377.                       832Kb hmte=042c g:pmmerge.dll
  378.                       640Kb hmte=0437 g:pmgpi.dll
  379.                       960Kb hmte=043e g:softdraw.dll
  380.                       512Kb hmte=0447 g:pmspl.dll
  381.                        64Kb hmte=044d g:spl1b.dll
  382.                       192Kb hmte=0464 g:pmviop.dll
  383.                       128Kb hmte=048a g:bvhwndw.dll
  384.                       448Kb hmte=0500 g:display.dll
  385.                       192Kb hmte=050a g:ibmvga32.dll
  386.                       320Kb hmte=050f g:ibmdev32.dll
  387.                       768Kb hmte=0515 g:dspres.dll
  388.                       512Kb hmte=0519 g:pmatm.dll
  389.                       192Kb hmte=0526 g:uconv.dll
  390.         Instance allocators:
  391.                       128Kb hmte=0100 g:doscall1.dll
  392.                        64Kb hmte=042c g:pmmerge.dll
  393.                        64Kb hmte=0447 g:pmspl.dll
  394.                        64Kb hmte=044d g:spl1b.dll
  395.                       192Kb hmte=0526 g:uconv.dll
  396.         Private allocators:
  397.                       128Kb hmte=0100 g:doscall1.dll
  398.                       640Kb hmte=042c g:pmmerge.dll
  399.                        64Kb hmte=0500 g:display.dll
  400.                       128Kb hmte=0703 g:cmd.exe
  401.         Shared Private allocators:
  402.                       192Kb hmte=0703 g:cmd.exe
  403.  
  404. This report shows a detailed break-down by allocating module within 
  405. storage category for each process. The categories are as described in 
  406. the Compatibility Region Process Usage Report. Where no value is given 
  407. then no storage is allocated in that category. The allocating module is
  408. identified by its unique handle (hmte) and name. Where no name is given
  409. then the allocating module has been free, but the storage it allocated 
  410. is still in use by the process.
  411.  
  412.  
  413. Compatibility Region Allocation Report:
  414. ---------------------------------------
  415.  
  416. Example:
  417.  
  418.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system hmte name 
  419.        0        0        0        0      128        0      128        0        0        0        0        0 006f g:epwinit.dll
  420.        0      128        0        0      192        0      320        0        0        0        0        0 0081 g:bvhvga.dll
  421.        0      256        0        0      256        0      512        0        0        0        0        0 0088 g:bvhsvga.dll
  422.        0        0        0        0        0        0        0        0        0        0     1728       64 009e g:screen01.sys
  423.        0     3392       64      320      512      128     4416     3072        0     3072        0        0 0100 g:doscall1.dll
  424.        0        0        0        0      192        0      192        0        0        0        0        0 010b g:rexxinit.dll
  425.        0        0        0        0      128      128      256     2240        0     2240        0        0 010c g:snd.dll
  426.        0        0        0        0        0        0        0        0        0        0        0       64 011a !lanmsgdd
  427.        0        0        0        0        0        0        0        0        0        0        0      128 012d !landlldd
  428.        0        0        0        0        0        0        0        0        0        0       64        0 0157 !pmdd
  429.        0        0        0        0      128        0      128        0        0        0        0        0 0392 g:waveproc.dll
  430.        0        0        0        0      192       64      256      128        0      128        0        0 039c g:lanmsgdl.dll
  431.        0        0        0        0        0        0        0       64       64      128        0        0 03a0 g:lanmsgex.exe
  432.        0        0        0       64        0        0       64      192       64      256        0        0 03b1 g:cntrl.exe
  433.        0        0        0        0        0        0        0       64       64      128        0        0 03bd g:landll.exe
  434.        0        0        0        0      128       64      192        0        0        0        0        0 03c0 g:acslan.dll
  435.        0        0        0        0        0        0        0      192       64      256        0        0 03ce g:logdaem.exe
  436.        0        0        0        0        0        0        0      128       64      192        0        0 0402 g:epwrout.exe
  437.        0        0        0        0       64      128      192        0        0        0        0        0 0407 g:epwpsi16.dll
  438.        0        0        0        0      192      128      320      320        0      320        0        0 040b g:epwnl001.dll
  439.      128        0        0        0       64      320      512      448        0      448        0        0 0411 g:epwsvc16.dll
  440.        0        0        0        0        0        0        0      384       64      448        0        0 0421 g:pmshell.exe
  441.        0        0     1024       64      896      256     2240      192        0      192        0        0 0425 g:pmwp.dll
  442.    19456     5120      768     3072      832       64    29312    14976        0    14976        0        0 042c g:pmmerge.dll
  443.        0       64        0        0      640        0      704        0        0        0        0        0 0437 g:pmgpi.dll
  444.        0        0        0        0      960        0      960        0        0        0        0        0 043e g:softdraw.dll
  445.        0        0       64        0      512       64      640        0        0        0        0        0 0447 g:pmspl.dll
  446.        0        0        0        0       64       64      128        0        0        0        0        0 044d g:spl1b.dll
  447.        0        0        0        0      320        0      320        0        0        0        0        0 0450 g:imp.dll
  448.        0        0      768       64      960       64     1856        0        0        0        0        0 0456 g:pmctls.dll
  449.        0        0        0        0      192        0      192        0        0        0        0        0 045b g:seamless.dll
  450.        0        0        0        0      128      128      256        0        0        0        0        0 0460 g:som.dll
  451.        0       64        0        0      192        0      256        0        0        0        0        0 0464 g:pmviop.dll
  452.        0        0        0        0      128        0      128        0        0        0        0        0 048a g:bvhwndw.dll
  453.        0     2048        0        0      320        0     2368        0        0        0        0        0 048d g:videopmi.dll
  454.        0        0        0        0      192        0      192      512        0      512        0        0 0498 g:ibmgpmi.dll
  455.        0      512        0        0      320        0      832      512        0      512        0        0 04c5 g:videocfg.dll
  456.        0        0        0        0      320       64      384      640        0      640        0        0 04ca g:helpmgr.dll
  457.        0        0        0       64        0        0       64      128       64      192        0       64 04e9 g:harderr.exe
  458.        0        0        0        0      448        0      448      512        0      512        0        0 0500 g:display.dll
  459.        0        0        0        0      192        0      192        0        0        0        0        0 050a g:ibmvga32.dll
  460.        0        0        0        0      320        0      320        0        0        0        0        0 050f g:ibmdev32.dll
  461.        0        0        0        0      768        0      768        0        0        0        0        0 0515 g:dspres.dll
  462.        0        0        0        0      512        0      512        0        0        0        0        0 0519 g:pmatm.dll
  463.        0        0        0        0       64        0       64        0        0        0        0        0 051e g:sysmono.fon
  464.        0        0        0        0       64        0       64        0        0        0        0        0 0520 g:courier.fon
  465.        0        0        0        0      128        0      128        0        0        0        0        0 0522 g:helv.fon
  466.        0        0        0        0       64        0       64        0        0        0        0        0 0524 g:times.fon
  467.        0        0        0        0      192      192      384        0        0        0        0        0 0526 g:uconv.dll
  468.        0        0        0        0      128        0      128        0        0        0        0        0 0540 g:fka.dll
  469.        0        0        0        0      128        0      128        0        0        0        0        0 055e g:pmwpmri.dll
  470.        0        0        0        0        0        0        0      384       64      448        0        0 0591 g:epwmux.exe
  471.        0        0        0       64        0        0       64      128       64      192        0        0 05a3 g:epwmp.exe
  472.        0        0        0        0      128      256      384       64        0       64        0        0 05ab g:epwcua.dll
  473.        0        0        0        0        0        0        0      128       64      192        0        0 05c4 g:pmspool.exe
  474.        0        0        0        0        0        0        0      320       64      384        0        0 05d8 g:epwpsi.exe
  475.        0        0        0        0      128      320      448      128        0      128        0        0 05de g:epwpro.dll
  476.        0        0        0        0      128        0      128        0        0        0        0        0 062c g:mdm.dll
  477.        0        0      448        0     1024      128     1600       64        0       64        0        0 062f g:mmpm.dll
  478.        0        0        0        0      192      128      320      512        0      512        0        0 0635 g:mmpmcrts.dll
  479.        0        0        0        0      128        0      128        0        0        0        0        0 0660 g:mmio.dll
  480.        0        0        0        0      128       64      192      832        0      832        0        0 066e g:somir.dll
  481.        0        0        0        0       64       64      128      448        0      448        0        0 0672 g:somtc.dll
  482.        0        0        0        0      192       64      256        0        0        0        0        0 0699 g:nwiapi.dll
  483.        0        0        0        0      512       64      576       64        0       64        0        0 06bd g:wpprint.dll
  484.        0        0        0        0      256      128      384        0        0        0        0        0 06d8 g:wpconfig.dll
  485.        0        0        0        0       64      128      192        0        0        0        0        0 06dc g:wincfg.dll
  486.        0        0        0        0       64        0       64        0        0        0        0        0 06e0 g:wpconmri.dll
  487.        0        0        0        0      128      128      256      576        0      576        0        0 06e2 g:mmsnd.dll
  488.        0        0        0        0       64       64      128      128        0      128        0        0 06f0 g:minxobj.dll
  489.        0        0        0        0        0        0        0      128      192      320        0        0 0703 g:cmd.exe
  490.        0        0        0        0        0        0        0      512       64      576        0        0 072b g:highmem.exe
  491.  
  492.    total    total    total    total    total    total    total  maximum  maximum  maximum    total  maximum
  493.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system
  494. -----------------------------------------------------------------------------------------------------------
  495.    19584    11584     3136     3712    15360     3392    56768    14976      192    14976     1792      128
  496.  
  497. This report shows a similar summary to that of the Process Usage 
  498. Reports, except in this case each line is per allocating module.
  499.  
  500. There are four new columns:
  501.  
  502.    p-system:   Private memory allocated by a system module e.g. a 
  503.                device driver.
  504.  
  505.    s-system:   Shared memory allocated by a system module e.g. a device
  506.                driver.
  507.  
  508.    hmte:       Gives the allocating module's handle   
  509.  
  510.    name:       Names the allocating module.
  511.  
  512.  
  513. At the end of the report a total for each shared memory type and a
  514. maximum for private memory type is given. 
  515.  
  516.  
  517. What to look for:
  518.  
  519. Use the totals line to pin-point a particular storage category that is 
  520. causing a problem.
  521.  
  522. High Memory Region Allocation Report:
  523. -------------------------------------
  524.  
  525. Example:
  526.  
  527.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system hmte name 
  528.        0        0        0   524292        0        0   524292       16        0       16        0        0 072b g:highmem.exe
  529.  
  530.    total    total    total    total    total    total    total  maximum  maximum  maximum    total  maximum
  531.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system
  532. -----------------------------------------------------------------------------------------------------------
  533.        0        0        0   524292        0        0   524292       16        0       16        0        0
  534.  
  535. This report is of the same format as the Compatibility Region
  536. Allocation Report except that it covers the high memory region. See
  537. High Memory Region Process Usage Report for information on 
  538. the high memory region.
  539.  
  540. Share Index Calculation:
  541. ------------------------
  542.  
  543. This appears as addition information with the Compatibility and High Memory Region Allocation 
  544. reports. This can be useful where there is no obvious large allocation depleting shared memory.
  545. It helps to distinguish between the case where there is genuinely no shared memory available and
  546. where is have been depleted due to lack of sharing of shared objects. In the latter cases, larger
  547. objects will show up with low share indices. Indices can be averaged to give an approximate
  548. combined index for a number of modules. Do not add indices!
  549.  
  550. Where sharing is low there are possible strategies to remedy this situation:
  551.  
  552. 1) Merge DLLs to reduce wastage due granularity of allocation (64K in the Compatibility Region
  553. and 4K in the High Memory Region).
  554.  
  555. 2) Redirect Instance Data to Private Arena when much greater then 64K. Allocate the re-directed
  556. data at DLL Initialisation time and save only the pointer to it in an instance data variable.
  557.  
  558.  
  559. Example:
  560.  
  561. Compatibility Region Allocation Report in K-bytes.
  562.    Break-down by allocating module and storage category.
  563.  
  564.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system hmte name 
  565.        0        0        0        0      128        0      128        0        0        0        0        0 006f g:epwinit.dll
  566. 00%      00%      00%      00%      05%      00%      05%     
  567.        0      128        0        0      192        0      320        0        0        0        0        0 0081 g:bvhvga.dll
  568. 00%      10%      00%      00%      10%      00%      10%     
  569.        0      256        0        0      256        0      512        0        0        0        0        0 0088 g:bvhsvga.dll
  570. 00%      10%      00%      00%      10%      00%      10%     
  571.        0        0        0        0        0        0        0        0        0        0     1728       64 009e g:screen01.sys
  572. 00%      00%      00%      00%      00%      00%      00%     
  573.        0     3392       64      320      512      128     4416     3072        0     3072        0        0 0100 g:doscall1.dll
  574. 00%      21%      78%      21%      78%      78%      30%     
  575.        0        0        0        0      192        0      192        0        0        0        0        0 010b g:rexxinit.dll
  576. 00%      00%      00%      00%      05%      00%      05%     
  577.        0        0        0        0      128      128      256     2240        0     2240        0        0 010c g:snd.dll
  578. 00%      00%      00%      00%      21%      21%      21%     
  579.        0        0        0        0        0        0        0        0        0        0        0       64 011a !lanmsgdd
  580. 00%      00%      00%      00%      00%      00%      00%     
  581.        0        0        0        0        0        0        0        0        0        0        0      128 012d !landlldd
  582. 00%      00%      00%      00%      00%      00%      00%     
  583.        0        0        0        0        0        0        0        0        0        0       64        0 0157 !pmdd
  584. 00%      00%      00%      00%      00%      00%      00%     
  585.        0        0        0        0      128        0      128        0        0        0        0        0 0392 g:waveproc.dll
  586. 00%      00%      00%      00%      05%      00%      05%     
  587.        0        0        0        0      192       64      256      128        0      128        0        0 039c g:lanmsgdl.dll
  588. 00%      00%      00%      00%      10%      10%      10%     
  589.        0        0        0        0        0        0        0       64       64      128        0        0 03a0 g:lanmsgex.exe
  590. 00%      00%      00%      00%      00%      00%      00%     
  591.        0        0        0       64        0        0       64      192       64      256        0        0 03b1 g:cntrl.exe
  592. 00%      00%      00%      05%      00%      00%      05%     
  593.        0        0        0        0        0        0        0       64       64      128        0        0 03bd g:landll.exe
  594. 00%      00%      00%      00%      00%      00%      00%     
  595.        0        0        0        0      128       64      192        0        0        0        0        0 03c0 g:acslan.dll
  596. 00%      00%      00%      00%      05%      05%      05%     
  597.        0        0        0        0        0        0        0      192       64      256        0        0 03ce g:logdaem.exe
  598. 00%      00%      00%      00%      00%      00%      00%     
  599.        0        0        0        0        0        0        0      128       64      192        0        0 0402 g:epwrout.exe
  600. 00%      00%      00%      00%      00%      00%      00%     
  601.        0        0        0        0       64      128      192        0        0        0        0        0 0407 g:epwpsi16.dll
  602. 00%      00%      00%      00%      26%      26%      26%     
  603.        0        0        0        0      192      128      320      320        0      320        0        0 040b g:epwnl001.dll
  604. 00%      00%      00%      00%      15%      15%      15%     
  605.      128        0        0        0       64      320      512      448        0      448        0        0 0411 g:epwsvc16.dll
  606. 10%      00%      00%      00%      36%      36%      30%     
  607.        0        0        0        0        0        0        0      384       64      448        0        0 0421 g:pmshell.exe
  608. 00%      00%      00%      00%      00%      00%      00%     
  609.        0        0     1024       64      896      256     2240      192        0      192        0        0 0425 g:pmwp.dll
  610. 00%      00%      10%      05%      10%      10%      10%     
  611.    19456     5120      768     3072      832       64    29312    14976        0    14976        0        0 042c g:pmmerge.dll
  612. 47%      42%      47%      47%      47%      47%      46%     
  613.        0       64        0        0      640        0      704        0        0        0        0        0 0437 g:pmgpi.dll
  614. 00%      47%      00%      00%      47%      00%      47%     
  615.        0        0        0        0      960        0      960        0        0        0        0        0 043e g:softdraw.dll
  616. 00%      00%      00%      00%      47%      00%      47%     
  617.        0        0       64        0      512       64      640        0        0        0        0        0 0447 g:pmspl.dll
  618. 00%      00%      47%      00%      47%      47%      47%     
  619.        0        0        0        0       64       64      128        0        0        0        0        0 044d g:spl1b.dll
  620. 00%      00%      00%      00%      47%      47%      47%     
  621.        0        0        0        0      320        0      320        0        0        0        0        0 0450 g:imp.dll
  622. 00%      00%      00%      00%      10%      00%      10%     
  623.        0        0      768       64      960       64     1856        0        0        0        0        0 0456 g:pmctls.dll
  624. 00%      00%      21%      21%      21%      21%      21%     
  625.        0        0        0        0      192        0      192        0        0        0        0        0 045b g:seamless.dll
  626. 00%      00%      00%      00%      10%      00%      10%     
  627.        0        0        0        0      128      128      256        0        0        0        0        0 0460 g:som.dll
  628. 00%      00%      00%      00%      10%      10%      10%     
  629.        0       64        0        0      192        0      256        0        0        0        0        0 0464 g:pmviop.dll
  630. 00%      05%      00%      00%      21%      00%      17%     
  631.        0        0        0        0      128        0      128        0        0        0        0        0 048a g:bvhwndw.dll
  632. 00%      00%      00%      00%      15%      00%      15%     
  633.        0     2048        0        0      320        0     2368        0        0        0        0        0 048d g:videopmi.dll
  634. 00%      10%      00%      00%      10%      00%      10%     
  635.        0        0        0        0      192        0      192      512        0      512        0        0 0498 g:ibmgpmi.dll
  636. 00%      00%      00%      00%      10%      00%      10%     
  637.        0      512        0        0      320        0      832      512        0      512        0        0 04c5 g:videocfg.dll
  638. 00%      05%      00%      00%      05%      00%      05%     
  639.        0        0        0        0      320       64      384      640        0      640        0        0 04ca g:helpmgr.dll
  640. 00%      00%      00%      00%      15%      15%      15%     
  641.        0        0        0       64        0        0       64      128       64      192        0       64 04e9 g:harderr.exe
  642. 00%      00%      00%      10%      00%      00%      10%     
  643.        0        0        0        0      448        0      448      512        0      512        0        0 0500 g:display.dll
  644. 00%      00%      00%      00%      42%      00%      42%     
  645.        0        0        0        0      192        0      192        0        0        0        0        0 050a g:ibmvga32.dll
  646. 00%      00%      00%      00%      42%      00%      42%     
  647.        0        0        0        0      320        0      320        0        0        0        0        0 050f g:ibmdev32.dll
  648. 00%      00%      00%      00%      42%      00%      42%     
  649.        0        0        0        0      768        0      768        0        0        0        0        0 0515 g:dspres.dll
  650. 00%      00%      00%      00%      42%      00%      42%     
  651.        0        0        0        0      512        0      512        0        0        0        0        0 0519 g:pmatm.dll
  652. 00%      00%      00%      00%      42%      00%      42%     
  653.        0        0        0        0       64        0       64        0        0        0        0        0 051e g:sysmono.fon
  654. 00%      00%      00%      00%      05%      00%      05%     
  655.        0        0        0        0       64        0       64        0        0        0        0        0 0520 g:courier.fon
  656. 00%      00%      00%      00%      05%      00%      05%     
  657.        0        0        0        0      128        0      128        0        0        0        0        0 0522 g:helv.fon
  658. 00%      00%      00%      00%      10%      00%      10%     
  659.        0        0        0        0       64        0       64        0        0        0        0        0 0524 g:times.fon
  660. 00%      00%      00%      00%      05%      00%      05%     
  661.        0        0        0        0      192      192      384        0        0        0        0        0 0526 g:uconv.dll
  662. 00%      00%      00%      00%      42%      42%      42%     
  663.        0        0        0        0      128        0      128        0        0        0        0        0 0540 g:fka.dll
  664. 00%      00%      00%      00%      05%      00%      05%     
  665.        0        0        0        0      128        0      128        0        0        0        0        0 055e g:pmwpmri.dll
  666. 00%      00%      00%      00%      10%      00%      10%     
  667.        0        0        0        0        0        0        0      384       64      448        0        0 0591 g:epwmux.exe
  668. 00%      00%      00%      00%      00%      00%      00%     
  669.        0        0        0       64        0        0       64      128       64      192        0        0 05a3 g:epwmp.exe
  670. 00%      00%      00%      10%      00%      00%      10%     
  671.        0        0        0        0      128      256      384       64        0       64        0        0 05ab g:epwcua.dll
  672. 00%      00%      00%      00%      05%      05%      05%     
  673.        0        0        0        0        0        0        0      128       64      192        0        0 05c4 g:pmspool.exe
  674. 00%      00%      00%      00%      00%      00%      00%     
  675.        0        0        0        0        0        0        0      320       64      384        0        0 05d8 g:epwpsi.exe
  676. 00%      00%      00%      00%      00%      00%      00%     
  677.        0        0        0        0      128      320      448      128        0      128        0        0 05de g:epwpro.dll
  678. 00%      00%      00%      00%      05%      05%      05%     
  679.        0        0        0        0      128        0      128        0        0        0        0        0 062c g:mdm.dll
  680. 00%      00%      00%      00%      05%      00%      05%     
  681.        0        0      448        0     1024      128     1600       64        0       64        0        0 062f g:mmpm.dll
  682. 00%      00%      05%      00%      05%      05%      05%     
  683.        0        0        0        0      192      128      320      512        0      512        0        0 0635 g:mmpmcrts.dll
  684. 00%      00%      00%      00%      05%      05%      05%     
  685.        0        0        0        0      128        0      128        0        0        0        0        0 0660 g:mmio.dll
  686. 00%      00%      00%      00%      05%      00%      05%     
  687.        0        0        0        0      128       64      192      832        0      832        0        0 066e g:somir.dll
  688. 00%      00%      00%      00%      05%      05%      05%     
  689.        0        0        0        0       64       64      128      448        0      448        0        0 0672 g:somtc.dll
  690. 00%      00%      00%      00%      05%      05%      05%     
  691.        0        0        0        0      192       64      256        0        0        0        0        0 0699 g:nwiapi.dll
  692. 00%      00%      00%      00%      05%      05%      05%     
  693.        0        0        0        0      512       64      576       64        0       64        0        0 06bd g:wpprint.dll
  694. 00%      00%      00%      00%      05%      05%      05%     
  695.        0        0        0        0      256      128      384        0        0        0        0        0 06d8 g:wpconfig.dll
  696. 00%      00%      00%      00%      05%      05%      05%     
  697.        0        0        0        0       64      128      192        0        0        0        0        0 06dc g:wincfg.dll
  698. 00%      00%      00%      00%      05%      05%      05%     
  699.        0        0        0        0       64        0       64        0        0        0        0        0 06e0 g:wpconmri.dll
  700. 00%      00%      00%      00%      05%      00%      05%     
  701.        0        0        0        0      128      128      256      576        0      576        0        0 06e2 g:mmsnd.dll
  702. 00%      00%      00%      00%      05%      05%      05%     
  703.        0        0        0        0       64       64      128      128        0      128        0        0 06f0 g:minxobj.dll
  704. 00%      00%      00%      00%      05%      05%      05%     
  705.        0        0        0        0        0        0        0      128      192      320        0        0 0703 g:cmd.exe
  706. 00%      00%      00%      00%      00%      00%      00%     
  707.        0        0        0        0        0        0        0      512       64      576        0        0 072b g:highmem.exe
  708. 00%      00%      00%      00%      00%      00%      00%     
  709.  
  710.    total    total    total    total    total    total    total  maximum  maximum  maximum    total  maximum
  711.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system
  712. -----------------------------------------------------------------------------------------------------------
  713.    19584    11584     3136     3712    15360     3392    56768    14976      192    14976     1792      128
  714.  47%      27%      23%      41%      24%      18%      33%     
  715.  
  716. High Memory Region Allocation Report in K-bytes.
  717.    Break-down by allocating module and storage category.
  718.  
  719.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system hmte name 
  720.        0        0        0   524292        0        0   524292       16        0       16        0        0 072b g:highmem.exe
  721. 00%      00%      00%      05%      00%      00%      05%     
  722.  
  723.    total    total    total    total    total    total    total  maximum  maximum  maximum    total  maximum
  724.     give      get  giveget    named   global instance  tot shr  private p-shared  tot prv s-system p-system
  725. -----------------------------------------------------------------------------------------------------------
  726.        0        0        0   524292        0        0   524292       16        0       16        0        0
  727.  00%      00%      00%      05%      00%      00%      05%     
  728.  
  729.  
  730. In this report the percentages appear below the allocations and are left aligned to allow
  731. allocation sizes to be compared visually.
  732.  
  733. The percentages give an indication of the degree to which virtual address space is shared. If
  734. a memory range is shared by all processes then the Share Index will be 100%. 
  735.  
  736. The calculation used to determine the Share Index is:
  737.  
  738.     (SUM (page * number of accessing processes) ) / (total pages * total processes)
  739.  
  740. In this algorithm, "total pages" refers to the maximum number allocated to the region being 
  741. calculated.
  742.  
  743. For example:
  744.  
  745. Suppose there are 10 processes each sharing 10 pages and only one of those processes accesses
  746. 2 other pages, while two of those processes share 3 more pages - 15 pages in total.
  747.  
  748. The 10 page object is 100% shared.
  749. The 2 page object is 20% shared.
  750. The 3 page object is 10% shared.
  751.  
  752. The overall share index for shared memory is calculated as a weighted average:
  753.  
  754.    100 * ((10 * 10) + (2 * 1) + (3 * 2)) / (15 * 10) = 100 * (107/150) = 71%
  755.  
  756. The overall share indices are given in the totals columns. The absolute overall index is
  757. given under "total tot share"
  758.  
  759.  
  760.  
  761. Detailed Allocation Report:
  762. ---------------------------
  763.  
  764. Example:
  765.  
  766. Allocating module: g:rexxinit.dll
  767.         Give accessors:
  768.         Get accessors:
  769.         GiveGet accessors:
  770.         Named shared accessors:
  771.         Global accessors:
  772.                       192Kb pid=000a g:pmshell.exe
  773.         Instance accessors:
  774.         Private accessors:
  775.         Shared Private accessors:
  776.  
  777. Allocating module: g:snd.dll
  778.         Give accessors:
  779.         Get accessors:
  780.         GiveGet accessors:
  781.         Named shared accessors:
  782.         Global accessors:
  783.                       128Kb pid=000e g:epwmp.exe
  784.                       128Kb pid=000f g:pmspool.exe
  785.                       128Kb pid=0011 g:pmshell.exe
  786.                       128Kb pid=000a g:pmshell.exe
  787.         Instance accessors:
  788.                       128Kb pid=000e g:epwmp.exe
  789.                       128Kb pid=000f g:pmspool.exe
  790.                       128Kb pid=0011 g:pmshell.exe
  791.                       128Kb pid=000a g:pmshell.exe
  792.         Private accessors:
  793.                       704Kb pid=0011 g:pmshell.exe
  794.                       512Kb pid=000f g:pmspool.exe
  795.                       512Kb pid=000a g:pmshell.exe
  796.                       512Kb pid=000e g:epwmp.exe
  797.         Shared Private accessors:
  798.  
  799.  
  800. This report show a detail break-down of storage allocated by each 
  801. module by storage category and accessing process.
  802.  
  803. The format is similar to that to the Detailed Process Usage Report q.v.
  804.  
  805.  
  806. LDT segment availability report:
  807. --------------------------------
  808.  
  809. Example:
  810.  
  811. Private LTD 16-bit segment availability for Pid: 0001     1023/1023 (hptda=0071 *sysinit)
  812. Private LTD 16-bit segment availability for Pid: ----     1023/1023 (hptda=008d *zombie)
  813. Private LTD 16-bit segment availability for Pid: 0002     1023/1023 (hptda=00ad *vdm)
  814. Private LTD 16-bit segment availability for Pid: 0005     1016/1023 (hptda=03a2 g:lanmsgex.exe)
  815. Private LTD 16-bit segment availability for Pid: 0006     1017/1023 (hptda=03aa g:cntrl.exe)
  816. Private LTD 16-bit segment availability for Pid: 0007     1015/1023 (hptda=03b6 g:landll.exe)
  817. Private LTD 16-bit segment availability for Pid: 0008     1017/1023 (hptda=03c7 g:logdaem.exe)
  818. Private LTD 16-bit segment availability for Pid: 0009      994/1023 (hptda=03fb g:epwrout.exe)
  819. Private LTD 16-bit segment availability for Pid: 000a      889/1023 (hptda=041a g:pmshell.exe)
  820. Private LTD 16-bit segment availability for Pid: 000b     1023/1023 (hptda=04bc *vdm)
  821. Private LTD 16-bit segment availability for Pid: 000c     1007/1023 (hptda=04e2 g:harderr.exe)
  822. Private LTD 16-bit segment availability for Pid: 000d     1016/1023 (hptda=058a g:epwmux.exe)
  823. Private LTD 16-bit segment availability for Pid: 000e      978/1023 (hptda=059c g:epwmp.exe)
  824. Private LTD 16-bit segment availability for Pid: 000f      990/1023 (hptda=05bd g:pmspool.exe)
  825. Private LTD 16-bit segment availability for Pid: 0011      854/1023 (hptda=05cf g:pmshell.exe)
  826. Private LTD 16-bit segment availability for Pid: 0010      997/1023 (hptda=05d0 g:epwpsi.exe)
  827. Private LTD 16-bit segment availability for Pid: 0012     1016/1023 (hptda=06a7 g:epwmux.exe)
  828. Private LTD 16-bit segment availability for Pid: 0013     1002/1023 (hptda=06fc g:cmd.exe)
  829. Private LTD 16-bit segment availability for Pid: 0019      998/1023 (hptda=0721 g:highmem.exe)
  830.  
  831. Minimum Private LTD 16-bit segment availability:           854/1023 
  832.  
  833. NB: 0 availability implies that the boundary sentinal will need to move for further expansion.
  834.     See System Summary Report for Shared Arena Current Lower Limit to see whether this is possible.
  835.  
  836. Shared arena regions for OS/2 4.5 Warp Server for e-business SMP
  837. General Shared Arena R/W LTD 16-bit segment availability: 5407/6144 
  838. Shared R/W Basing Region LDT 16-bit segment availability:  241/256 
  839. Packed Region LTD 16-bit segment availability:             256/256 
  840. Global Shared Region LDT 16-bit segment availability:      318/511 
  841.  
  842. NB: The Packed Region is donated to the General R/W Shared Region when not defined.
  843.  
  844. Total Shared Arena LDT 16-bit segment availability:       6222/7167 
  845.  
  846.  
  847.  
  848.  
  849. This report shows a break-down of 64Kb LDT segment availability by 
  850. region and process.  The regions are OS2 version dependent and default 
  851. to OS2 Warp 4.0. Each line shows the available/maximum number of 
  852. segments for each region. Thus 998/1023 shows that 998 64Kb segments 
  853. are free out of a total of 1023. 
  854.  
  855. Although this reports shows the 16-bit perspective of the compatibility 
  856. region 32-bit programs automatically impact the LDT since for 16/32-bit
  857. compatibility every allocation in the compatibility region results in an
  858. LDT descriptor assignment, each of which lies on a 64K boundary and has
  859. a maximum size of 64K. The LDT is a hardware defined table. It has 8K 
  860. entries, therefore is able to map 8K * 64Kb = 512Mb address space - 
  861. hence the size of the compatibility region.
  862.  
  863. The shared arena is subdivided into a number of specialised regions whose 
  864. sizes and locations vary with different versions of OS2 - see picture below.
  865.  
  866. These regions are used for the following purposes:
  867.  
  868. Protected Region:
  869.  
  870. Reserved for protected DLLs.  Since this is almost never been used it
  871. is wasted storage.  From Warp 3.0 Fix Pack 19 it was removed.  Prior to
  872. that it can be removed by specifying MEMMAN=NOPROTECT in CONFIG.SYS
  873.  
  874. Packed Region:
  875.  
  876. Reserved for packing 16-bit DLL code segments onto single physical 
  877. pages. If it's not being used, remove this specialisation by specifying
  878. MEMMAN=NOPACK in CONFIG.SYS. By not have a packed region, slightly more
  879. physical storage might be used for loading 16-bit DLLs. By having a 
  880. packed region, unusable holes in the shared arena may exist. Code loaded into 
  881. the Packed Region is swappable, therefore removing the packed region may cause
  882. a slight reduction in SWAPPER.DAT size.
  883.  
  884.  
  885. Global Shared Region:
  886.  
  887. Reserved for DLL Read-only and code segments. 
  888. For OS/2 2.1, 2.11, 3.0 and 4.0 the Protected and Packed Regions are technically
  889. part of the GSR, though MEMSUM report the against GSR the usage outside of those
  890. regions.  If either the Packed or Protected Regions are not defined, then add the
  891. reported counts for the undefined regions to the GSR.
  892. For OS/2 Warp 3 SMP and Warp 4.5 Server for e-business the Packed Region is donated 
  893. to the Shared R/W region.
  894. From fix pack 19 of Warp 3.0 and GA Warp 4.0 the Protected Region is automatically 
  895. donated to the GSR.
  896.  
  897.  
  898.  
  899.  
  900. Based Region: 
  901.  
  902. An area within the GSR in which system DLLs base their RO and Code 
  903. segments.
  904.  
  905.  
  906. Share R/W Basing Region:
  907. An area used by system DLLs in which to base their R/W segments. Below 
  908. this region is the general purpose R/W allocation region. This region is also
  909. used for genral purpose allocations.
  910.  
  911. Minimum Private LDT 16- bit Segment Availability:
  912. This shows the greatest impact of any private arena on the compatibility 
  913. region. Zero availability implies that the boundary sentinal for the shared
  914. arena will need to move further expansion of the largest private arena. Whether
  915. this is possible depends on the Current Lower Limit for the Shared Arena as shown
  916. in the System Summary Report. Note that the so called expansion region that lies 
  917. between the shared and private arenas is technically donated to shared arena.
  918.  
  919. Total Shared Arena LDT 16-bit segment availability:
  920. This show the overall impact of the shared arena on the compatibility 
  921. region.
  922.  
  923.  
  924.  
  925. Compatibility Region Layout for OS2 2.0 though 2.11:
  926.  
  927.  
  928.    │                   │ 0x20000000
  929.    ├───────────────────┤
  930.    │                   │ top 64Kb reserved
  931.    │ Protected Region  │
  932.    │ 64Mb              │
  933.    │                   │ 0x1c000000
  934.    ├-------------------┤ 
  935.    │ Based Region      │
  936.    │ 32Mb              │ 0x1a000000
  937.    ├-------------------┤ 
  938.    │ Packed Region     │
  939.    │ 32Mb              │ 0x18000000
  940.    ├-------------------┤ 
  941.    │        .          │
  942.    │        .          │
  943.    │        .          │
  944.    │        v          │
  945.    │                   │
  946.    │                   │
  947.    │                   │
  948.    │ General R/W       │
  949.    │                   │
  950.    │                   │
  951.    │                   │
  952.    │        ^          │
  953.    │        .          │
  954.    │        .          │ 0x04000000
  955.    ├───────────────────┼─-----------------─┬─-----------------─┐
  956.    │                   ├───────────────────┤                   │
  957.    │ Private Arena     │                   │                   │
  958.    │ Process 1         │ Process 2         ├───────────────────┤
  959.    │ 64Mb              │                   │ Process 3         │  bottom 64kb reserved in non-VDMs
  960.    └───────────────────┴───────────────────┴───────────────────┘
  961.  
  962.  
  963.  
  964.  
  965. Compatibility Region Layout for OS2 3.0 to FP18:
  966.  
  967.  
  968.    │                   │ 0x20000000
  969.    ├───────────────────┤ <────────────────────┐
  970.    │                   │ top 64Kb reserved    │
  971.    │ Protected Region  │                      │
  972.    │ 64Mb              │                      │
  973.    │                   │ 0x1c000000           │
  974.    ├-------------------┤                      │
  975.    │ Based Region      │                      │
  976.    │ 32Mb              │ 0x1a000000           │ Complete GSR
  977.    ├-------------------┤                      │
  978.    │ Packed Region     │                      │
  979.    │ 32Mb              │ 0x18000000           │
  980.    ├-------------------┤                      │
  981.    │                   │                      │
  982.    │ additional GSR    │                      │
  983.    │ 64Mb              │                      │
  984.    │                   │ 0x14000000           │
  985.    ├-------------------┤ <────────────────────┘
  986.    │ R/W Basing Rgn    │
  987.    │ 32Mb              │ 0x13000000
  988.    ├-------------------┤
  989.    │        .          │
  990.    │        .          │
  991.    │        v          │
  992.    │                   │
  993.    │ General R/W       │
  994.    │                   │
  995.    │        ^          │
  996.    │        .          │
  997.    │        .          │ 0x04000000
  998.    ├───────────────────┼─-----------------─┬─-----------------─┐
  999.    │                   ├───────────────────┤                   │
  1000.    │ Private Arena     │                   │                   │
  1001.    │ Process 1         │ Process 2         ├───────────────────┤
  1002.    │ 64Mb              │                   │ Process 3         │  bottom 64kb reserved in non-VDMs
  1003.    └───────────────────┴───────────────────┴───────────────────┘
  1004.  
  1005.  
  1006.  
  1007.  
  1008. Compatibility Region Layout for OS2 3.0 from FP18 for Uniprocessor and 4.0:
  1009.  
  1010.  
  1011.    │                   │ 0x20000000
  1012.    ├───────────────────┤ <────────────────────┐
  1013.    │                   │ top 64Kb reserved    │
  1014.    │ Part of GSR       │                      │
  1015.    │ 64Mb              │                      │
  1016.    │                   │ 0x1c000000           │
  1017.    ├-------------------┤                      │
  1018.    │ Based Region      │                      │
  1019.    │ 32Mb              │ 0x1a000000           │ Complete GSR
  1020.    ├-------------------┤                      │
  1021.    │ Packed Region 16Mb│ 0x19000000           │
  1022.    ├-------------------┤                      │
  1023.    │ Part of GSR 16Mb  │ 0x18000000           │
  1024.    ├-------------------┤ <────────────────────┘
  1025.    │                   │
  1026.    │                   │
  1027.    │ R/W Basing Rgn    │
  1028.    │                   │
  1029.    │ 80Mb              │ 
  1030.    │                   │ 0x13000000
  1031.    ├-------------------┤
  1032.    │        .          │
  1033.    │        .          │
  1034.    │        v          │
  1035.    │                   │
  1036.    │ General R/W       │
  1037.    │                   │
  1038.    │        ^          │
  1039.    │        .          │
  1040.    │        .          │ 0x04000000
  1041.    ├───────────────────┼─-----------------─┬─-----------------─┐
  1042.    │                   ├───────────────────┤                   │
  1043.    │ Private Arena     │                   │                   │
  1044.    │ Process 1         │ Process 2         ├───────────────────┤
  1045.    │ 64Mb              │                   │ Process 3         │  bottom 64kb reserved in non-VDMs
  1046.    └───────────────────┴───────────────────┴───────────────────┘
  1047.  
  1048.  
  1049.  
  1050.  
  1051. Compatibility Region Layout for OS2 3.0 SMP:
  1052.  
  1053.  
  1054.    │                   │ 0x20000000
  1055.    ├───────────────────┤ 
  1056.    │                   │ top 64Kb reserved    
  1057.    │ Entire GSR        │                      
  1058.    │ 64Mb              │                      
  1059.    │                   │ 0x1c000000           
  1060.    ├-------------------┤                      
  1061.    │ Packed Region     │                      
  1062.    │ 32Mb              │ 0x1a000000           
  1063.    ├-------------------┤                      
  1064.    │                   │                      
  1065.    │                   │                      
  1066.    │ General R/W       │                      
  1067.    │ 112Mb             │                      
  1068.    │                   │                      
  1069.    │                   │
  1070.    │                   │ 0x14000000
  1071.    ├-------------------┤
  1072.    │ R/W Basing Rgn 16M│ 0x13000000
  1073.    ├-------------------┤
  1074.    │        .          │
  1075.    │        .          │
  1076.    │        v          │
  1077.    │                   │
  1078.    │ General R/W       │
  1079.    │                   │
  1080.    │        ^          │
  1081.    │        .          │
  1082.    │        .          │ 0x04000000
  1083.    ├───────────────────┼─-----------------─┬─-----------------─┐
  1084.    │                   ├───────────────────┤                   │
  1085.    │ Private Arena     │                   │                   │
  1086.    │ Process 1         │ Process 2         ├───────────────────┤
  1087.    │ 64Mb              │                   │ Process 3         │  bottom 64kb reserved in non-VDMs
  1088.    └───────────────────┴───────────────────┴───────────────────┘
  1089.  
  1090.  
  1091.  
  1092.  
  1093. Compatibility Region Layout for OS2 4.5 SMP:
  1094.  
  1095.  
  1096.    │                   │ 0x20000000
  1097.    ├───────────────────┤ 
  1098.    │ Entire GSR        │ top 64Kb reserved    
  1099.    │ 32Mb              │ 0x1e000000           
  1100.    ├-------------------┤                      
  1101.    │ Packed Region     │                      
  1102.    │ 32Mb              │ 0x1c000000           
  1103.    ├-------------------┤                      
  1104.    │                   │                      
  1105.    │                   │                      
  1106.    │                   │                      
  1107.    │ General R/W       │                      
  1108.    │ 128Mb             │                      
  1109.    │                   │                      
  1110.    │                   │
  1111.    │                   │ 0x14000000
  1112.    ├-------------------┤
  1113.    │ R/W Basing Rgn 16M│ 0x13000000
  1114.    ├-------------------┤
  1115.    │        .          │
  1116.    │        .          │
  1117.    │        v          │
  1118.    │                   │
  1119.    │ General R/W       │
  1120.    │                   │
  1121.    │        ^          │
  1122.    │        .          │
  1123.    │        .          │ 0x04000000
  1124.    ├───────────────────┼─-----------------─┬─-----------------─┐
  1125.    │                   ├───────────────────┤                   │
  1126.    │ Private Arena     │                   │                   │
  1127.    │ Process 1         │ Process 2         ├───────────────────┤
  1128.    │ 64Mb              │                   │ Process 3         │  bottom 64kb reserved in non-VDMs
  1129.    └───────────────────┴───────────────────┴───────────────────┘
  1130.  
  1131.  
  1132.  
  1133.  
  1134. Compatibility Region Layout for OS2 4.5 Uniprocessor:
  1135.  
  1136.  
  1137.    │                   │ 0x20000000
  1138.    ├───────────────────┤ 
  1139.    │ Entire GSR        │ top 64Kb reserved    
  1140.    │ 32Mb              │ 0x1e000000           
  1141.    ├-------------------┤                      
  1142.    │ Packed Region 16Mb│ 0x1d000000           
  1143.    ├-------------------┤                      
  1144.    │                   │                      
  1145.    │                   │                      
  1146.    │                   │                      
  1147.    │                   │                      
  1148.    │ General R/W       │                      
  1149.    │ 144Mb             │                      
  1150.    │                   │                      
  1151.    │                   │
  1152.    │                   │ 0x14000000
  1153.    ├-------------------┤
  1154.    │ R/W Basing Rgn 16M│ 0x13000000
  1155.    ├-------------------┤
  1156.    │        .          │
  1157.    │        .          │
  1158.    │        v          │
  1159.    │                   │
  1160.    │ General R/W       │
  1161.    │                   │
  1162.    │        ^          │
  1163.    │        .          │
  1164.    │        .          │ 0x04000000
  1165.    ├───────────────────┼─-----------------─┬─-----------------─┐
  1166.    │                   ├───────────────────┤                   │
  1167.    │ Private Arena     │                   │                   │
  1168.    │ Process 1         │ Process 2         ├───────────────────┤
  1169.    │ 64Mb              │                   │ Process 3         │  bottom 64kb reserved in non-VDMs
  1170.    └───────────────────┴───────────────────┴───────────────────┘
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176. Change History:
  1177.  
  1178. 14th Dec 1998 - 2.0 released
  1179.  5th Jan 1999 - 2.1 Add protection against corrupted input records.
  1180.                     Correct criteria for detecting and ignoring VM Lock Records.
  1181.  7th Jul 1999 - 2.2 Fixed region reports for correct region boundaries.
  1182.                     Allow /R syntax to be in mixed case.
  1183.                     Increase maximum number of context records to 64K.
  1184.                     Correct high shared arena current lower limit when high shared is free.
  1185.                     Correct and add informational messages.
  1186.  9th Aug 1999 - 2.3 Share Index Calculation added for shared arena (/I option).
  1187.