In PacketStream, when streaming to the target, ie the TX Module, does the stream make use of all the BM Memory? In other words, does a thread try and keep the BM ring full of packets ? I'm thinking that this would be a good way of effectively increasing the size of the vFIFO since system memory is cheap & abundant.
Even if the BM memory were made large (using ReserveMemDsp.exe) and were entirely prefilled by the application, system BM memory will not be as effective as the vFIFO on the PMC module. This is because the system memory is accessible by the module through a PCI bridge on nearly all systems. Consequently, transfer rates will be degraded as a function of the architecture, configuration and performance of that bridge.
To answer your question: It depends on the amount of credit granted to the module. In the case of an output module like the TX, Malibu will call the OnDataRequired handler repeatedly until the PrefillPacketCount() packets (default=10) have been delivered to the target. You should set the value of PrefillPacketCount() in accordance with the current packet size in order to cause the BM memory region to be filled prior to the start of streaming (when PrefillPacketCount() packets have been sent).