diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/ThrottleRates.cs | 6 |
2 files changed, 20 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs index d52ad7e..bd4e617 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs | |||
@@ -163,6 +163,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
163 | private int m_maxRTO = 60000; | 163 | private int m_maxRTO = 60000; |
164 | public bool m_deliverPackets = true; | 164 | public bool m_deliverPackets = true; |
165 | 165 | ||
166 | /// <summary> | ||
167 | /// This is the percentage of the udp texture queue to add to the task queue since | ||
168 | /// textures are now generally handled through http. | ||
169 | /// </summary> | ||
170 | private double m_cannibalrate = 0.0; | ||
171 | |||
166 | private ClientInfo m_info = new ClientInfo(); | 172 | private ClientInfo m_info = new ClientInfo(); |
167 | 173 | ||
168 | /// <summary> | 174 | /// <summary> |
@@ -202,6 +208,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
202 | // Create an array of token buckets for this clients different throttle categories | 208 | // Create an array of token buckets for this clients different throttle categories |
203 | m_throttleCategories = new TokenBucket[THROTTLE_CATEGORY_COUNT]; | 209 | m_throttleCategories = new TokenBucket[THROTTLE_CATEGORY_COUNT]; |
204 | 210 | ||
211 | m_cannibalrate = rates.CannibalizeTextureRate; | ||
212 | |||
205 | for (int i = 0; i < THROTTLE_CATEGORY_COUNT; i++) | 213 | for (int i = 0; i < THROTTLE_CATEGORY_COUNT; i++) |
206 | { | 214 | { |
207 | ThrottleOutPacketType type = (ThrottleOutPacketType)i; | 215 | ThrottleOutPacketType type = (ThrottleOutPacketType)i; |
@@ -350,6 +358,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
350 | texture = Math.Max(texture, LLUDPServer.MTU); | 358 | texture = Math.Max(texture, LLUDPServer.MTU); |
351 | asset = Math.Max(asset, LLUDPServer.MTU); | 359 | asset = Math.Max(asset, LLUDPServer.MTU); |
352 | 360 | ||
361 | // Since most textures are now delivered through http, make it possible | ||
362 | // to cannibalize some of the bw from the texture throttle to use for | ||
363 | // the task queue (e.g. object updates) | ||
364 | task = task + (int)(m_cannibalrate * texture); | ||
365 | texture = (int)((1 - m_cannibalrate) * texture); | ||
366 | |||
353 | //int total = resend + land + wind + cloud + task + texture + asset; | 367 | //int total = resend + land + wind + cloud + task + texture + asset; |
354 | //m_log.DebugFormat("[LLUDPCLIENT]: {0} is setting throttles. Resend={1}, Land={2}, Wind={3}, Cloud={4}, Task={5}, Texture={6}, Asset={7}, Total={8}", | 368 | //m_log.DebugFormat("[LLUDPCLIENT]: {0} is setting throttles. Resend={1}, Land={2}, Wind={3}, Cloud={4}, Task={5}, Texture={6}, Asset={7}, Total={8}", |
355 | // AgentID, resend, land, wind, cloud, task, texture, asset, total); | 369 | // AgentID, resend, land, wind, cloud, task, texture, asset, total); |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/ThrottleRates.cs b/OpenSim/Region/ClientStack/Linden/UDP/ThrottleRates.cs index c9aac0b..e5bae6e 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/ThrottleRates.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/ThrottleRates.cs | |||
@@ -59,6 +59,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
59 | /// <summary>Flag used to enable adaptive throttles</summary> | 59 | /// <summary>Flag used to enable adaptive throttles</summary> |
60 | public bool AdaptiveThrottlesEnabled; | 60 | public bool AdaptiveThrottlesEnabled; |
61 | 61 | ||
62 | /// <summary>Amount of the texture throttle to steal for the task throttle</summary> | ||
63 | public double CannibalizeTextureRate; | ||
64 | |||
62 | /// <summary> | 65 | /// <summary> |
63 | /// Default constructor | 66 | /// Default constructor |
64 | /// </summary> | 67 | /// </summary> |
@@ -80,6 +83,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
80 | Total = throttleConfig.GetInt("client_throttle_max_bps", 0); | 83 | Total = throttleConfig.GetInt("client_throttle_max_bps", 0); |
81 | 84 | ||
82 | AdaptiveThrottlesEnabled = throttleConfig.GetBoolean("enable_adaptive_throttles", false); | 85 | AdaptiveThrottlesEnabled = throttleConfig.GetBoolean("enable_adaptive_throttles", false); |
86 | |||
87 | CannibalizeTextureRate = (double)throttleConfig.GetFloat("CannibalizeTextureRate", 0.0f); | ||
88 | CannibalizeTextureRate = Util.Clamp<double>(CannibalizeTextureRate,0.0, 0.9); | ||
83 | } | 89 | } |
84 | catch (Exception) { } | 90 | catch (Exception) { } |
85 | } | 91 | } |