summaryrefslogtreecommitdiff
path: root/indra/llcommon/llsys.h
AgeCommit message (Collapse)Author
2017-10-11Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-08-25MAINT-7739 Make LLOSInfo a Singletonandreykproductengine
2017-05-02DRTVWR-418, MAINT-6996: Rationalize LLMemory wrt 64-bit support.Nat Goodspeed
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.
2015-11-10remove execute permission from many files that should not have itOz Linden
2013-08-18SH-4433 WIP: Interesting: Statistics > Ping Sim is always 0 msRichard Linden
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
2013-08-16SH-4433 WIP: Interesting: Statistics > Ping Sim is always 0 msRichard Linden
converted many values over to units system in effort to track down source of 0 ping
2013-08-09second phase summer cleaningRichard Linden
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-04-19merge up to latest viewer-development for merge to 3.5.2Oz Linden
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-02-21add OS version stringOz Linden
2011-07-12CHOP-753: Eliminate redundant array-of-pair-arrays in LLMemoryInfo.Nat Goodspeed
(per Monty code review) The notion of storing LLMemoryInfo data both as an LLSD::Map and an LLSD::Array of pair arrays arose from a (possibly misguided) desire to continue producing stats output into the viewer log in the same order it always used to be produced. There is no evidence that anyone cares about the order of those stats in the log; there is no other use case for preserving order. At Monty's recommendation, eliminate generating and storing the array-of-pair-arrays form: directly store LLSD::Map.
2011-06-30CHOP-753: Fix compile errors in LLMemoryInfo Windows-specific code.Nat Goodspeed
2011-06-30CHOP-753: Reduce redundancy in LLMemoryInfo.Nat Goodspeed
Recast stream() to display data from LLSD array rather than reinvoking OS operations used to capture it. Make refresh() cache LLSD data in map form as well as array; fetch items from that in a few places to avoid going back to OS.
2011-06-29CHOP-753: Introduce LLSD access to LLMemoryInfo ** BROKEN **Nat Goodspeed
This is known not to compile on Mac yet; checking in to concurrently work on Linux-specific code.
2010-10-14more debug code for SH-207: viewer crash in LLVertexBuffer::mapBuffer.Xiaohong Bao
2010-10-14for SH-335: create a debug tool to track of memory availability.Xiaohong Bao
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-04-19Change Linux fasttimer implementation back to RDTSC - using a reliable ↵Tofu Linden
syscall was REALLY chewing CPU time. Sigh. I didn't realize how incredibly often this gets called. So, back to the assembly. But be more careful with CPU clock count on linux, so the fasttimer values are much more accurate than they were the last time we were with RDTSC, in absolute terms - back in the right order of magnitude anyway. Also change many instances of Mhz to MHz. Also some minor comment fixes.
2010-03-18Backed out changeset 0305673fe81e EXT-4820 [NUX] Viewer dimensions on first-runIgor Borovkov
--HG-- branch : product-engine
2010-03-04partitial fix for major EXT-4820 [NUX] Viewer dimensions on first-runYchebotarev ProductEngine
need to specify desctop width and height for macos and linux (see LLDesctopInfo in llsys.cpp for details) --HG-- branch : product-engine
2009-05-22DEV-27646 dll linkage for login module.Brad Kittenbrink
Ok, finally got this to a point where it doesn't break the build and I can check in. llcommon can be built as a shared library (disabled but can be enabled with cmake cache var LLCOMMON_LINK_SHARED. reviewed by Mani on tuesday (I still need to get his suggested changes re-reviewed)
2009-01-08Result of svn merge -r107256:107258 ↵Aaron Brashears
svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165
2008-06-26QAR-628 merge string-cleanup-5 -r 90476:90508 -> releaseSteven Bennetts
dataserver-is-deprecated
2007-12-21svn merge -r74200:76302 ↵Josh Bell
svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-18-6-Viewer --> release Wheee, this was fun. Um, let's back-port fixes a little more rapidly next time. Reviewed by CG until alexandria died, did the rest by my lonesome.
2007-10-04Result of svn merge -r71162:71205 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/new-license into release. only changes files which are not deployed or the comments section of code.
2007-08-21EFFECTIVE MERGE: svn merge -r 66133:68118 ↵Christian Goetze
svn+ssh://svn/svn/linden/branches/maintenance into release Actual action: branched maintenance-r68118, merged in release, then copied result into release
2007-07-26EFFECTIVE MERGE: svn merge -r 65485:66133 ↵Don Kjer
svn+ssh://svn/svn/linden/branches/maintenance into release This includes fixes to the maintenance-r66133 branch, and sync'ing up with release@r66392 ACTUAL MERGE: svn merge -r 66394:66435 svn+ssh://svn/svn/linden/branches/release-r66392 into release EQUIVALENT TO: svn merge -r 65485:66434 svn+ssh://svn/svn/linden/branches/maintenance-r66133 into release (plus branch sync'ing)
2007-07-02svn merge -r 62595:62596 and 62598:63308 sse-skinning-3 for faster software ↵James Cook
avatar rendering. Visual Studio 2005 project file fixed pending.
2007-04-11svn merge -r 59968:60342 ↵Josh Bell
svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance --> release
2007-01-02Print done when done.James Cook