~rdoering/ubuntu/karmic/erlang/fix-535090

« back to all changes in this revision

Viewing changes to lib/os_mon/src/os_mon_mib.erl

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-02-15 16:42:52 UTC
  • mfrom: (3.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090215164252-q5x4rcf8a5pbesb1
Tags: 1:12.b.5-dfsg-2
Upload to unstable after lenny is released.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
-export([get_load/1, get_disks/1]).
45
45
 
46
46
%% Shadow tables  
47
 
-record(loadTable,
48
 
        {loadErlNodeName, loadSystemTotalMemory, loadSystemUsedMemory,
49
 
         loadLargestErlProcess, loadLargestErlProcessUsedMemory,
50
 
         loadCpuLoad, loadCpuLoad5, loadCpuLoad15}).
 
47
-record(loadTable, {
 
48
        loadErlNodeName, 
 
49
        loadSystemTotalMemory, 
 
50
        loadSystemUsedMemory,
 
51
        loadLargestErlProcess, 
 
52
        loadLargestErlProcessUsedMemory,
 
53
        loadCpuLoad, 
 
54
        loadCpuLoad5, 
 
55
        loadCpuLoad15,
 
56
        loadOsWordsize,
 
57
        loadSystemTotalMemory64, 
 
58
        loadSystemUsedMemory64,
 
59
        loadLargestErlProcessUsedMemory64}).
51
60
 
52
61
-record(diskTable,
53
62
        {key, diskDescr, diskKBytes, diskCapacity}).
168
177
%%% Exported for internal use via rpc
169
178
%%%========================================================================
170
179
get_load(Node) ->
171
 
    case memsup:get_memory_data() of
172
 
        {Total, Allocated, {Pid, PidAllocated}} ->
173
 
            #loadTable{loadErlNodeName = atom_to_list(Node),
174
 
                       loadSystemTotalMemory = Total,
175
 
                       loadSystemUsedMemory = Allocated,
176
 
                       loadLargestErlProcess = pid_to_str(Pid),
177
 
                       loadLargestErlProcessUsedMemory = PidAllocated,
178
 
                       loadCpuLoad = get_cpu_load(avg1),
179
 
                       loadCpuLoad5 = get_cpu_load(avg5),
180
 
                       loadCpuLoad15 = get_cpu_load(avg15)};
181
 
        {Total, Allocated, undefined} ->
182
 
            #loadTable{loadErlNodeName = atom_to_list(Node),
183
 
                       loadSystemTotalMemory = Total,
184
 
                       loadSystemUsedMemory = Allocated,
185
 
                       loadLargestErlProcess = "undefined",
186
 
                       loadLargestErlProcessUsedMemory = 0,
187
 
                       loadCpuLoad = get_cpu_load(avg1),
188
 
                       loadCpuLoad5 = get_cpu_load(avg5),
189
 
                       loadCpuLoad15 = get_cpu_load(avg15)}
190
 
    end.
 
180
    {Total, Allocated, PidString, PidAllocated} = case memsup:get_memory_data() of
 
181
        {MemTot, MemAlloc, undefined}     -> {MemTot, MemAlloc, "undefined", 0};
 
182
        {MemTot, MemAlloc, {Pid, PidMem}} -> {MemTot, MemAlloc, pid_to_str(Pid), PidMem} 
 
183
    end,
 
184
    OsWordsize = case memsup:get_os_wordsize() of
 
185
        WS when is_integer(WS) -> WS;
 
186
        _                      -> 0
 
187
    end,
 
188
    #loadTable{
 
189
        loadErlNodeName                   = atom_to_list(Node),
 
190
        loadSystemTotalMemory             = mask_int32(Total),
 
191
        loadSystemUsedMemory              = mask_int32(Allocated),
 
192
        loadLargestErlProcess             = PidString,
 
193
        loadLargestErlProcessUsedMemory   = mask_int32(PidAllocated),
 
194
        loadCpuLoad                       = get_cpu_load(avg1),   
 
195
        loadCpuLoad5                      = get_cpu_load(avg5),
 
196
        loadCpuLoad15                     = get_cpu_load(avg15),
 
197
        loadOsWordsize                    = OsWordsize,  
 
198
        loadSystemTotalMemory64           = Total,
 
199
        loadSystemUsedMemory64            = Allocated,
 
200
        loadLargestErlProcessUsedMemory64 = PidAllocated
 
201
    }.
 
202
 
 
203
mask_int32(Value) -> Value band ((1 bsl 32) - 1).
191
204
 
192
205
get_disks(NodeId) ->
193
206
    element(1,