Jump to content


Photo

TCP Offload advice

Started by dirk dingus , 11 August 2017 - 02:37 AM
8 replies to this topic

dirk dingus Members

dirk dingus
  • 110 posts

Posted 11 August 2017 - 02:37 AM

Based on this Citrix article, to persistently disable TCP offloading you should use their procedure on PIFs and VIFs. My question is: after you do this on all PIFs and VIFs on a XenServer host, is it also necessary to disable Task Offloading in the VMs themselves or is that a moot exercise? This question pertains to both Windows and Linux VMs alike.

 

Thank you!



Tobias Kreidl CTP Member

Tobias Kreidl
  • 18,569 posts

Posted 11 August 2017 - 05:25 AM

Dirk,

The VIFs are associated with the VMs, so you will need to do this for all of them. They are specific to each VM and of course, new VMs will need this done, as well. At least, that's how I understand it.  You can also download this handy script, which appears as if it should still work, from https://github.com/cloudnull/XenServer-Offloading-Off/blob/master/offloadingoff.sh and it shoul dbe able to do the work for you for all your VMs as well as physical devices.

 

-=Tobias



dirk dingus Members

dirk dingus
  • 110 posts

Posted 11 August 2017 - 05:47 PM

Thanks Tobias, I guess I am not being clear with my question. I will give an example to hopefully be clearer. First, on a XenServer 7.1 host we disabled offload on all physical PIFS associated with that host (i.e., eth0-3). Next, on a Windows 2012 R2 Server VM and a Linux VM on that host we disabled offload on the virtual VIFs associated with those VMs. Lastly, we log on to both the Windows VM and Linux VM to disable offload using the Advanced Properties of the XenServer PV NIC in Windows and ethtool on the eth0 NIC interface in the Linux VM.

 

The question is this: is it necessary to log on to the VMs and disable the offload or is it enough just to disable the offload of the VIFs associated with each VM? 



Alan Lantz Members

Alan Lantz
  • 7,182 posts

Posted 11 August 2017 - 06:30 PM

I would think that disabling it at one of the three, pif, vif, or VM would suffice. I personally disabletaskoffload in the Windows VM's and don't touch pif/vif's. I do see incorrect checksums, but I don't think thats an issue as long as the VM has offloading disabled.

 

--Alan--



Tobias Kreidl CTP Member

Tobias Kreidl
  • 18,569 posts

Posted 11 August 2017 - 06:47 PM

From the KB article, it appeared to me that you need to disable it both on the XenServer host and the guest VM side. In other words, the VM does not apparently inherit this from the host nor will applying this to just the vM work unless it's also been applied to the XenServer host.

 

-=Tobias



Alan Lantz Members

Alan Lantz
  • 7,182 posts

Posted 11 August 2017 - 06:58 PM

The more that I think about it the more you are likely right Tobias. Since thats a TCPIP stack functionality doing the pif's for the host would be separate from vif's/VM's. I would now say that pifs and then vifs or VM's would be what is needed, just not all three. I guess maybe I should look into disabling offloading on my pifs.

 

--Alan



dirk dingus Members

dirk dingus
  • 110 posts

Posted 11 August 2017 - 08:32 PM

@Alan, at least in my situation with Intel NICS, disabling offload at the host PIF/NIC level first substantially reduced checksum errors. The final nail in the checksum coffin was doing it at the VIF level. After doing it at the PIF and VIF levels I had no more checksum errors anywhere. However, just to make sure, I went into each Windows/Linux VM on the host and disabled there as well. My question was simply whether or not it is necessary to disable in the VM if doing it at the PIF/VIF level solves the problem. It would be nice if someone from Citrix could discuss best practices with respect to targeting offload.



Tobias Kreidl CTP Member

Tobias Kreidl
  • 18,569 posts

Posted 12 August 2017 - 04:29 AM

I agree, the article is a bit ambiguous. I would think the setting would translate if a VM were started up after the PIF and VIF setting had been set on the host already. If not, I would see how a VM would require that extra step. I would certainly think the VM would inherit the setting when newly created, in any case. There's probably a way to test this to see what the settings are and you could look under different circumstances.

 

-=Tobias



Alan Lantz Members

Alan Lantz
  • 7,182 posts

Posted 12 August 2017 - 05:15 PM

Maybe someone from Citrix will chime in, but I agree that a vif setting should negate the need to disabletaskoffload. Both would effectively do the same thing for the VM tcpip stack.

 

--Alan--