Ethercat performance
Dubravko Moravski | Exor Embedded S.r.l. <dubravko.moravski@...>
Hello,
We want to use ACRN to, among other things, "talk" to Ethercat PLCs. Without ACRN, we get latencies of about 500 us. Acceptable latencies are generally below 1 ms. With ACRN (compiled in release mode) and the preempt-rt UOS, we get about 5 ms, which is close
to usable, but not quite good enough.
Is there any setting or additional optimization we could turn on, that will get us lower latencies with ACRN?
We already did the cyclictest test, and were satisfied with those results.
When measuring Ethercat, I've also tried running a script recommended to be run before cyclictest, and that didn't help. Also I've tried adjusting bios settings, that also didn't help.
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Dubravko Moravski | Exor Embedded S.r.l. <dubravko.moravski@...>
Hello,
We might have figured out one way to get improved network performance in UOS, but after googling and checking ACRN documentation I'm still not sure whether it is actually possible: can we somehow disable (PCIe) network adapter in SOS, so SOS doesn't load the
driver and the bridge; then use passthrough feature so that UOS can access the device directly?
From: acrn-users@... <acrn-users@...> on behalf of Dubravko Moravski | Exor Embedded S.r.l. via Lists.Projectacrn.Org
<dubravko.moravski=exorembedded.net@...>
Sent: Tuesday, March 24, 2020 4:39 PM To: acrn-users@... <acrn-users@...> Subject: [acrn-users] Ethercat performance
Hello,
We want to use ACRN to, among other things, "talk" to Ethercat PLCs. Without ACRN, we get latencies of about 500 us. Acceptable latencies are generally below 1 ms. With ACRN (compiled in release mode) and the preempt-rt UOS, we get about 5 ms, which is close
to usable, but not quite good enough.
Is there any setting or additional optimization we could turn on, that will get us lower latencies with ACRN?
We already did the cyclictest test, and were satisfied with those results.
When measuring Ethercat, I've also tried running a script recommended to be run before cyclictest, and that didn't help. Also I've tried adjusting bios settings, that also didn't help.
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Hi Dubravko,
I think you can do it by passthru the PCIe network adapter to UOS, just like what you did to passthru any other devices. You may further remove those acrn-br0 and tap devices by working on /usr/lib/systemd/network on SOS, but since UOS can have access to the Ethernet device directly, this might not matter.
Best Regards, Zide
From: acrn-users@... <acrn-users@...>
On Behalf Of Dubravko Moravski | Exor Embedded S.r.l.
Sent: Tuesday, March 24, 2020 11:03 AM To: acrn-users@... Subject: Re: [acrn-users] Ethercat performance
Hello,
We might have figured out one way to get improved network performance in UOS, but after googling and checking ACRN documentation I'm still not sure whether it is actually possible: can we somehow disable (PCIe) network adapter in SOS, so SOS doesn't load the driver and the bridge; then use passthrough feature so that UOS can access the device directly?
From:
acrn-users@... <acrn-users@...> on behalf of Dubravko Moravski | Exor Embedded S.r.l. via Lists.Projectacrn.Org <dubravko.moravski=exorembedded.net@...>
Hello,
We want to use ACRN to, among other things, "talk" to Ethercat PLCs. Without ACRN, we get latencies of about 500 us. Acceptable latencies are generally below 1 ms. With ACRN (compiled in release mode) and the preempt-rt UOS, we get about 5 ms, which is close to usable, but not quite good enough.
Is there any setting or additional optimization we could turn on, that will get us lower latencies with ACRN?
We already did the cyclictest test, and were satisfied with those results.
When measuring Ethercat, I've also tried running a script recommended to be run before cyclictest, and that didn't help. Also I've tried adjusting bios settings, that also didn't help.
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Wu, Binbin
Hi Dubravko,
For the device related to RT performance, it needs to passthrough the device to RTVM to avoid VM-Exits. To passthrough the ethernet card to RTVM, you can refer to the sample launch script devicemodel/samples/nuc/launch_hard_rt_vm.sh
You could
-s 2,passthru,02/0/0 \ -s 3,virtio-console,@stdio:stdio_port \ -s 4,passthru,<ethernet_bus>/<ethernet_device>/<ethernet_function> \ ...
Please replace the bus/device/function number according to your machine in hex.
We will have a check about the doc and add device passthrough practice document if missing.
-- BRs, Binbin
From: acrn-users@... <acrn-users@...>
On Behalf Of Chen, Zide
Sent: Wednesday, March 25, 2020 2:49 AM To: acrn-users@... Subject: Re: [acrn-users] Ethercat performance
Hi Dubravko,
I think you can do it by passthru the PCIe network adapter to UOS, just like what you did to passthru any other devices. You may further remove those acrn-br0 and tap devices by working on /usr/lib/systemd/network on SOS, but since UOS can have access to the Ethernet device directly, this might not matter.
Best Regards, Zide
From:
acrn-users@... <acrn-users@...>
On Behalf Of Dubravko Moravski | Exor Embedded S.r.l.
Hello,
We might have figured out one way to get improved network performance in UOS, but after googling and checking ACRN documentation I'm still not sure whether it is actually possible: can we somehow disable (PCIe) network adapter in SOS, so SOS doesn't load the driver and the bridge; then use passthrough feature so that UOS can access the device directly?
From:
acrn-users@... <acrn-users@...> on behalf of Dubravko Moravski | Exor Embedded S.r.l. via Lists.Projectacrn.Org <dubravko.moravski=exorembedded.net@...>
Hello,
We want to use ACRN to, among other things, "talk" to Ethercat PLCs. Without ACRN, we get latencies of about 500 us. Acceptable latencies are generally below 1 ms. With ACRN (compiled in release mode) and the preempt-rt UOS, we get about 5 ms, which is close to usable, but not quite good enough.
Is there any setting or additional optimization we could turn on, that will get us lower latencies with ACRN?
We already did the cyclictest test, and were satisfied with those results.
When measuring Ethercat, I've also tried running a script recommended to be run before cyclictest, and that didn't help. Also I've tried adjusting bios settings, that also didn't help.
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Dubravko Moravski | Exor Embedded S.r.l. <dubravko.moravski@...>
Hi Binbin and Zide,
Thank you, I confirm that this works very well, and we've got acceptably low latencies in RTVM. Actually my colleague with better understanding of the test has commented that new measurements are "perfect!"
Best regards,
Dubravko
From: acrn-users@... <acrn-users@...> on behalf of Wu, Binbin via Lists.Projectacrn.Org <binbin.wu=intel.com@...>
Sent: Wednesday, March 25, 2020 3:12 AM To: acrn-users@... <acrn-users@...> Subject: Re: [acrn-users] Ethercat performance Hi Dubravko,
For the device related to RT performance, it needs to passthrough the device to RTVM to avoid VM-Exits. To passthrough the ethernet card to RTVM, you can refer to the sample launch script devicemodel/samples/nuc/launch_hard_rt_vm.sh
You could
-s 2,passthru,02/0/0 \ -s 3,virtio-console,@stdio:stdio_port \ -s 4,passthru,<ethernet_bus>/<ethernet_device>/<ethernet_function> \ ...
Please replace the bus/device/function number according to your machine in hex.
We will have a check about the doc and add device passthrough practice document if missing.
-- BRs, Binbin
From: acrn-users@... <acrn-users@...>
On Behalf Of Chen, Zide
Sent: Wednesday, March 25, 2020 2:49 AM To: acrn-users@... Subject: Re: [acrn-users] Ethercat performance
Hi Dubravko,
I think you can do it by passthru the PCIe network adapter to UOS, just like what you did to passthru any other devices. You may further remove those acrn-br0 and tap devices by working on /usr/lib/systemd/network on SOS, but since UOS can have access to the Ethernet device directly, this might not matter.
Best Regards, Zide
From: acrn-users@... <acrn-users@...>
On Behalf Of Dubravko Moravski | Exor Embedded S.r.l.
Hello,
We might have figured out one way to get improved network performance in UOS, but after googling and checking ACRN documentation I'm still not sure whether it is actually possible: can we somehow disable (PCIe) network adapter in SOS, so SOS doesn't load the driver and the bridge; then use passthrough feature so that UOS can access the device directly?
From:
acrn-users@... <acrn-users@...> on behalf of Dubravko Moravski | Exor Embedded S.r.l. via Lists.Projectacrn.Org <dubravko.moravski=exorembedded.net@...>
Hello,
We want to use ACRN to, among other things, "talk" to Ethercat PLCs. Without ACRN, we get latencies of about 500 us. Acceptable latencies are generally below 1 ms. With ACRN (compiled in release mode) and the preempt-rt UOS, we get about 5 ms, which is close to usable, but not quite good enough.
Is there any setting or additional optimization we could turn on, that will get us lower latencies with ACRN?
We already did the cyclictest test, and were satisfied with those results.
When measuring Ethercat, I've also tried running a script recommended to be run before cyclictest, and that didn't help. Also I've tried adjusting bios settings, that also didn't help.
|
||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||
Wu, Binbin
Hi Dubravko,
Great to hear that!
-- BRs, Binbin
From: acrn-users@... <acrn-users@...>
On Behalf Of Dubravko Moravski | Exor Embedded S.r.l.
Sent: Wednesday, March 25, 2020 9:46 PM To: acrn-users@... Subject: Re: [acrn-users] Ethercat performance
Hi Binbin and Zide,
Thank you, I confirm that this works very well, and we've got acceptably low latencies in RTVM. Actually my colleague with better understanding of the test has commented that new measurements are "perfect!"
Best regards, Dubravko
From:
acrn-users@... <acrn-users@...> on behalf of Wu, Binbin via Lists.Projectacrn.Org <binbin.wu=intel.com@...>
Hi Dubravko,
For the device related to RT performance, it needs to passthrough the device to RTVM to avoid VM-Exits. To passthrough the ethernet card to RTVM, you can refer to the sample launch script devicemodel/samples/nuc/launch_hard_rt_vm.sh
You could
-s 2,passthru,02/0/0 \ -s 3,virtio-console,@stdio:stdio_port \ -s 4,passthru,<ethernet_bus>/<ethernet_device>/<ethernet_function> \ ...
Please replace the bus/device/function number according to your machine in hex.
We will have a check about the doc and add device passthrough practice document if missing.
-- BRs, Binbin
From:
acrn-users@... <acrn-users@...>
On Behalf Of Chen, Zide
Hi Dubravko,
I think you can do it by passthru the PCIe network adapter to UOS, just like what you did to passthru any other devices. You may further remove those acrn-br0 and tap devices by working on /usr/lib/systemd/network on SOS, but since UOS can have access to the Ethernet device directly, this might not matter.
Best Regards, Zide
From:
acrn-users@... <acrn-users@...>
On Behalf Of Dubravko Moravski | Exor Embedded S.r.l.
Hello,
We might have figured out one way to get improved network performance in UOS, but after googling and checking ACRN documentation I'm still not sure whether it is actually possible: can we somehow disable (PCIe) network adapter in SOS, so SOS doesn't load the driver and the bridge; then use passthrough feature so that UOS can access the device directly?
From:
acrn-users@... <acrn-users@...> on behalf of Dubravko Moravski | Exor Embedded S.r.l. via Lists.Projectacrn.Org <dubravko.moravski=exorembedded.net@...>
Hello,
We want to use ACRN to, among other things, "talk" to Ethercat PLCs. Without ACRN, we get latencies of about 500 us. Acceptable latencies are generally below 1 ms. With ACRN (compiled in release mode) and the preempt-rt UOS, we get about 5 ms, which is close to usable, but not quite good enough.
Is there any setting or additional optimization we could turn on, that will get us lower latencies with ACRN?
We already did the cyclictest test, and were satisfied with those results.
When measuring Ethercat, I've also tried running a script recommended to be run before cyclictest, and that didn't help. Also I've tried adjusting bios settings, that also didn't help.
|
||||||||||||||||||||||||||||||||||||||||||
|