diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2015-10-29 15:58:05 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2015-10-29 15:58:05 +0100 |
commit | 55274adedcabdc3f1e4d66b2c3b77b1612acf20d (patch) | |
tree | 0d6b5cd7315022b5dd543698a9dcdd51eb050fda | |
parent | dbd83f04dfb4b4265a290bad6a1813825f7ab3c6 (diff) |
ring: Simplify calculation of number of frames in a tpacket ring
The number of frames in a tpacket ring (ring->layout.tp_frame_nr) is
currently calculated as:
tp_frame_nr = tp_block_size / tp_frame_size * tp_block_nr
Substituting tp_block_nr with 'size / tp_block_size' (as calculated in
the line above), we get:
tp_frame_nr = tp_block_size / tp_frame_size * (size / tp_block_size)
and realize that we can omit tp_block_size as it cancels out, leading
to:
tp_frame_nr = 1 / tp_frame_size * (size / 1)
= size / tp_frame_size
Adjust the calculation in setup_ring_layout_generic() accordingly.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r-- | ring.c | 5 |
1 files changed, 1 insertions, 4 deletions
@@ -34,10 +34,7 @@ void setup_ring_layout_generic(int sock, struct ring *ring, size_t size, TPACKET_ALIGNMENT << 7); ring->layout.tp_block_nr = size / ring->layout.tp_block_size; - ring->layout.tp_frame_nr = ring->layout.tp_block_size / - ring->layout.tp_frame_size * - ring->layout.tp_block_nr; - + ring->layout.tp_frame_nr = size / ring->layout.tp_frame_size; } void mmap_ring_generic(int sock, struct ring *ring) |