Overruns (SSS...) when writting samples in a file

Hi everybody,

I’m trying to write samples acquired with the couple USRP2-WBX directly
on
the hard disk thanks to the file sink. I’m using GRC and the decim
factor is
set to 10 (idealy i need a factor 3). Unfortunately the program overruns
(SSSS… on the terminal) that it seems normal to me considering the
limited
write speed of an hard drive.
I’m looking for some “tricks” to be able to write at this sample rate. I
found a previous similar message in the mailing list but i have some
additional questions.

  1. Instead of write complex floats directly on the disk can i make this
    :
    USRP2 source in short mode → type conversion : short in char → writing
    on
    the disk with file_sink in char mode?
  2. I read that it was possible to write directly on the RAM with the
    unix
    command tmpfs. Any description of the procedure ?
  3. Other tricks or advice ?

Thanks in advance at all
Damien (a french Phd student)

View this message in context:
http://old.nabble.com/Overruns-(SSS...)-when-writting-samples-in-a-file-tp28035240p28035240.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On Thu, Mar 25, 2010 at 02:38:00PM -0700, Damien Serant wrote:

Hi everybody,

I’m trying to write samples acquired with the couple USRP2-WBX directly on
the hard disk thanks to the file sink. I’m using GRC and the decim factor is
set to 10 (idealy i need a factor 3).

With 16-bit I & Q, decimation 3 won’t fit across gigabit ethernet.

Unfortunately the program overruns
(SSSS… on the terminal) that it seems normal to me considering the limited
write speed of an hard drive.

I’m looking for some “tricks” to be able to write at this sample rate. I
found a previous similar message in the mailing list but i have some
additional questions.

  1. Instead of write complex floats directly on the disk can i make this :
    USRP2 source in short mode → type conversion : short in char → writing on
    the disk with file_sink in char mode?

Use the USRP2 in short mode, and write those samples to disk. At
decimation 4, you’ll need to be able to sustain writes to the disk at
100MB/s. ext3 won’t do that because of journal posting. Mounting
your ext3 filesystem as ext2 will help avoid that problem. If your
drive
won’t write that fast, you’ll need to find a faster solution. RAID 0,
either hardware or software, is an obvious first step. You can also
stripe across drives using LVM. Try google something like: linux disk
performance.

If you have enough ram to hold all of the samples that you need,
capturing them all, then writing them to disk is an option. tmpfs
might work (worth trying), but it’s hard to beat allocating the memory
that you need, touching it once to ensure it’s really allocated, and
mlock’ing it into physical ram.

  1. I read that it was possible to write directly on the RAM with the unix
    command tmpfs. Any description of the procedure ?

Try googling: /dev/shm
Try googling: tmpfs

To maximize your chances of getting useful help on this list, please
read:

http://gnuradio.org/redmine/wiki/gnuradio/ReportingErrors

Good luck solving your problem!
Eric