Threaded Region Crossing Beta Tests

From Second Life Wiki
Revision as of 16:24, 14 December 2012 by Caleb Linden (talk | contribs)
Jump to navigation Jump to search

Introduction

In an upcoming server build, Linden Lab has added background serialization of agents and their attachments on region crossing. What has happened in the past is that when you leave a region, there was a main thread stall caused by the serialization of the avatar and it's attachments which caused a 300% spike in frame time. With added background serialization there shouldn't be such frame time spike.

Test Setup

Regions with Background Serialization turned OFF (Unthreaded) can be identified by its channel name: 'DRTSIM-184 Unthreaded'

  1. GC Test 2
  2. GC Test 8

Regions with Background Serialization turned ON (Threaded) can be identified by its channel name: 'DRTSIM-184 Threaded'

  1. GC Test 9
  2. GC Test 15
  3. GC Test 10
  4. GC Test 16

Testing Ideas

Please, free to expand on the following basic Region Crossing test ideas. For additional suggestions, please mail Caleb.

  1. Region crossing with regular avatar
  2. Region crossing via manual TP
  3. Region crossing on a vehicle (including Mesh based vehicles)
  4. Region crossing while sitting on moving objects
  5. Region crossing via scripted TP
  6. Region crossing with attachments of varying sizes (including complex HUDs)

Community Beta Tests

#1: Direct login to test regions

  1. Ensure that you have access to the test regions listed in 'Test Setup'
  2. Ensure that you can rez objects and run scripts

Fails if

This test fails if the tester is unable to log-in directly to the target location. Please alert Caleb. Also, please have Help -> About Second Life info copied to clipboard to send to LL staff upon request.

Non-Threaded Region Crossings

This is to confirm that unhooking the old threaded state machine region crossing code doesn't break regular, non-threaded, region crossings.

Each of these tests begin with the following steps:

  1. Start up two or more adjacent regions.
  2. For each region, edit the simulator.xml so that the boolean named "enable_background_serialization" is set to false.

Test 1 - Verify Regular Crossings Work

  1. Using a test account or the horde, do lots of region crossings to confirm that all is normal.

Test 2 - Verify Regular Crossings with Meshes Work

  1. Using a test account, put on a mesh avatar and do lots of region crossings to confirm that all is normal.
  2. Add a mesh attachment and do lots of region crossings to confirm that all is normal.

Test 3 - Verify that Regular Teleports Work

  1. Using a test account, start in a region that is NOT one of the test regions.
  2. Teleport into one of the test regions.
  3. Teleport back to where you came from.
  4. Repeat some number of times to verify that all is normal.

Threaded Region Crossings

This is to confirm that moving agent and attachment serialization to a background thread doesn't break region crossing.

Each of these tests begin with the following steps:

  1. Start up two or more adjacent regions.
  2. For each region, edit the simulator.xml so that the boolean named "enable_background_serialization" is set to true.

Test 4 - Verify Regular Crossings Work

  1. Using a test account or the horde, do lots of region crossings to confirm that all is normal.

Test 5 - Verify Regular Crossings with Meshes Work

  1. Using a test account, put on a mesh avatar and do lots of region crossings to confirm that all is normal.
  2. Add a mesh attachment and do lots of region crossings to confirm that all is normal.

Test 6 - Verify that Regular Teleports Work

  1. Using a test account, start in a region that is NOT one of the test regions.
  2. Teleport into one of the test regions.
  3. Teleport back to where you came from.
  4. Repeat some number of times to verify that all is normal.

Threaded Region to/from Non-Threaded Region Crossings

This is to confirm that moving agent and attachment serialization to a background thread doesn't break crossing between regions that have Threaded region turned on and Non-Threaded region.

Each of these tests begin with the following steps:

  1. Start up two or more adjacent regions (they have to run on two different simhosts).
  2. For one region, edit the simulator.xml so that the boolean named "enable_background_serialization" is set to true' and the other one is set to false.

Test 7 - Verify Regular Crossings Work

  1. Using a test account or the horde, do lots of region crossings to confirm that all is normal.

Test 8 - Verify Regular Crossings with Meshes Work

  1. Using a test account, put on a mesh avatar and do lots of region crossings to confirm that all is normal.
  2. Add a mesh attachment and do lots of region crossings to confirm that all is normal.

Test 9 - Verify that Regular Teleports Work

  1. Using a test account, start in a region that is NOT one of the test regions.
  2. Teleport into one of the test regions.
  3. Teleport back to where you came from.
  4. Repeat some number of times to verify that all is normal.

Threaded Region to/from Server-Trunk Crossings

This is to confirm that moving agent and attachment serialization to a background thread doesn't break crossing between regions that have Threaded region turned on and Server Trunk region.

Each of these tests begin with the following steps:

  1. Start up two or more adjacent regions (they have to run on two different simhosts).
  2. For one region, edit the simulator.xml so that the boolean named "enable_background_serialization" is set to true and the other one is running Server Trunk.

Test 10 - Verify Regular Crossings Work

  1. Using a test account or the horde, do lots of region crossings to confirm that all is normal.

Test 11 - Verify Regular Crossings with Meshes Work

  1. Using a test account, put on a mesh avatar and do lots of region crossings to confirm that all is normal.
  2. Add a mesh attachment and do lots of region crossings to confirm that all is normal.

Test 12 - Verify that Regular Teleports Work

  1. Using a test account, start in a region that is NOT one of the test regions.
  2. Teleport into one of the test regions.
  3. Teleport back to where you came from.
  4. Repeat some number of times to verify that all is normal.