This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux: TI Keystone II (AMK2E04): 10 GbE Linux driver performance

Tool/software: Linux

Dear all,

for an upcoming product we need to evaulate the performance of the 10 Gigabit Ethernet interface of the Keystone II (namely an AMK2E04). Specifically we want to know the outgoing throughput when sending data through a standard userspace application under Linux.

I found the following thread:

10 GigE performance and recipes to use RTM-BOC with K2H EVM

which nicely describes the evaulation process for a K2H eval module. At the end of that thread, Rex Chang states that he reached a throughput of 7.6 Gbps egress and 6 Gbps ingress. Great! So maybe we can skip out own evaluation and directly continue designing our product? But I have my doubts, that the ARM CPUs of the Keystone II can really achieve this data rate.

My questions are:

  • Is this a realistic value when using userspace applications (i.e. Linux SW which simply uses the standard Posix socket API)?
  • If yes, how can such a value be reached? For instance:
    • Can one ARM CPU core reach this throughput or do we need all 4 CPU cores?
    • Are any non-standard operations in userspace neccessary such as using proprietary DMA drivers or whatever?
  • Does this value apply to all Keystone II devices?

In addition to that: Are there any sample projects, maybe as part of the MCSDK which demonstrate the use of the 10Gbe interface under Linux?

And finally: What's the difference between K2E and K2H (in terms of CPU and Ethernet performance)?

Cheers,
Gerald

  • The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • Hi, Gerald,

    It is real value we collected from running iperf through 10GbE port directly connected to a Linux PC. We used "-P 2" in argument , that should be distributed to 4 cores. The measurement was done using pre-built images. The only configuration we change is the MTU size. We use jumbo packet, and MTU is set to 9000. The iperf command is

    iperf -c {server_ip} -P 2 --format m -u -b {bandwidth/2}M --len {packet_size_in_bytes} -t 60
    Packet size = 64, 128, 256, 512, 1024, 1470, 1500, 4000 (MTU=5000), 8000 (MTU=9000)

    The number applies to all Keystone-2 family, K2H/K/E/L.

    Sorry, there isn't any sample project for 10GbE. Any application over ethernet interface should be able to run on it, such as iperf, etc.

    The major differences between K2E and K2H are the numbers of DSP core and GbE ethernet ports.

    Rex
  • Thanks for the quick response. Helped alot :-)