The size of an RpMsg buffer as well as the number of available buffers are both defined on the Linux side. By default there are 256 buffers, 512 bytes each.
See also the following community post:
On the M4 side, you need to match the defines
RPMSG_BUFFER_SIZE in rpmsg_core.h and
RPMSG_NUM_BUFS in platform_info.c.
Linux Processing Cycle
A cycle time of 10 - 100ms is usually no issue for Linux. Depending on the CPU load, also 1ms can be achieved
To keeps things simple, you could start with the default RpMsg buffer size, which is sufficient to hold samples for 16ms (16 ms x 32 bytes/ms = 512 Bytes).
As there are 256 buffers, it is even no problem if the Linux side gets delayed exceptionally.
If you want to change the RpMsg buffer size anyway, it doesn’t really matter how big you make them. I would use whatever buffer size is a good fit to structure your samples logically.
A7 vs M4 processing
There’s probably plenty of performance available on both the M4 and A7 side to do the required processing.
Do the processing on the CPU where you feel it is the easiest to implement and debug, and most important to maintain the software in the future.
I would clearly keep the high-level part (cloud connectivity) on Linux. There are much more comfortable cloud libraries available under Linux than under FreeRTOS.