How to disable receive-side copy (RSC) on XenServer 6.0

In XenServer 6.0 a new feature Receive-Side Copy (RSC) is now enabled by default in Windows virtual machines with XenTools installed.

Receive-Side Copy moves the processing required for network traffic from Domain 0 (netback process) into the virtual machine (netfront process) thereby reducing the load on the control domain when you run large numbers of virtual machines.

In some scenarios, you might have to disable this feature to improve the virtual machine performance.

Known Issue: With Receive-Side Copy enabled a virtual machine virtual interface cannot count transmitted packets. For example, the following is an output for the ifconfig command for a Windows virtual machine that has transmitted a large amount of network traffic:

Windows 7 (64-bit)- vif4.0 RX packets:991371 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:41558972 (39.6 MiB) TX bytes:0 (0.0 b)

Note: Citrix is currently working on this issue.

Procedure

To disable the Receive-Side Copy, complete the following procedure:

  • Apply the following registry key to the Windows virtual machine: Note: You can copy the text and save it as a .reg file and then import the file into the registry. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesxenvifParameters] “ReceiverMaximumProtocol”=dword:00000000
  • Run the following command on the XenServer host, to monitor the ReceiverMaximumProtocol value. When the virtual machine restart the value must be 0. tail -f /var/log/messages | grep ReceiverMaximumProtocol
  • Restart the virtual machine to apply the registry change and monitor the messages log to verify if the Receive-Side Copy is disabled.
  • To re-enable Receive-Side Copy delete the ReceiverMaximumProtocol registry key and restart the virtual machine.

Read the original post on the Citrix knowledgebase here.