命令是这样的:
./examples/ethtool/ethtool-app/ethtool-app/x86_64-native-linuxapp-gcc/ethtool -c f -n 4
运行后的结果是这样的,就是卡在那里了,红色圈出来的是我自己添加的打印信息

分析内核(版本是3.14.67的),是在 linux-3.14.67/drivers/uio/uio.c 中的uio_open 函数的#if(idev->info->open)# 这一句代码出错
根据dpdk 中源码文件./lib/librte_eal/linuxapp/igb_uio/igb_uio.c 中函数igbuio_pci_probe注册的uio (注册语句uio_register_device(&dev->dev, &udev->info))设备的info.open 是没有赋值的,所以当rte_eal_init 初始化的时候,运行到内核的uio_open 函数中#f(idev->info->open)# 这一句的时候应该是走不到if里面去的。跟踪过流程,正常初始化的那个网卡,确实是没有走到if条件里面,不能正常初始化的网卡,走到了if条件去了,打印过idev->info->open 的地址,每次打印都是同样的地址,打印结果如下图