[dpdk-users] KNI with RTE_KNI_PREEMPT_DEFAULT=n causes CPU soft-lockup

junlee lijun422 at gmail.com
Mon Nov 27 02:27:02 CET 2017


Hi,

We are testing KNI performance and finds the schedule_timeout_interruptible
causes extra latency for packets.

We tried to set RTE_KNI_PREEMPT_DEFAULT=n to reduce the latency, but ends
up with CPU soft-lockup.

Anybody knows how to make this work?

static int
kni_thread_single(void *data)
{
struct kni_net *knet = data;
int j;
struct kni_dev *dev;

while (!kthread_should_stop()) {
down_read(&knet->kni_list_lock);
for (j = 0; j < KNI_RX_LOOP_NUM; j++) {
list_for_each_entry(dev, &knet->kni_list_head, list) {
kni_net_rx(dev);
kni_net_poll_resp(dev);
}
}
up_read(&knet->kni_list_lock);
#ifdef RTE_KNI_PREEMPT_DEFAULT
/* reschedule out for a while */
schedule_timeout_interruptible(
usecs_to_jiffies(KNI_KTHREAD_RESCHEDULE_INTERVAL));
#endif
}

return 0;
}

Thanks.


More information about the users mailing list