(picozed SDR + breakout carrier + custom frontend + kernel 4.6)
Due to design issues we wanted to use just two kbuffers for continuous transmission. As far as we understand this can be done easily with the high-speed interface as the two kbuffers would be rotating between kernel space and userspace, the former containing the samples that are being transmitted in that moment and the latter accepting new samples from user process. In theory you shouldn't see underflows in the transmission process (¿?).
However, even though we use the minimum sampling rate (2msps) we can see underflow happening all the time, independent from the buffer size. If we use 3 kbuffers this does not happen.
Is there any reason for this? Or the internals of libiio dont allow continuous transmission using less than 3 kbuffers?