Commit Graph

268 Commits

Author SHA1 Message Date
UbitUmarov
a07951b044 fix UDPBuffersPoolCount value (readable with stats show clientstack 2019-02-26 00:43:44 +00:00
UbitUmarov
d5d4dc4754 zero decode using a buffer from the pool 2019-02-25 23:30:01 +00:00
UbitUmarov
d01165818d change UDPPacketBuffer pools (does waste a bit of memory) 2019-02-25 21:46:23 +00:00
UbitUmarov
0c38d52538 cosmetics on terrain patchs 2019-01-20 20:58:27 +00:00
UbitUmarov
b24c669c16 more on the hack (runprebuild) 2019-01-02 16:44:13 +00:00
UbitUmarov
02492f7b15 replace my hack by others hack 2019-01-01 12:06:29 +00:00
UbitUmarov
817b622b79 changes on updates 2018-12-30 02:41:13 +00:00
UbitUmarov
cf89799c0b changes on updates 2018-12-29 23:03:03 +00:00
UbitUmarov
4a73cc81dc now break several things at same time... sog/sop updates, threads options,... 2018-12-28 13:52:59 +00:00
UbitUmarov
7a4d8017d7 simplify a bit 2018-12-02 00:41:01 +00:00
UbitUmarov
d179b2dda1 avoid data references stuck in packet pools 2018-11-25 18:38:37 +00:00
UbitUmarov
3741abab7c udp threads don't need to be fg 2018-11-06 15:18:36 +00:00
UbitUmarov
cf33e0440a reduce some threads priority 2018-10-28 14:43:14 +00:00
UbitUmarov
9e4bf3439c change throtle datasnapshot get 2018-01-22 19:50:07 +00:00
UbitUmarov
d38161f83d retire our BlockingQueue replaced by BlockingCollection and cross fingers 2018-01-22 17:09:38 +00:00
UbitUmarov
49b4408782 some cleanup 2018-01-20 12:11:07 +00:00
UbitUmarov
ad43cc6784 change llclient async udp packets processing. Removed the shared Jobengine that made only one thread do some packets for all users, and removed the FireAndForget, so each user could issue a unlimited number of threads. Added a new JobEngine per client, so each gets at most one thread,and that thread can be released if iddle (for 5 seconds ) 2017-06-13 19:04:18 +01:00
UbitUmarov
3ba63dde6e udp is not tcp. If mono versions have bronke udp sento, better update, also having 300 threads because object select is not funny 2017-06-13 12:17:39 +01:00
UbitUmarov
e650a4ff16 remove excessive notion of paralelism 2017-06-13 08:56:21 +01:00
Melanie Thielker
b16abc8166 Massive tab and trailing space cleanup 2017-01-05 19:07:37 +00:00
Melanie Thielker
69776aa70c Remove the AllowAlternatePorts option. It wasn't implemented anyway.
Instead, handle the port being 0 as "any port" and assign a random
port for regions in that case.
2016-12-13 19:47:26 +00:00
UbitUmarov
b2c553b459 work around some warnings 2016-11-21 01:16:35 +00:00
UbitUmarov
e281876ecd restore higher resolution clock on udpserver and lower uaeraccouts caching time 2016-11-18 03:25:29 +00:00
UbitUmarov
d8812ba2d1 revert to lower resolution clock on udpserver for testing 2016-11-18 03:00:59 +00:00
UbitUmarov
c349a1a5e7 also log estimated average Util.GetTimeStampMS() resolution 2016-11-09 11:21:46 +00:00
UbitUmarov
94d2422230 change the clock source on udp outgoing, remove some dead code 2016-11-09 10:21:02 +00:00
UbitUmarov
abf423e361 be nicer to PIs (actually linux) 2016-07-12 23:23:47 +01:00
Melanie Thielker
cdfbf78d07 Fields should be protected unless private is required 2016-06-14 01:27:48 +02:00
Melanie Thielker
68c73951ef Make the LLUDPServerShim inheritable. There is absolutely no reason for
this to be sealed!
2016-06-14 01:21:47 +02:00
UbitUmarov
bdab95f1d2 dont try to process packets for deleted clients 2015-12-09 22:57:13 +00:00
UbitUmarov
bbe55df6c6 disable useless and totally wrong incoming Pools 2015-12-09 22:32:48 +00:00
UbitUmarov
f7a29ad8b5 minor cleanup 2015-12-09 16:42:24 +00:00
UbitUmarov
8314987474 tick region health a bit faster 2015-12-09 16:27:59 +00:00
UbitUmarov
3ca4b6f319 fix the queue type in use 2015-12-09 16:26:03 +00:00
UbitUmarov
a8dc07ff5c removed a protocol breaking lludp debug option that no one should try, changed terrain send throotle to be by packets in queue, reduced odds of MTU violation on terrain send (still bad). Most UDP protocol implementations may not mind much, but our code still does 2015-09-22 18:39:59 +01:00
Robert Adams
e5367d822b Merge of ubitworkvarnew with opensim/master as of 20150905.
This integrates the OpenSim refactoring to make physics, etc into modules.
AVN physics hasn't been moved to new location.
Does not compile yet.

Merge branch 'osmaster' into mbworknew1
2015-09-08 04:54:16 -07:00
Diva Canto
dac8edd5dd Transformed the LLUDP ad-hoc plugin into a region module. It works. 2015-09-03 15:59:06 -07:00
UbitUmarov
a11edceb00 seems to compile ( tests comented out) 2015-09-02 19:54:53 +01:00
UbitUmarov
371c9dd2af bad merge? 2015-09-01 14:54:35 +01:00
Oren Hurvitz
20af31f18e Fixed mistakes related to confusion between Environment.TickCount (milliseconds) and TimeSpan.TicksPerXXX (10000 x milliseconds) 2015-08-11 07:35:40 +01:00
Melanie Thielker
7aa171e49f Maybe reduce incidence of ghost avatars 2015-06-12 03:16:09 +02:00
Justin Clark-Casey (justincc)
155da5aad2 Add debug ability to ignore reliably sent packets that are not acknowledged.
This is controlled via the console command "debug lludp client set process-unacked-sends true [<avatar-first-name> <avatar-last-name>]"
For debug purposes to see if this process for very bad connections is causing general outbound udp processing delays.
Relates to http://opensimulator.org/mantis/view.php?id=7393
2015-01-21 20:31:42 +00:00
Justin Clark-Casey (justincc)
55e081548c Fix bug where gathering the clientstack..OutgoingPacketsQueuedCount stat would fail with a casting exception for scenes with NPCs
Present since 51eb8fa (Oct 2 2014)
2015-01-13 19:27:29 +00:00
Justin Clark-Casey (justincc)
8e1e8a0920 Make the performance controlling job processing threads introduced in conference code use a generic JobEngine class rather than 4 slightly different copy/pasted versions. 2015-01-12 20:56:37 +00:00
Justin Clark-Casey (justincc)
86367d7219 refactor: Move methods to start a monitored thread, start work in its own thread and run work in the jobengine from Watchdog to a WorkManager class.
This is to achieve a clean separation of concerns - the watchdog is an inappropriate place for work management.
Also adds a WorkManager.RunInThreadPool() class which feeds through to Util.FireAndForget.
Also switches around the name and obj arguments to the new RunInThread() and RunJob() methods so that the callback obj comes after the callback as seen in the SDK and elsewhere
2014-11-25 23:56:32 +00:00
Justin Clark-Casey (justincc)
d6c9705a3b Add incoming packet async handling engine to queue some inbound udp async requests.
This is to reduce the potential for overload of the threadpool if there are many simultaneous requets in high concurrency situations.
Currently only applied to AvatarProperties and GenericMessage requests.
2014-11-25 23:23:11 +00:00
Justin Clark-Casey (justincc)
ec8d21c434 Label all threadpool calls being made in core OpenSimulator. This is to add problem diagnosis.
"show threadpool calls" now also returns named (labelled), anonymous (unlabelled) and total call stats.
2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc)
b2e377f168 Fix setting of max scene throttle so that setting it restricts the child client throttles properly.
In "show throttles", also renames 'total' column to 'actual' to reflect that it is not necessarily the throttles requested for/by the client.
Also fills out 'target' in non-adapative mode to the actual throttle requested for/by the client.
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc)
e6af551007 For now, send all non-full terse updates for ones own avatar directly to the LLUDP client stack rather than queueing internally within LLClientView.
When an HG avatar enters a scene, it delays processing of entity updates.  Could be crowding out by other updates or something else.
This delay in ones own av mvmt updates results in mvmt lag experienced on the client.  Avoiding the internal LLClientView for these packets appears to resolve this issue.
Appears most noticeably for avatars with attachments, though has also been seen on those without sometimes.  Hasn't been observed for non-HG avatars in general.
Will be investigating exactly what the problem is, at which point there will be a more permanent solution.
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc)
d33964222a Fix an issue where specifying both max client and server outgoing UDP throttles would cause client throttles to be lower than expected when total requests exceeded the scene limit.
This was because specifying a max client throttle would always request the max from the parent server throttle, no matter the actual total requests on the client throttle.
This would lead to a lower server multiplier than expected.
This change also adds a 'target' column to the "show throttles" output that shows the target rate (as set by client) if adaptive throttles is active.
This commit also re-adds the functionality lost in recent 5c1a1458 to set a max client throttle when adaptive is active.
This commit also adds TestClientThrottlePerClientAndRegionLimited and TestClientThrottleAdaptiveNoLimit regression tests
2014-11-25 23:21:38 +00:00