Changeset 21d3542 for memlog.cpp


Ignore:
Timestamp:
06/02/15 16:50:48 (9 years ago)
Author:
Hal Finkel <hfinkel@…>
Branches:
master
Children:
6444e03
Parents:
192a260
git-author:
Hal Finkel <hfinkel@…> (06/02/15 16:50:48)
git-committer:
Hal Finkel <hfinkel@…> (06/02/15 16:50:48)
Message:

collect and report on mmap totals

File:
1 edited

Legend:

Unmodified
Added
Removed
  • memlog.cpp

    r22f928f r21d3542  
    66#include <cstdio> 
    77#include <cstring> 
     8#include <cstdint> 
    89 
    910// NOTE: This source makes very minimal use of C++11 features. It can still be 
     
    2930#ifdef __bgq__ 
    3031#include <spi/include/kernel/location.h> 
     32#include <spi/include/kernel/memory.h> 
    3133#endif 
    3234 
     
    4547static char self_path[PATH_MAX+1] = { '\0' }; 
    4648 
     49#ifdef __bgq__ 
     50int on_bgq = 0; 
     51#endif 
     52 
     53void *initial_brk = 0; 
     54 
    4755__attribute__((__constructor__)) 
    4856static void record_init() { 
     
    5462  // If we're really running on a BG/Q compute node, use the job rank instead 
    5563  // of the pid because the node name might not really be globally unique. 
    56   if (!strcmp(u.sysname, "CNK") && !strcmp(u.machine, "BGQ")) 
     64  if (!strcmp(u.sysname, "CNK") && !strcmp(u.machine, "BGQ")) { 
    5765    id = (int) Kernel_GetRank(); 
     66    on_bgq = 1; 
     67  } 
    5868#endif 
    5969 
     
    8191  const char *link_name = "/proc/self/exe"; 
    8292  readlink(link_name, self_path, PATH_MAX); 
     93 
     94  initial_brk = sbrk(0); 
    8395} 
    8496 
     
    128140  fprintf(log_file, "\t%ld.%06ld %ld %ld", usage.ru_utime.tv_sec, 
    129141          usage.ru_utime.tv_usec, usage.ru_maxrss, syscall(SYS_gettid)); 
     142 
     143  // Some other memory stats (like with maxrss, report these in KB). 
     144  size_t arena_size = ((size_t) sbrk(0)) - (size_t) initial_brk; 
     145 
     146  uint64_t mmap_size = 0; 
     147#ifdef __bgq__ 
     148  if (on_bgq) 
     149    (void) Kernel_GetMemorySize(KERNEL_MEMSIZE_MMAP, &mmap_size); 
     150#endif 
     151 
     152  fprintf(log_file, " %ld %ld", arena_size >> 10, mmap_size >> 10); 
    130153 
    131154  if (!show_backtrace) 
Note: See TracChangeset for help on using the changeset viewer.