- Mar 13, 2020
-
-
Rye Mutt authored
-
- Jun 02, 2018
-
-
Graham Linden authored
-
- Jan 30, 2018
-
-
Andrey Kleshchev authored
-
- May 10, 2017
-
-
Nat Goodspeed authored
Drake points out that the OS X 64-bit-capable memory-query APIs recommended in comments by some long-ago maintainer are by now themselves obsolete. He offered this patch to update us to current macOS memory APIs.
-
- May 04, 2017
-
-
Nat Goodspeed authored
The LLMemory method getCurrentRSS() is defined to return the "resident set size," but in fact on Windows it returns the WorkingSetSize -- and that's actually what callers want from it: the total memory consumed by the application for statistics purposes. It's not really clear what users gain by knowing how much of that is resident in real memory, versus the total consumption. So despite the commentation and the method name itself, on Mac make it return the virtual size consumed.
-
- May 02, 2017
-
-
Nat Goodspeed authored
Evidently the Mac implementation of LLMemory::getCurrentRSS() goes back to OS X 10.3, because there was a helpful comment of the form: ------ The API used here is not capable of dealing with 64-bit memory sizes, but is available before 10.4. Once we start requiring 10.4, we can use the updated API, which looks like this: [new current implementation] Of course, this doesn't gain us anything unless we start building the viewer as a 64-bit executable, since that's the only way for our memory allocation to exceed 2^32. ------ Hey, guess what, we're building 64-bit viewers now! Thank you, whoever thoughtfully noted that, both for calling out the issue and sparing us the research. (The comment goes back to Subversion days, so hg blame shows only the merge-to-release changeset.)
-
Nat Goodspeed authored
There were two distinct LLMemory methods getCurrentRSS() and getWorkingSetSize(). It was pointless to have both: on Windows they were completely redundant; on other platforms getWorkingSetSize() always returned 0. (Amusingly, though the Windows implementations both made exactly the same GetProcessMemoryInfo() call and used exactly the same logic, the code was different in the two -- as though the second was implemented without awareness of the first, even though they were adjacent in the source file.) One of the actual MAINT-6996 problems was due to the fact that getWorkingSetSize() returned U32, where getCurrentRSS() returns U64. In other words, getWorkingSetSize() was both useless *and* wrong. Remove it, and change its one call to getCurrentRSS() instead. The other culprit was that in several places, the 64-bit WorkingSetSize returned by the Windows GetProcessMemoryInfo() call (and by getCurrentRSS()) was explicitly cast to a 32-bit data type. That works only when explicitly or implicitly (using LLUnits type conversion) scaling the value to kilobytes or megabytes. When the size in bytes is desired, use 64-bit types instead. In addition to the symptoms, LLMemory was overdue for a bit of cleanup. There was a 16K block of memory called reserveMem, the comment on which read: "reserve 16K for out of memory error handling." Yet *nothing* was ever done with that block! If it were going to be useful, one would think someone would at some point explicitly free the block. In fact there was a method freeReserve(), apparently for just that purpose -- which was never called. As things stood, reserveMem served only to *prevent* the viewer from ever using that chunk of memory. Remove reserveMem and the unused freeReserve(). The only function of initClass() and cleanupClass() was to allocate and free reserveMem. Remove initClass(), cleanupClass() and the LLCommon calls to them. In a similar vein, there was an LLMemoryInfo::getPhysicalMemoryClamped() method that returned U32Bytes. Its job was simply to return a size in bytes that could fit into a U32 data type, returning U32_MAX if the 64-bit value exceeded 4GB. Eliminate that; change all its calls to getPhysicalMemoryKB() (which getPhysicalMemoryClamped() used internally anyway). We no longer care about any platform that cannot handle 64-bit data types.
-
- Nov 22, 2016
-
-
Nat Goodspeed authored
LLPrivateMemoryPool and LLPrivateMemoryPoolManager have assumed that it's always valid to cast a pointer to U32. With 64-bit pointers, no longer true.
-
- Nov 10, 2015
-
-
Oz Linden authored
-
- Apr 27, 2015
-
-
ruslantproductengine authored
- fix for review - fix in buffer overrun detector
-
- Oct 28, 2014
-
-
ruslantproductengine authored
-
- Oct 27, 2014
-
-
ruslantproductengine authored
less than allowed. Changes in all other files relate auxiliary methods for catching similar bugs in future.
-
- Sep 08, 2013
-
-
Richard Linden authored
renamed "current" to "primary" when referring to accumulators
-
- Aug 26, 2013
-
-
Richard Linden authored
forced unit conversion code to inline unit conversion now no longer converts all the way to base and back, but tries to find equivalent units as early as possible fixed another llinfos instance scene monitor now outputs n/a for invalid samples
-
- Aug 21, 2013
-
-
Richard Linden authored
made getPrimaryAccumulator return a reference since it was an always non-null pointer changed unit conversion to perform lazy division in order to avoid truncation of timer values
-
- Aug 20, 2013
-
-
Richard Linden authored
-
- Aug 19, 2013
-
-
Richard Linden authored
continued conversion to units system made units perform type promotion correctly and preserve type in arithmetic e.g. can now do LLVector3 in units added typedefs for remaining common unit types, including implicits
-
- Aug 16, 2013
-
-
Richard Linden authored
converted many values over to units system in effort to track down source of 0 ping
-
- Aug 09, 2013
-
-
Richard Linden authored
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
-
- Jul 08, 2013
-
-
Richard Linden authored
added percentage/ratio units added auto-range and auto tick calculation to stat bar to automate display stats
-
- Jun 05, 2013
-
-
Graham Madarasz authored
-
- Jun 04, 2013
-
-
Graham Madarasz authored
BUG-2707 make use of OsOutputDebugString _DEBUG only on Windows to avoid throwing unhandlable exceptions in coroutines in RelWithDebInfo builds
-
- Jun 01, 2013
-
-
Graham Madarasz authored
-
- Mar 29, 2013
-
-
Graham Madarasz authored
-
- Nov 15, 2012
-
-
Richard Linden authored
cleaning up build moved most includes of windows.h to llwin32headers.h to disable min/max macros, etc streamlined Time class and consolidated functionality in BlockTimer class llfasttimer is no longer included via llstring.h, so had to add it manually in several places
-
- Oct 11, 2012
-
-
William Todd Stinson authored
MAINT-1684: Correcting the calls to ll_aligned_free() which should have actually been to ll_aligned_free_16().
-
William Todd Stinson authored
MAINT-1684: Attempt at correcting the linux crash on startup. Replacing the memory allocations and frees in the LLPrivateMemoryPool with aligned memory allocations and frees.
-
- Sep 12, 2012
-
-
Oz Linden authored
-
- Sep 10, 2012
-
-
William Todd Stinson authored
-
- Jan 04, 2012
-
-
Brad Payne (Vir Linden) authored
-
- Dec 19, 2011
-
-
Brad Payne (Vir Linden) authored
-
- Nov 22, 2011
-
-
Xiaohong Bao authored
-
- Oct 26, 2011
-
-
Xiaohong Bao authored
-
- Oct 14, 2011
-
-
David Parks authored
-
- Oct 10, 2011
-
-
Xiaohong Bao authored
-
- Sep 08, 2011
-
-
Xiaohong Bao authored
fix for VWR-26864: Recent commit to Snowstorm project introduces frequent errors and crashes associated with private memory pool.
-
- Sep 02, 2011
-
-
Xiaohong Bao authored
-
- Jul 20, 2011
-
-
Xiaohong Bao authored
-
Xiaohong Bao authored
-
Xiaohong Bao authored
-