| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
removed comments
|
|
|
|
|
|
having 300 threads because object select is not funny
|
|
|
|
|
|
Instead, handle the port being 0 as "any port" and assign a random
port for regions in that case.
|
|
socket timeout
|
|
|
|
|
|
It says that code is for debugging, but it was buggy.
|
|
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
|
|
algorithm for dropping packets is a modified two state algorithm for creating
bursts of dropped packets. As configured there is about a 1.5% drop rate.
Invocation of the packet loss code is commented out by default.
|
|
At least on Mono 3.2.8 (but not under Windows), one can bind multiple UDP sockets to the same port by default.
Different simulators cannot demultiplex each other's messages, so a set of confusing non-obvious errors arise if this occurs.
This change prevents such multiple binding.
|
|
|
|
|
|
to bind to same port, as seems to be possible at least with mono 3.2.8,
same as patch just pushed to core by justin. This is not necessary on
windows, possible a bug on some mono versions.
|
|
This reverts commit 8c41271b3312f2a02608ffc41b220f7fb018d6ad.
Conflicts:
OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
|
|
Testing this may require several people.
|
|
debugging purposes.
This may reveal why on some teleports with current code, the UseCircuitCode message gets through but CompleteMovement disappears into the ether.
|
|
packets sent by a region per second
|
|
|
|
taking on the initial processing of a UDP packet.
If we're not receiving packets with multiple threads (m_asyncPacketHandling) then this is critical since it will limit the number of incoming UDP requests that the region can handle and affects packet loss.
If m_asyncPacketHandling then this is less critical though a long process will increase the scope for threads to race.
This is an experimental stat which may be changed.
|
|
threads are started/stopped
|
|
always performing these on a separate fired thread.
This appears to improve cpu usage since launching a new thread is more expensive than performing a small amount of inline logic.
However, needs testing at scale.
|
|
interference between incoming packets.
On Windows, concurrent multi-threaded processing of inbound UDP somehow allows different data input processing to interfere with each other.
Possibly the endpoint reference is being switched, though I don't yet know the mechanism. Not seen on Mono.
Also resolveable by setting RecyclePackets = false or RecycleBaseUDPPackets = false in [PacketPool]
Or async_packet_handling = false in [ClientStack.LindenUDP]
For now, will simply disable this particular pooling though will revisit this issue.
In response to http://opensimulator.org/mantis/view.php?id=6468
|
|
master.
This reverts commit dfac269032300872c4d0dc507f4f9062d102b0f4, reversing
changes made to 619c39e5144f15aca129d6d999bcc5c34133ee64.
|
|
lifted up into LLUDPServer and be distiguished by scene name
|
|
Also puts some packet processing counts in a container named after the scene so that stats can be collected from more than one scene.
|
|
running via the "debug lludp pool <on|off>" console command. For debug purposes.
This does not currently apply to the higher LLUDP packetpool.
|
|
they are enabled. Add count stats for existing LLUDP pool.
This introduces a pull stat type in addition to the push stat type.
A pull stat takes a method on construction which knows how to update the stat on request.
In this way, special interfaces for pull stat collection are not necessary.
|
|
UDP data.
Even when an avatar is standing still, it's sending in a constant stream of AgentUpdate packets that the client creates new UDPPacketBuffer objects to handle.
This option pools those objects. This reduces memory churn.
Currently off by default. Works but the scope can be expanded.
|
|
console for debug processes.
This is controlled via the "debug lludp start <in|out|all>" and "debug lludp stop <in|out|all>" region console commands.
The command "debug lludp status" will show current status.
|
|
This checks that the initial UseCircuitCode packet is handled correctly for a normal client login.
|
|
|
|
match that given for InternalAddress in the config (e.g. 0.0.0.0)
Can't obtain actually bound address until the UDP socket is used for the first time.
|
|
more problems than it resolves. The stack DOES need a rework particularly with regards to priorities, but this is not it.
|
|
|
|
|
|
the event of a terse update being rejected - Re-add a synchronous SendTo for certain types of packets
|
|
|
|
upped it to 30ms
* Removed the unused PacketSent() function
* Switched UnackedPacketCollection from a SortedDictionary to a Dictionary now that the sorting is no longer needed. Big performance improvement for ResendUnacked()
|
|
with a config setting, defaulting to synchronous mode
|
|
* OnQueueEmpty is still called async, but will not be called for a given category if the previous callback for that category is still running. This is the most balanced behavior I could find, and seems to work well
* Added support for the old [ClientStack.LindenUDP] settings (including setting the receive buffer size) and added the new token bucket and global throttle settings
* Added the AssetLoaderEnabled config variable to optionally disable loading assets from XML every startup. This gives a dramatic improvement in startup times for those who don't need the functionality every startup
|
|
the packet type. This message is normal, but could be evidence of a message marked for zerocoding that probably shouldn't be
* Changing OpenSimUDPBase back to high concurrency. High concurrency mode seems to make other problems happen faster, so it's helpful for working out other bugs and will probably
|