summaryrefslogtreecommitdiff
path: root/indra/newview
AgeCommit message (Collapse)Author
2012-06-18Tidy Texture Console, add cache & resource wait stats, issue stats line to ↵Monty Brandenberg
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-14LLMutex recursive lock, global & per-request tracing, simple GET request, ↵Monty Brandenberg
LLProxy support, HttpOptions starting to work, HTTP resource waiting fixed. Non-LLThread-based threads need to do some registration or LLMutex locks taken out in these threads will not work as expected (SH-3154). We'll get a better solution later, this fixes some things for now. Tracing of operations now supported. Global and per-request (via HttpOptions) tracing levels of [0..3]. The 2 and 3 levels use libcurl's VERBOSE mode combined with CURLOPT_DEBUGFUNCTION to stream high levels of detail into the log. *Very* laggy but useful. Simple GET request supported (no Range: header). Really just a degenrate case of a ranged get but supplied an API anyway. Global option to use the LLProxy interface to setup CURL handles for either socks5 or http proxy usage. This isn't really the most encapsulated way to do this but a better solution will have to come later. The wantHeaders and tracing options are now supported in HttpOptions giving per-request controls. Big refactoring of the HTTP resource waiter in lltexturefetch. What I was doing before wasn't correct. Instead, I'm implementing the resource wait after the Semaphore model (though not using system semaphores). So instead of having a sequence like: SEND_HTTP_REQ -> WAIT_HTTP_RESOURCE -> SEND_HTTP_REQ, we now do WAIT_HTTP_RESOURCE -> WAIT_HTTP_RESOURCE2 (actual wait) -> SEND_HTTP_REQ. Works well but the prioritized filling of the corehttp library needs some performance work later.
2012-06-13Restore original priority scheme of LOW/HIGH.Monty Brandenberg
The NORMAL range doesn't do any sleeping at all and so we'll spin the core harder than we already are. Bring all idlers into the same range.
2012-06-12HTTP Proxy, PUT & POST, unit tests and refactoring.Monty Brandenberg
Implemented/modified PUT & POST to not used chunked encoding for the request. Made the unit test much happier and probably a better thing for the pipeline. Have a cheesy static & dynamic proxy capability using both local options and a way to wire into LLProxy in llmessages. Not a clean thing but it will get the proxy path working with both socks5 & http proxies. Refactoring to get rid of unneeded library handler and unified an HttpStatus return for all requests. Big batch of code removed as a result of that and more is possible as well as some syscall avoidance with a bit more work. Boosted the unit tests for simple PUT & POST test which revealed the test harness does *not* like chunked encoding so we'll avoid it for now (and don't really need it in any of our schemes).
2012-06-11Refactoring of the request completion thread and removal of ↵Monty Brandenberg
206/content-range hack in xport. Retry/response handling is decided in policy so moved that there. Removed special case 206-without-content-range response in transport. Have this sitation recognizable in the API and let callers deal with it as needed.
2012-06-08Implemented HTTP retry for requests. Went in rather easily whichMonty Brandenberg
surprised me. Added a retry queue similar to ready queue to the policy object which is sorted by retry time. Currently do five retries (after the initial try) delayed by .25, .5, 1, 2 and 5 seconds. Removed the retry logic from the lltexturefetch module. Upped the waiting time in the unit test for the retries. People won't like this but tough, need tests.
2012-06-07First efforts at getting the texture cache working. This isMonty Brandenberg
now avoiding doing HTTP fetches for read data. Not certain it's completely correct but the difference is already significant.
2012-06-07Lock/Mutex fixes, documentation, new resource wait state, dtor cleanupsMonty Brandenberg
Went through all the code and tried to document lock and thread usage in the module. There's a huge comment block introducing all of this at the beginning and I believe it's correct (though not quite complete). Keep it updated, people. Added a new state, WAIT_HTTP_RESOURCE, that's sort of a side-state of SEND_HTTP_REQ. If we hit a high-water mark for HTTP requests, the extra are shunted to the new state once. Once levels fall to a low-water mark, we run through a wait list of UUIDs, sort the valid ones by priority and release them for service. This keeps the HTTP layer busy while leaving the active queue shallow enough that requests can still be re-prioritzed cheaply. Priority model changed. The new state uses the PRIORITY_LOW mask, the old users of _LOW are now at PRIORITY_NORMAL and sleepers woken up after an external event are kicked off at PRIORITY_HIGH. This combination along with the new state should avoid priority inversion and keep things running without resorting to an infinite pipeline. New state displays as "HTW" with green text in the texture console. Request cancelation and worker run-down should now be more correct but this edge case may need more attention.
2012-06-06Policy + caching fixes + https support + POST workingMonty Brandenberg
Implemented first global policy definitions to support SSL CA certificate configuration to support https: operations. Fixed HTTP 206 status handling to match what is currently being done by grid services and to lay a foundation for fixes that will be a response to ER-1824. More libcurl CURLOPT options set on easy handles to do peer verification in the traditional way. HTTP POST working and now reporting asset metrics back to grid for the viewer's asset system. This uses LLSD so that is also showing as compatible with the new library.
2012-06-05Faster spin in worker thread when doing I/O and a priority bump needed when ↵Monty Brandenberg
fixing priorities.
2012-06-01MergeMonty Brandenberg
2012-06-01Do some work on BufferArray to make it a bit less naive aboutMonty Brandenberg
chunking data. Remove the stateful use of a seek pointer so that shared read is possible (though maybe not interesting).
2012-06-01Another float/int issue and move the POST priority in line withMonty Brandenberg
what normal requests do...
2012-06-01Platform fixups Linux: unused variables, make error strings constant.Monty Brandenberg
2012-06-01Major steps towards implementing the policy component.Monty Brandenberg
Identified and reacted to the priority inversion problem we have in texturefetch. Includes the introduction of a priority_queue for the requests that are ready. Start some parameterization in anticipation of having policy_class everywhere. Removed _assert.h which isn't really needed in indra codebase. Implemented async setPriority request (which I hope I can get rid of eventually along with all priorities in this library). Converted to using unsigned int for priority rather than float. Implemented POST and did groundwork for PUT.
2012-05-23Integrate llcorehttp library into lltexturefetch design.Monty Brandenberg
This is the first functional viewer pass with the HTTP work of the texture fetch code performed by the llcorehttp library. Not exactly a 'drop-in' replacement but a work-alike with some changes (e.g. handler notification in consumer thread versus responder notification in worker thread). This also includes some temporary changes in the priority scheme to prevent the kind of priority inversion found in VWR-28996. Scheme used here does provide liveness if not optimal responsiveness or order-of-operation. The llcorehttp library at this point is far from optimally performing. Its worker thread is making relatively poor use of cycles it gets and it doesn't idle or sleep intelligently yet. This early integration step helps shake out the interfaces, implementation niceties will be covered soon.
2012-05-09Add more boost libs to the lib copy and manifest.Monty Brandenberg
2012-05-08And more boost library work.Monty Brandenberg
2012-05-08Now trying to get linux working. libllcommon is picking up .soMonty Brandenberg
boost libraries when we tend to want statics. Try to work around that for the moment.
2012-04-26Bring llcorehttp into the compile and link phases. Windows looks okay ↵Monty Brandenberg
though it's a dead library so far.
2012-02-29merge changes for vmrg-231Oz Linden
2012-02-29merge changes for sh-2963Oz Linden
2012-02-28EXP-1888 FIX Update text for emtpy Received Items folder in the ViewerRichard Linden
2012-02-14SH-2973 Rearrange shutdown operations to prevent crash on exit on OSXDave Parks
2012-02-13SH-2973 Potential fix for crash in ~LLVOAvatarSelfDave Parks
2012-02-13EXP-1888 FIX -- Update text for emtpy Received Items folder in the ViewerLeslie Linden
2012-02-10Resized the Merchant Outbox spinner to its native sizeLeslie Linden
2012-02-10SH-2963 Fix for highlight transparent not highlighting 100% transparent objects.Dave Parks
2012-02-10* Added timers to track the http transactions, visible through the sameLeslie Linden
"InventoryOutboxLogging" debug flag.
2012-02-09Enabled the 'Merchant Outbox' menu item and context menuLeslie Linden
2012-02-03merge changes for vmrg-222Oz Linden
2012-02-03EXP-1868 FIX Remove Merchant Outbox from Me menuRichard Linden
removed merchant outbox context menu reviewed by Leslie
2012-02-03EXP-1868 FIX Remove Merchant Outbox from Me menuRichard Linden
reviewed by Leslie
2012-02-03EXP-1843 WIP Added an option to output avatar rez timing.Vadim ProductEngine
Use the new "Avatar Rez" debugging tag to see the output.
2012-02-01mergeBrad Payne (Vir Linden)
2012-01-30merge changes for vmrg-219Oz Linden
2012-01-25Introduce two new parameters "CurlUseMultipleThreads" and ↵Xiaohong Bao
"CurlRequestTimeOut" for QA to test Curl.
2012-01-24SH-2791 Use request class constructor/destructor for keeping track of ↵Dave Parks
concurrent requests instead of unreliable increments/decrements sprinkled around the code.
2012-01-30mergeBrad Payne (Vir Linden)
2012-01-24merge changes for vmrg-218Oz Linden
2012-01-24mergeDave Parks
2012-01-24SH-1427 Fix for spot lights not working properly on alpha objects, and fix ↵Dave Parks
for alpha lighting of point lights not matching deferred lights.
2012-01-24mergeBrad Payne (Vir Linden)
2012-01-23Reverting background fetch on an item to the old fetFromServer call to fix ↵Leslie Linden
regression bug in inventory late loading
2012-01-23Reverting rev 22217 changes to background fetch so search and recent will ↵Leslie Linden
fully fetch user inventory
2012-01-23* Optimization to not waste some time doing std::string assignment all over ↵Leslie Linden
the graphics code. Reviewed by davep.
2012-01-23EXP-1799 FIX -- Replace and Add to Outfit options and Copy to Merchant ↵Leslie Linden
Outbox options can appear in invalid state when a valid folder is last selection EXP-1834 FIX -- Right click context menus on Folders in Merchant Outbox and Library folders can show all inventory options including admin options EXP-1835 FIX -- Right clicking on a folder and selecting New Folder creates folder under My Inventory not within selected folder * Updated folder context menu building to build full options in one step or trigger a load which will rebuild top-level context menu for all selected items when complete. Previous code had an implicit assumption that the selected folder was the only selection after background fetch.
2012-01-23merge changes for storm-1799Oz Linden
2012-01-23merge changes for storm-1798Oz Linden
2012-01-23merge changes for storm-1796Oz Linden