On 07/25/2014 11:47 AM, Ssagarr Patil wrote: >>> 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. >> > I am using the v3.16 (the master branch from git://gitorious.org/linux-can/linux-can.git) > > OK will try experiment with recvmmsg() & and writing to disk with large blocks. > >> 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. >> > OK > >> The next step would be to switch to preempt rt enabled system. >> > I am afraid I cant use this, as project needs to be run on normal Linux. Preempt-rt is a normal Linux system, though. :) 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 |