[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] USRP2 eth_buffer
From: |
Juha Vierinen |
Subject: |
[Discuss-gnuradio] USRP2 eth_buffer |
Date: |
Wed, 22 Apr 2009 20:48:38 +0000 |
Hi,
I have been trying to get 25 MHz to disk with USRP2. I am using the
C++ interface and a five disk software raid 0 that can do about 150
MB/s. I can easily run at 25 MHz with a simple nop_handler that only
checks for underruns and timestamps continuity, but when I write to
disk, I can barely do 10 MHz for longer than 30 s without overruns. I
have tried just about every filesystem with the same result every
time.
The reason seems to be lack of buffering. I have gone with the easiest
path of increasing the eth_buffer from approximately 25 MB to 500 MB.
I know people will flame me for using this much kernel memory, but it
seems to work fairly reliably (I have been saving 25 MHz to a five
disk software raid already for an hour without problems).
I think there should be a user configurable option similar to
fusb_blocksize and fusb_nblocks with usrp1, which defines the
eth_buffer size. I am willing write a patch if somebody is interested,
but I don't fully understand why there is a MAX_SLAB_SIZE in
eth_buffer.cc:
// Calculate number of blocks
req.tp_block_nr = std::min((int)(MAX_SLAB_SIZE/sizeof(void*)),
(int)(d_buflen/req.tp_block_size));
Why is there a (int)(MAX_SLAB_SIZE/sizeof(void*)) limit?
juha
- [Discuss-gnuradio] USRP2 eth_buffer,
Juha Vierinen <=
- Re: [Discuss-gnuradio] USRP2 eth_buffer, Johnathan Corgan, 2009/04/22
- Re: [Discuss-gnuradio] USRP2 eth_buffer, Juha Vierinen, 2009/04/22
- Re: [Discuss-gnuradio] USRP2 eth_buffer, Eric Blossom, 2009/04/22
- Re: [Discuss-gnuradio] USRP2 eth_buffer, Bruce Stansby, 2009/04/22
- Re: [Discuss-gnuradio] USRP2 eth_buffer, Juha Vierinen, 2009/04/23
- Fwd: [Discuss-gnuradio] USRP2 eth_buffer, Juha Vierinen, 2009/04/23
- Re: Fwd: [Discuss-gnuradio] USRP2 eth_buffer, Eric Blossom, 2009/04/24