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.

AM6421: 3Mbps UART is taking too much kernel cpu on AM64x

Part Number: AM6421

Hello,

We have a AM6421 system with 3 UART interfaces running at 3Mbps baudrate. The average Tx/Rx bandwidth utilization is about 9.4% & 2.9% respectively.

But the Linux kernel is taking 50%+ cpu already (SDK8.04), mostly in the function _raw_spin_unlock_irq() & _raw_spin_unlock_irqrestore()

These 3 uart interface are UART1/2/3 of the main domain with raw mode (we can not use line mode for our application).

with more traffic in the UART interfaces, 25% Tx & 5% Rx bandwidth utilization, kernel cpu time is reaching almost 70%.

Yes we have other applications running. but only the traffic increase in UARTs along caused such more cpu cycles in kernel.

my questions are:

1. is there a new driver version using less cpu?

2. is there some configuration to lower the cpu utilization? "setserial ttyx ^low_latency" won't help.

Thanks a lot,

Leon