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
SW engineering
Exor Embedded S.r.l.
p: +38 512455659  m: +38 5915402413
a: Slavonska avenija, 50, Zagreb, Croatia, 10000
w: exorint.com 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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?


Dubravko Moravski
SW engineering
Exor Embedded S.r.l.
p: +38 512455659  m: +38 5915402413
a: Slavonska avenija, 50, Zagreb, Croatia, 10000
w: exorint.com 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy
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.


Dubravko Moravski
SW engineering
Exor Embedded S.r.l.
p: +38 512455659  m: +38 5915402413
a: Slavonska avenija, 50, Zagreb, Croatia, 10000
w: exorint.com 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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.
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?

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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.

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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

  1. replace the vid,pid of the device of eth in array passthru_vpid.
  2. uncomment the cmd for Ethernet pass-through
  3. Add the device as a passthrough in acrn-dm cmd as below:

                 -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.
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?

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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.

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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


Dubravko Moravski
SW engineering
Exor Embedded S.r.l.
p: +38 512455659  m: +38 5915402413
a: Slavonska avenija, 50, Zagreb, Croatia, 10000
w: exorint.com 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy
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

  1. replace the vid,pid of the device of eth in array passthru_vpid.
  2. uncomment the cmd for Ethernet pass-through
  3. Add the device as a passthrough in acrn-dm cmd as below:

                 -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.
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?

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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.

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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

  1. replace the vid,pid of the device of eth in array passthru_vpid.
  2. uncomment the cmd for Ethernet pass-through
  3. Add the device as a passthrough in acrn-dm cmd as below:

                 -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.
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?

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy


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.

 

 

Dubravko Moravski

SW engineering

Exor Embedded S.r.l.

p:

+38 512455659  m: +38 5915402413

a:

Slavonska avenija, 50, Zagreb, Croatia, 10000

w:

exorint.com 

 

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

Privacy