Have you thought about using carveouts in your resource table instead of rpmsg? I have a program that reads a camera and writes to a carveout, then uses debugfs on the Linux side to map the carveout into userspace. Doing this you can cut out the overhead of the message passing and just have a big chunk of shared memory between the PRU and the application processor, and you can handle the flow control yourself.
On Tuesday, May 16, 2017 at 12:49:01 PM UTC-4, ThomasL wrote: > > Hi, > > > We building an application to use a PRU to do realtime DAQ using an ADC. > The PRU code is done, but due to the datarate (52.7ksps at 24 bit/sample * > 8 channels) we are having problems with the buffers in the rpmsg framework. > The PRU does the DAQ, and pushes it trough the rproc/rpmsg framework to our > linux userspace application. There we recuperate the data and write it to a > file. > > Now the problem we are experiencing is that the VRing buffers are probably > overflowingl due to threading of our userspace program. The retrieval of > the data from the character device goes well for a while, and suddenly we > get some data loss, and it goes back to working for a while,... In Dmesg we > get messages like this: > > [ 2591.809917] rpmsg_pru rpmsg0: Message length table is full > > > We already tried grouping samples to make maximum use of the 512byte > buffers, and in the resource table we increased the number of buffers to > the maximum of 256. This improved the behaviour a bit, but the problem > persists although less frequent. Increasing the userspace process priority > does not improve this nor does setting the cpu governor to performance > > Is there a way to increase the buffer size of the RPMSG messages so more > samples can be grouped together in a single message? Changing these > definitions in the kernel module > <https://github.com/beagleboard/linux/blob/4.4/drivers/rpmsg/virtio_rpmsg_bus.c> > and > recompiling it? > > #define MAX_RPMSG_NUM_BUFS (512) > #define RPMSG_BUF_SIZE (512) > > > > Or is there a way to increase processing time for our userspace > application to reduce the time not reading the buffers? > > > Thanks in advance > > Thomas > > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/5edc64ed-114e-4fa9-b0cc-e67df536db99%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
