Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

AM6548: PCIe NVMe Performance under Linux

Part Number: AM6548

Hello,

I'm evaluating the performance of the PCIe interface of the AM65xx processor. In particular I'm using

the AM65x/DRA80xM Industrial Development Kit with the AM6548. Via it's PCIe adapter card I'm

attaching a M.2 PCIe SSD via an according adapter.

As Linux I'm running the SDK "ti-processor-sdk-linux-am65xx-evm-08_00_00_04" out of the box.

I'm carrying out performance tests with dd while I'm writing either from /dev/zero to the SSD or

from a tmpfs RAMDisk. The commands are either

dd if=/dev/zero of=/dev/nvme0n1 bs=16M count=512M iflag=count_bytes

or

dd if=/mnt/ramdisk/random.img of=/dev/nvme0n1 bs=16M

For the latter one there has been created an according file with random content which is

512MiB in size. So both tests write a total amount of 512MiB resp. half a gigabyte.

With the particular SSD I'm using I get the following performance:

Source /dev/zero => 260-270MB/s with 2 PCIe Lanes, 210-220MB/s with 1 PCIe Lane

Source RAMDisk => 220-230MB/s with 2 PCIe Lanes, 200-205MB/s with 1 PCIe Lane

So the second PCIe Lane is bringing in not much of an advantage here.

I did test this with the identical SSD on a (though somewhat aged) regular PC. For a 

single PCIe Lane test I'm seeing a performance of 320-330MB/s for both tests. For two

PCIe Lanes I'm seeing 410-420MB/s. So the SSD does not seem to be the limiting

factor for the AM65xx setup.

So the questions are:

- Is the bandwidth I'm seeing on the AM65xx setup ok/normal? Though, this is not the pure PCIe

performance since it does also include additional overhead.

- Where can be additional bottlenecks? I did also make an additional test by moving

the large file from one tmpfs RAMDisk to another. I'm seeing a performance of 340-350MB/s

here. If we assume that the memory bandwidth is twice of that (we have to read and write),

we would end up with a total memory bandwidth of around 700MB/s here.

- Are there any posssibilities to tweak the performance at various places?

I did also study the performance guide

http://software-dl.ti.com/processor-sdk-linux/esd/AM65X/latest/exports/docs/devices/AM65X/linux/Release_Specific_Performance_Guide.html

as well as this document:

https://www.ti.com/lit/an/spraci6/spraci6.pdf

but I did not find answers there.

Thanks a lot for any input on that matter!

Greetings,

Mario

  • Mario, 

    This issue was misassigned due to a system error until I realized now. If you still need to get to the bottom of the performance issue, let's do some experiments:

    1. please send me your pcie device information by issuing

        /usr/sbin/lspci -vv

    I like to confirm we are linked with two lanes at Gen 2 speed. 

    2. Can we put the RAMDISK to MSMC ram to see if we can get any performance difference?

    3. Have you also tried file copy from/to the same SSD? e.g., in the past I tried to "cat" a very large file. 

    regards

    Jian