summaryrefslogtreecommitdiffstats
path: root/base/process_util_mac.mm
Commit message (Collapse)AuthorAgeFilesLines
* Add preliminary OOM support for Mountain Lion.avi@chromium.org2012-03-141-6/+14
| | | | | | | | | | BUG=117476 TEST=run base_unittests on Mountain Lion Review URL: http://codereview.chromium.org/9701031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126773 0039d316-1c4b-4281-b951-d872f2087c98
* [Mac] Add the OS version check functions for 10.8.rsesek@chromium.org2012-03-141-1/+2
| | | | | | | | | | BUG=none TEST=Careful review by Mark. And a unittest. Review URL: http://codereview.chromium.org/9706001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126709 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 125441 - In CrMallocErrorBreak, do not kill the process if errno is ↵viettrungluu@chromium.org2012-03-071-8/+1
| | | | | | | | | | | | | | | | | | | | | | | ENOMEM. [Caused test failures on 10.5.] This will allow large JPEG decodes to be handled and optionally killed by the OOM killer instead. Based on a sampling of the other malloc_error_break() bugs ("unaligned pointer", "freed was not allocated", "double free", and "incorrect checksum"), this will only affect the "allocate region" error, as those others happen at free(), rather than malloc(). BUG=103980 TEST=Covered by ProcessUtilTest.MacTerminateOnHeapCorruption Review URL: http://codereview.chromium.org/9597031 TBR=rsesek@chromium.org Review URL: https://chromiumcodereview.appspot.com/9622023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125464 0039d316-1c4b-4281-b951-d872f2087c98
* In CrMallocErrorBreak, do not kill the process if errno is ENOMEM.rsesek@chromium.org2012-03-071-1/+8
| | | | | | | | | | | | | | | | This will allow large JPEG decodes to be handled and optionally killed by the OOM killer instead. Based on a sampling of the other malloc_error_break() bugs ("unaligned pointer", "freed was not allocated", "double free", and "incorrect checksum"), this will only affect the "allocate region" error, as those others happen at free(), rather than malloc(). BUG=103980 TEST=Covered by ProcessUtilTest.MacTerminateOnHeapCorruption Review URL: http://codereview.chromium.org/9597031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125441 0039d316-1c4b-4281-b951-d872f2087c98
* Move the ProcessWatcher methods out of content/common/process_watcher into ↵jam@chromium.org2011-11-231-0/+159
| | | | | | | | | | | base/process_util, alongside the other process methods. The only non-trivial move change is to the Windows implementation, where I changed KillProcess to use an exit code of kProcessKilledExitCode instead of content::RESULT_CODE_HUNG. cpu said that the existing code was incorrect, since GetTerminationStatus() should be mapping that result to TERMINATION_STATUS_PROCESS_WAS_KILLED. So I changed the exit code to kProcessKilledExitCode. This might make the UMA stats for killed processes to go up (and crashed to go down), but that will be an accounting change and should be zero-sum. BUG=98716 Review URL: http://codereview.chromium.org/8674003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111371 0039d316-1c4b-4281-b951-d872f2087c98
* Disable EnableTerminationOnHeapCorruption() on Mac under AddressSanitizer.glider@chromium.org2011-11-081-0/+5
| | | | | | Review URL: http://codereview.chromium.org/8503013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109023 0039d316-1c4b-4281-b951-d872f2087c98
* Replace most LOG/CHECK statements with DLOG/DCHECK statements in base.brettw@chromium.org2011-10-261-14/+15
| | | | | | | | | | | [ Reland of 107042 http://codereview.chromium.org/8368009 ] I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8341026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107434 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 107042 - Replace most LOG/CHECK statements with DLOG/DCHECK ↵brettw@chromium.org2011-10-251-15/+15
| | | | | | | | | | | | | | statements in base. I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8368009 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/8351025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107051 0039d316-1c4b-4281-b951-d872f2087c98
* Replace most LOG/CHECK statements with DLOG/DCHECK statements in base.brettw@chromium.org2011-10-251-15/+15
| | | | | | | | | I tried hard not to change CHECKs that had side effects. I kept fatal checks that seemed security or debugging-info (in crash reports) sensitive, and ones that seems particularly well-conceived. Review URL: http://codereview.chromium.org/8368009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107042 0039d316-1c4b-4281-b951-d872f2087c98
* Make CrMallocErrorBreak die in a more spectacular fashion.rsesek@chromium.org2011-09-281-1/+2
| | | | | | | | | BUG=none TEST=Make crash stacks a little more obvious. Review URL: http://codereview.chromium.org/8065024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103209 0039d316-1c4b-4281-b951-d872f2087c98
* [Mac] Implement base::EnableTerminationOnHeapCorruption() by overriding ↵rsesek@chromium.org2011-08-181-0/+85
| | | | | | | | | | | | | | | | | malloc_error_break(). This makes malloc_error_break() fatal for all processes in an attempt to get better stack traces when heap corruption may occur. BUG=90884,91068,93191 TEST=See bug 93191 for repro steps. A crash report gets generated with a hopefully more-useful stack. Originally landed: http://src.chromium.org/viewvc/chrome?view=rev&revision=97315 Reverted: http://src.chromium.org/viewvc/chrome?view=rev&revision=97322 Review URL: http://codereview.chromium.org/7670025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97351 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "[Mac] Implement base::EnableTerminationOnHeapCorruption() by ↵rsesek@chromium.org2011-08-181-85/+0
| | | | | | | | | | | | | | overriding malloc_error_break" This reverts commits r97315 and r97319. BUG=none TEST=none TBR=mark Review URL: http://codereview.chromium.org/7631046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97322 0039d316-1c4b-4281-b951-d872f2087c98
* [Mac] Implement base::EnableTerminationOnHeapCorruption() by overriding ↵rsesek@chromium.org2011-08-181-0/+85
| | | | | | | | | | | | | | malloc_error_break(). This makes malloc_error_break() fatal for all processes in an attempt to get better stack traces when heap corruption may occur. BUG=90884,91068,93191 TEST=See bug 93191 for repro steps. A crash report gets generated with a hopefully more-useful stack. Review URL: http://codereview.chromium.org/7670025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97315 0039d316-1c4b-4281-b951-d872f2087c98
* Update OOM killer with Lion info.avi@chromium.org2011-07-211-5/+0
| | | | | | | | | BUG=74589 TEST=none; still works on Lion Review URL: http://codereview.chromium.org/7471041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93436 0039d316-1c4b-4281-b951-d872f2087c98
* Improve and unify Mac OS X run-time version checks.mark@chromium.org2011-06-141-35/+18
| | | | | | | | | | | | Don't use base::SysInfo::OperatingSystemVersionNumbers, because it calls Gestalt, which has a few bad properties. Introduce new functions that perform specific version checks. BUG=85972 TEST=base_unittests MacUtilTest.IsOSEllipsis Review URL: http://codereview.chromium.org/7144007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89028 0039d316-1c4b-4281-b951-d872f2087c98
* Updating logging in src/base/. Using DCHECK_NE/EQ/LE/GE/GT() where possiblekushi.p@gmail.com2011-05-041-1/+1
| | | | | | | | | BUG=58409 Review URL: http://codereview.chromium.org/6883295 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84016 0039d316-1c4b-4281-b951-d872f2087c98
* Update OOM killer.avi@chromium.org2011-03-181-15/+42
| | | | | | | | | BUG=74589 TEST=unit tested Review URL: http://codereview.chromium.org/6711017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78702 0039d316-1c4b-4281-b951-d872f2087c98
* Lower logging for expected errors in process_util_mac.mmsail@chromium.org2011-03-061-2/+2
| | | | | | | | BUG=None TEST=None git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77082 0039d316-1c4b-4281-b951-d872f2087c98
* Get service process running standalone on the mac by hooking it into launchd.dmaclach@chromium.org2011-02-241-0/+13
| | | | | | | | | BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/6482016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75893 0039d316-1c4b-4281-b951-d872f2087c98
* Update file version info/memory details/process utils to use string16.avi@chromium.org2010-12-231-1/+1
| | | | | | | | | BUG=23581 TEST=everything still works Review URL: http://codereview.chromium.org/5968008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70071 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Shared and Private memory for Task Managersail@chromium.org2010-12-211-3/+123
| | | | | | | | | | | | | | | | | This change adds support for calculating shared and private memory for the Task Manager window. The goal here is to match the values shown in Activity Monitor. The old "Memory" column already matched Activity Monitor's "Real Memory Size" field. With this change the "Private" column now matches Activity Monitor's "Private Memory Size" field too. Unfortunately the "Shared" column doesn't exactly match Activity Monitor's "Shared Memory Size" field. From what I could understand of the libtop source this field is supposed to represent the resident shared memory that isn't being referenced by any other process. Since our code only looks at the memory for a single process we can't detect references by other processes. This means our shared memory value will always be slightly higher than Activity Monitor's. BUG=25454 TEST=Opened a few tabs and verified that the Private values in Task Manager matched the values in Activity Monitor. Verified that the Shared values were just slightly higher than those in Activity Monitor. Review URL: http://codereview.chromium.org/5992005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69863 0039d316-1c4b-4281-b951-d872f2087c98
* Rename WebKitTools->Tools.tonyg@chromium.org2010-12-181-1/+1
| | | | | | | | | | BUG=None TEST=None TBR=yurys Review URL: http://codereview.chromium.org/6015002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69627 0039d316-1c4b-4281-b951-d872f2087c98
* Move debug-related stuff from base to the base/debug directory and use thebrettw@chromium.org2010-10-261-18/+18
| | | | | | | | | | | | | | | | base::debug namespace. This splits apart debug_util into base/debugger and base/stack_trace There are still two functions in debug_util that I'm not sure what to do with. Since this uses the base::debug namespace, I removed the functions in debugger.h from the static class and just made them free functions in the namespace. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3945002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63859 0039d316-1c4b-4281-b951-d872f2087c98
* Move APSL code into third_party.avi@chromium.org2010-10-181-63/+8
| | | | | | | | | BUG=none TEST=unit tested Review URL: http://codereview.chromium.org/3801013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62983 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up orphaned testserver processes before launching a new one in ↵rsimha@chromium.org2010-10-051-3/+12
| | | | | | | | | | | | | | | net::TestServer Several chrome tests have failed in recent days because some test cases crashed due to failures, leaving behind orphaned testserver processes. These test suites do not use out_of_proc_test_runner, and therefore, do not get the benefit of using the LaunchAppInNewProcessGroup()/KillProcessGroup() mechanism. This patch implements an added layer of safety, by causing TestServer::LaunchPython() to first kill any remaining orphaned instances of testserver.py before launching a new one. The check for an orphaned testserver process on POSIX is a process with exe_name "python", a parent_pid of "1" (indicating that it's an orphan), and command line parameters that contain the strings "testserver.py" and "<port>" where <port> is the port that is being used by the test server instance. BUG=55808,57253 TEST=Run a test that spawns a testserver and dies. Run another test. It shouldn't fail. Review URL: http://codereview.chromium.org/3537002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61584 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid spawning a thread while enabling the OOM killer on the Mac.avi@chromium.org2010-08-241-7/+14
| | | | | | | | | BUG=53200 TEST=n/a Review URL: http://codereview.chromium.org/3162034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57218 0039d316-1c4b-4281-b951-d872f2087c98
* Catch OOMs in purgeable memory.avi@chromium.org2010-07-011-7/+122
| | | | | | | | | | | Recommit of r51371, this time not crashy. BUG=http://crbug.com/47980 TEST=unit tested Review URL: http://codereview.chromium.org/2817048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51407 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 51371 - Catch OOMs in purgeable memory.avi@chromium.org2010-07-011-120/+7
| | | | | | | | | | | | BUG=http://crbug.com/47980 TEST=unit tested Review URL: http://codereview.chromium.org/2859036 TBR=avi@chromium.org Review URL: http://codereview.chromium.org/2883014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51373 0039d316-1c4b-4281-b951-d872f2087c98
* Catch OOMs in purgeable memory.avi@chromium.org2010-07-011-7/+120
| | | | | | | | | BUG=http://crbug.com/47980 TEST=unit tested Review URL: http://codereview.chromium.org/2859036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51371 0039d316-1c4b-4281-b951-d872f2087c98
* Disable CFAllocator patching on systems for which we don't know their ↵avi@chromium.org2010-06-021-26/+36
| | | | | | | | | | | internal structure. BUG=http://crbug.com/45363 TEST=no crash on unreleased systems Review URL: http://codereview.chromium.org/2417008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48747 0039d316-1c4b-4281-b951-d872f2087c98
* Patch out posix_memalign in the out-of-memory killer.avi@chromium.org2010-05-191-9/+78
| | | | | | | | | BUG=http://crbug.com/44189 TEST=included in base_unittests Review URL: http://codereview.chromium.org/2110010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47714 0039d316-1c4b-4281-b951-d872f2087c98
* Fix definition of CFAllocator (malloc_zone_t changed size between 10.5 and ↵avi@chromium.org2010-05-191-3/+27
| | | | | | | | | | | 10.6). BUG=none TEST=no visible change, works when compiled against 10.6 SDK Review URL: http://codereview.chromium.org/2131010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47676 0039d316-1c4b-4281-b951-d872f2087c98
* Speed up the Task Manager on linux.erg@chromium.org2010-05-111-3/+9
| | | | | | | | | | | | - Unify the calls to get shared memory and private memory. On Linux, these call the same API and on Linux, it takes >10ms to fetch both values each time it is called. - Cache the returned memory values. While sorting the task manager by memory, it would make the expensive memory call for each row on each sort operation. BUG=40033 TEST=Existing task manager tests. Review URL: http://codereview.chromium.org/2047009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46938 0039d316-1c4b-4281-b951-d872f2087c98
* Move common code into process_util.cc.maruel@chromium.org2010-04-291-46/+38
| | | | | | | | | | | | | Fix namespace usage. Change ProcessEntry to have a common interface accross platforms and change ProcessFilter::Includes() to make use of it. Split NamedProcessIterator in two. BUG=none TEST=none Review URL: http://codereview.chromium.org/1689012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45953 0039d316-1c4b-4281-b951-d872f2087c98
* Die on an OOM situation in many more cases.avi@chromium.org2010-03-191-15/+137
| | | | | | | | | | | Continuation of http://codereview.chromium.org/875004 after a revert. BUG=http://crbug.com/12673 TEST=run out of memory and die Review URL: http://codereview.chromium.org/1039007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42127 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 41834; ui tests are asploding.avi@chromium.org2010-03-171-136/+16
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41837 0039d316-1c4b-4281-b951-d872f2087c98
* Die on an OOM situation in many more cases.avi@chromium.org2010-03-171-16/+136
| | | | | | | | | BUG=http://crbug.com/12673 TEST=run out of memory and die Review URL: http://codereview.chromium.org/875004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41834 0039d316-1c4b-4281-b951-d872f2087c98
* Temporarily allow writing to the default malloc zone structure while ↵avi@chromium.org2010-02-011-0/+24
| | | | | | | | | | | modifying it. BUG=none TEST=no crash when launching Chromium next year Review URL: http://codereview.chromium.org/557084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37733 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 37721.avi@chromium.org2010-02-011-24/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37723 0039d316-1c4b-4281-b951-d872f2087c98
* Temporarily allow writing to the default malloc zone structure while ↵avi@chromium.org2010-02-011-0/+24
| | | | | | | | | | | modifying it. BUG=none TEST=no crash when launching Chromium next year Review URL: http://codereview.chromium.org/551229 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37721 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Fix %cpu in task manager.thakis@chromium.org2010-01-251-4/+3
| | | | | | | | | | | I changed %cpu from int to double but left the +0.5 for rounding in. Duh. BUG=32464 TEST=Task Manager %cpu should match Activity Monitor's %cpu. In particular, inactive processes should have 0.0% cpu instead of 0.5%. Review URL: http://codereview.chromium.org/548135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37004 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: UI tweaks for task manager.thakis@chromium.org2010-01-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Nib change: Reduce row height, make scrollbars smaller. Make text in task manager table slightly smaller. Show in decimal digit for %cpu. Show memory in KB/MB, not always in K. Change update frequency from 1s to 2s to match Activity Monitor's default. (all mac-only. ui team is fine with this.) Finally, turn taskman on. BUG=13156 TEST=Open task manager, look at it. Should look & feel similar to Activity Monitor. Review URL: http://codereview.chromium.org/536038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36096 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Create a pid->task_t mapping in the browser process.thakis@chromium.org2009-12-211-4/+4
| | | | | | | | | | | Since nothing writes to this map in the browser atm, this does not have any visible effect. BUG=13156,25454 TEST=unittest Review URL: http://codereview.chromium.org/501138 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35092 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 35025 - Revert 34994, maybe it regressed startup perf Fix cpu/memory ↵viettrungluu@chromium.org2009-12-191-7/+118
| | | | | | | | | | | | | | | | | | | measurements on OS X. Right now, this only works for the current process; support for child processes will be added in a later CL. BUG=13156,25454 TEST=Hook up task manager (connect menu item to commandDispatch:, give it the right tag). Stats for the browser process should now be right, and %cpu should be 0 (for now) for all other processes. Review URL: http://codereview.chromium.org/500118 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/504068 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/505056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35043 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 34994, maybe it regressed startup perf - Fix cpu/memory measurements ↵thakis@chromium.org2009-12-191-118/+7
| | | | | | | | | | | | | | | | on OS X. Right now, this only works for the current process; support for child processes will be added in a later CL. BUG=13156,25454 TEST=Hook up task manager (connect menu item to commandDispatch:, give it the right tag). Stats for the browser process should now be right, and %cpu should be 0 (for now) for all other processes. Review URL: http://codereview.chromium.org/500118 TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/504068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35025 0039d316-1c4b-4281-b951-d872f2087c98
* Fix cpu/memory measurements on OS X.thakis@chromium.org2009-12-181-7/+118
| | | | | | | | | | | Right now, this only works for the current process; support for child processes will be added in a later CL. BUG=13156,25454 TEST=Hook up task manager (connect menu item to commandDispatch:, give it the right tag). Stats for the browser process should now be right, and %cpu should be 0 (for now) for all other processes. Review URL: http://codereview.chromium.org/500118 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34994 0039d316-1c4b-4281-b951-d872f2087c98
* Don't use logging from the OOM killers; it allocates memory.avi@google.com2009-11-211-9/+9
| | | | | | | | | BUG=none TEST=watch crash logs; the OOM killer functions should never be called from another OOM killer function. Review URL: http://codereview.chromium.org/411006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32717 0039d316-1c4b-4281-b951-d872f2087c98
* Log warnings, not errors, if we can't fetch memory status forsgk@google.com2009-11-131-3/+5
| | | | | | | | | commit charge reporting. Fix if-blocks around returning 0. BUG=none TEST=none Review URL: http://codereview.chromium.org/386031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31964 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure OOM is a killer on the Mac.avi@chromium.org2009-11-121-0/+90
| | | | | | | | | BUG=http://crbug.com/12673 TEST=as in bug Review URL: http://codereview.chromium.org/385054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31819 0039d316-1c4b-4281-b951-d872f2087c98
* More memory stats code cleanup:sgk@chromium.org2009-11-091-0/+22
| | | | | | | | | | | | Move GetSystemCommitCharge() into bsae\process_util*. Kill PrintChromeMemoryUsageInfo(), which was only used by reliability_tests.exe on Windows and whose stats are obsolete. Delete the now-unnecessary chrome\test\perf\mem_usage* files. BUG=none TEST=none Review URL: http://codereview.chromium.org/371025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31423 0039d316-1c4b-4281-b951-d872f2087c98