Commit Graph

101 Commits (680194deaf7a35caaa629abc16e886d71baff636)

Author SHA1 Message Date
Monty Brandenberg 11036d7bf4 Cleanup work. Use http constants for content-type and
accept headers in mesh and textures.  For texture metrics
reporting, use the AP_INVENTORY policy class which is
non-pipelined and pointing (usually) in the right direction.
Use a do-while(false) structure to manage common exit path
code in onCompleted() methods.  Identical to a 'goto' but
might amuse the pedantic.  Tuning on background fetch to
have it cycle faster.  This is experimental.  I suspect
with HTTP balancing in llcorehttp, we can do away with the
timers here.
2014-09-19 19:43:25 -04:00
Monty Brandenberg e79a88c8cc Better support for dynamic option changes in llcorehttp. Libcurl has
some problems disabling pipelining on a multi handle with outstanding
requests so build a more conservative system that allows requests
to drain before setting curl multi options.  Would rather not have
this but it is significantly safer.  "HttpPipelining" debug setting
is now fully dynamic.  Connection limits can also be made dynamic
in the near future.  Upped the default connection count back to 8 for
now but will revisit this in the tuning phase.  It might be time to
combine mesh and textures into a single asset class.  For normal
server operations that would be a clear path, but for server under
load, the current scheme may be better.  Minor cleanup in logging
to elminate some redundant strings.  Might add some more tracing to the
stall logic 'just in case'.
2014-08-12 18:21:26 -04:00
Monty Brandenberg 5cca78e718 First HTTP pipelining viewer. Enable pipelining for
GetTexture and GetMesh2 at a pipeline depth of 5.  Create
global debug option, HttpPipelining, to enable and disable
HTTP pipelining (defaults to true).  Tweak texture and
mesh low- and high-water request levels based on pipelining
status and depth.  Fixup texture console which was damaged
in a recent release.  Split logging of the no-request
HTTP error case into two cases:  one for missing URL in
HTTP request, one for HTTP request not created.  A refactor
in llcorehttp is coming:  I will be moving all libcurl-
using code into libcurl-specific modules.
2014-06-23 14:23:33 -04:00
Brad Payne (Vir Linden) 7b9708a2e3 sunshine-external merge WIP 2014-05-13 10:02:26 -04:00
Richard Linden 80b4a4a1f5 merge with release 2014-02-24 18:45:59 -08:00
Brad Payne (Vir Linden) 0384d57972 SH-4611 WIP 2013-11-20 16:21:34 -05:00
Richard Linden 612892b45a SH-4433 WIP: Interesting: Statistics > Ping Sim is always 0 ms
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-18 22:30:27 -07:00
Richard Linden 9f7bfa1c37 moved unit types out of LLUnits namespace, since they are prefixed 2013-08-15 00:02:23 -07:00
Richard Linden 11e14cd3b0 SH-4299Interesting: High fps shown temporarily off scale in statistics console
various fixes to lltrace
start() on started recording no longer resets
fixed various instances of unit forgetfullness in lltrace
recording split now has gapless timing
scene monitor now guarantees min sample time
renamed a bunch of stats
added names to debug thread view on windows
2013-07-15 11:05:57 -07:00
Richard Linden d122318bef SH-4299 WIP: Interesting: High fps shown temporarily off scale in statistics console
added percentage/ratio units
added auto-range and auto tick calculation to stat bar to automate display stats
2013-07-08 00:55:17 -07:00
Richard Linden 9fd3af3c38 SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
changed Units macros and argument order to make it more clear
optimized units for integer types
fixed merging of periodicrecordings...should eliminate duplicate entries in sceneloadmonitor history
2013-06-13 15:29:15 -07:00
Richard Linden 0a96b47663 merge with viewer-release 2013-06-05 19:05:43 -07:00
Richard Linden 9ae76d1215 SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
fixed copy construction behavior of Recordings to not zero out data
split measurement into event and sample, with sample representing
a continuous function
2013-05-29 17:00:50 -07:00
Oz Linden ddd5659f81 merge changes for DRTVWR-294 2013-04-19 10:11:29 -04:00
Brad Payne (Vir Linden) 8d3afb35d8 SH-4061 - integrated LLHttpRetryPolicy with new corehttp header parsing 2013-04-15 18:58:58 -04:00
Brad Payne (Vir Linden) 7182203ebf SH-4061 WIP - moved all retry logic into lltexturefetch, some cleanup. Debug setting now defines a fake failure rate. 2013-04-15 17:46:28 -04:00
Monty Brandenberg 4eef1c8a2e SH-4106 Significantly upgrade the HttpHeaders interface for SSB.
Header container moves from a vector of raw lines to a vector
of string pairs representing name/value pairs in headers.  For
incoming headers, we normalize the name to lowercase and trim
it.  Values are only left-trimmed.  Outgoing headers are left
as-is.  Simple find() method for the common case, forward and
reverse iterators for those few who need to do it themselves.
The HTTP status line (e.g. 'HTTP/1.1 200 Ok') is no longer treated
as a header to be returned to caller.  Unit tests, as usual,
were a bear but they absolutely ensured outgoing HTTP header
conformance after the change.  Grunt work paid off.

LLTextureFetch was also given a second options structure
for texture fetches.  Same as the original but with header return
to caller requested.  Baked textures should use this, the other
20,000 texture fetch requests should continue to use the original.
2013-04-15 16:55:35 +00:00
Monty Brandenberg 8868964b54 SH-4106 Significantly upgrade the HttpHeaders interface for SSB.
Header container moves from a vector of raw lines to a vector
of string pairs representing name/value pairs in headers.  For
incoming headers, we normalize the name to lowercase and trim
it.  Values are only left-trimmed.  Outgoing headers are left
as-is.  Simple find() method for the common case, forward and
reverse iterators for those few who need to do it themselves.
The HTTP status line (e.g. 'HTTP/1.1 200 Ok') is no longer treated
as a header to be returned to caller.  Unit tests, as usual,
were a bear but they absolutely ensured outgoing HTTP header
conformance after the change.  Grunt work paid off.

LLTextureFetch was also given a second options structure
for texture fetches.  Same as the original but with header return
to caller requested.  Baked textures should use this, the other
20,000 texture fetch requests should continue to use the original.
2013-04-15 16:55:35 +00:00
Brad Payne (Vir Linden) a8cdcfc9a8 SH-4061 WIP - moved retry policy to newview so it can work with either llmessage or CoreHttp libraries. Updated tests. 2013-04-12 09:16:25 -04:00
Brad Payne (Vir Linden) e17920defb SH-4061 WIP - started adding retry to texture fetch, making retry policy compatible with old and new http libraries 2013-04-11 16:17:23 -04:00
Brad Payne (Vir Linden) f78da98791 SH-4061 WIP - capture http status codes from requests, restrict SB fetch retries to 5xx errors 2013-04-10 11:43:48 -04:00
Brad Payne (Vir Linden) 4bbcd26941 SH-4061 FIX - texture fetch failures added retry logic and fault injection for testing 2013-04-08 18:16:58 -04:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Richard Linden 68f9f656cd merge with viewer-release 2013-03-22 00:44:59 -07:00
prep 8e3b190e91 merge 2013-03-11 15:17:13 -04:00
prep e0c9174609 merge 2013-03-11 15:05:47 -04:00
Brad Payne (Vir Linden) 957c8303be Added gratuitous coupling to stop gcc from complaining 2013-03-11 14:51:45 -04:00
Brad Payne (Vir Linden) 5a436e46f6 SH-3959 WIP - pass information about type of fetched image - server bake, host bake, map tile, etc - down the chain so LLTextureFetchWorker can adjust behavior as needed 2013-03-08 17:07:17 -05:00
Richard Linden f07b9c2c69 renamed LLTrace stat gathering classes/methods to make the structure of LLTrace clearer
Count becomes CountStatHandle
Count.sum becomes sum(Count, value), etc.
2013-03-06 11:08:25 -08:00
Monty Brandenberg cc0a4bf6ac Merge. Pull viewer-development in prior to filing DRTVWR merge request. 2013-01-09 16:39:30 -05:00
Monty Brandenberg 11e506f2eb SH-3357 Texture fetch debugger not running correctly under drano-
http phase 1 Some missing counter initialization kept the debugger
from entering the startup state giving the appearance of a do-
nothing floater.  Also found some unbound recursion that might need
looking at in the future.  (There's a comment.)
2012-12-21 22:24:34 +00:00
simon@Simon-PC.lindenlab.com 7fe4fbe674 Pull in upstream viewer-development via viewer-lion 2012-12-04 15:03:34 -08:00
simon@Simon-PC.lindenlab.com 40e78a80cc Pull and merge viewer-development 2012-12-04 14:31:15 -08:00
Richard Linden 5d51175cd7 SH-3406 WIP convert fast timers to lltrace system
fixes to merge
2012-11-20 15:55:04 -08:00
Dave Parks 5d34ac552f Automated merge with https://bitbucket.org/lindenlab/viewer-development 2012-11-20 17:03:55 -06:00
Richard Linden c0224cc47a merge with viewer-development 2012-11-19 19:06:36 -08:00
Richard Linden 819adb5eb4 SH-3405 FIX convert existing stats to lltrace system
final removal of remaining LLStat code
2012-11-01 00:26:44 -07:00
Richard Linden 371b66a6ef Automated merge with http://bitbucket.org/lindenlab/viewer-development 2012-09-06 11:47:48 -07:00
Monty Brandenberg 04e8d074b2 DRTVWR-209 Merge of viewer-development with SH-3316 drano-http code.
This was yet another refresh from v-d because of significant changes
to lltexturefetch that would not have been resolvable by casual
application of any merge tool.  There are still a few questions
outstanding but this is the initial, optimistic merge.
2012-09-07 12:53:07 -04:00
simon@Simon-PC.lindenlab.com 38acb45af8 Merge in latest viewer-development 2012-09-05 17:17:54 -07:00
Monty Brandenberg 7bee4b58ff SH-3325 texture load slow on some machines
This doesn't really address 3325 directly but it is the result of research
done while hunting it down.  First, this is a thread safety improvement for
canceled requests that have gone into resource wait state.  I don't think
we've seen a failure there but there was a window.  It also cleans the
resource wait queue earlier which lets us do less work and get requests
more quickly into llcorehttp by bypassing the resource wait state.  With
this, I finally feel comfortable about rundown of requests.
2012-08-21 12:28:51 -04:00
Monty Brandenberg 4b86f8983a SH-3329 Cached scene loads slower than same scene with cleared cache.
A/B comparison with original code showed the newer issuing lower-priority
requests of the cache reader and some other minor changes.  Brought them
into agreement (this is cargo-cult programming).  Made the HTTP resource
semaphore an atomic int for rigorous correctness across threads.  I
swear I'm going to tear down this code someday.
2012-08-19 18:51:21 -04:00
Monty Brandenberg 9de14fe45b SH-3327 HTTP transfers not showing up in texture console 'net tot tex' value.
Dropped an argument during integration which made the total byte count read
lower than expected.  Everything else is fine, however.
2012-08-17 12:33:12 -04:00
Richard Linden c8a36e9cfd SH-3275 WIP Run viewer metrics for object update messages
cleaned up LLStat and removed unnecessary includes
2012-08-07 19:55:47 -07:00
Monty Brandenberg 3f032e33f2 SH-3280 Better init/shutdown functionality for llcorehttp by llappviewer
Isolate llcorehttp initialization into a utility class (LLAppCoreHttp)
that provides glue between app and library (sets up policies, handles
notifications).  Introduce 'TextureFetchConcurrency' debug setting to
provide some field control when absolutely necessary.
2012-07-19 13:41:18 -04:00
Monty Brandenberg 8e5197a71b Merge 3.3.3 release with Drano HTTP library at 3.3.0
Big delta was converting the new texture debugger support code
to the new library.  Viewer manifest should probably get an eyeball
before release.
2012-07-02 18:06:22 -04:00
Xiaohong Bao 0730b24d7c fix merge conflicts: v-r to drano 2012-06-26 22:27:24 -06:00
Brad Payne (Vir Linden) 74d4f8af01 v-r to drano merge conflicts wip 2012-06-26 16:43:58 -04:00
Monty Brandenberg 5ff1758b63 SH-3177, SH-3180 std::iostream and LLSD serialization for BufferArray objects.
Seems to be working correctly.  Not certain this is the fastest possible way
to provide a std::streambuf interface but it's visually acceptable.
2012-06-22 14:41:08 -04:00
Monty Brandenberg 1cf8e785ba Tidy Texture Console, add cache & resource wait stats, issue stats line to log on exit.
With much trial-and-error, cleaned up the banner on the texture console and made everything
mostly fit.  Added global cache read, cache write and resource wait count events to the
console display to show if cache is working.  On clean exit, emit a log line to report
stats to log file (intended for automated tests, maybe):
LLTextureFetch::endThread: CacheReads:  2618, CacheWrites:  117, ResWaits:  0, TotalHTTPReq:  117
2012-06-18 18:38:24 -04:00