On 07/25/2014 10:35 AM, Ssagarr Patil wrote: >>>> ...and where is your stdout going? serial line, telnet, ssh? >>>> >>> Its the serial line. >> >> That's not good. As printing to the serial console is quite costly. >> > Yes agreed, although I also see some frame drops pointed by ifconfig can0 > when dumping it to file (with -l option of candump) > I have also used chrt to increase the priority of candump. > > Any suggestion on how to still improve the performance so as there is zero frame loss ? > either on driver or application side. Use the latest kernel, at least v3.15 which has tglx's patches integrated. v3.16 might even be better. If you want to log all CAN messages, you can probably make use of recvmmsg() to receive more than one CAN frame at a time (instead of using recvmsg() or read()). When writing to disk, don't write a single CAN frame at a time, it's better to write large blocks, i.e. several 4k of data. Depending on the actual c_can/d_can implementation you're using, there might be some optimisation left in the driver, i.e. use 32 bit access if possible. However before touching the driver, measurement to identify the hot spots should be done. The next step would be to switch to preempt rt enabled system. Hope that helps, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |