pg: fix the buffer leak when pa steams are deleted
Type: fix
vpp# sh buffers
Pool Name Index NUMA Size Data Size Total Avail Cached Used
default-numa-0 0 0 2304 2048 128270 125968 1108 1194
default-numa-1 1 1 2304 2048 128270 128270 0 0
vpp# sh pa
Name Enabled Count Parameters
pg0-test-0 No 60900431 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 0,
pg1-test-0 No 60900385 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 0,
pg0-test-1 No 60898008 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 1,
pg1-test-1 No 60897934 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 1,
pg0-test-2 No 60900278 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 2,
pg1-test-2 No 60900184 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 2,
pg0-test-3 No 60900431 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 3,
pg1-test-3 No 60900387 limit -1, rate 1.00e6 pps, size 64-64, buffer-size 2048, worker 3
vpp# pa delete pg0-test-0
vpp# pa delete pg0-test-1
vpp# pa delete pg0-test-2
vpp# pa delete pg0-test-3
vpp# pa delete pg1-test-0
vpp# pa delete pg1-test-1
vpp# pa delete pg1-test-2
vpp# pa delete pg1-test-3
vpp# sh buffer trace verbose
Pool Name Index NUMA Size Data Size Total Avail Cached Used
default-numa-0 0 0 2304 2048 128270 126650 1620 0
default-numa-1 1 1 2304 2048 128270 128270 0 0
Node Allocated Freed In Out Buffered
unix-cli-process-0 0 1194 0 0 -1194
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I03051a8f529df7801cf08f8374a994dbc00fc972
This commit is contained in:
committed by
Beno�t Ganne
parent
e7226a2127
commit
b9a68b5b2e
@@ -184,7 +184,11 @@ typedef struct pg_stream_t
|
||||
always_inline void
|
||||
pg_buffer_index_free (pg_buffer_index_t * bi)
|
||||
{
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
word n_alloc;
|
||||
vec_free (bi->edits);
|
||||
n_alloc = clib_fifo_elts (bi->buffer_fifo);
|
||||
vlib_buffer_free (vm, bi->buffer_fifo, n_alloc);
|
||||
clib_fifo_free (bi->buffer_fifo);
|
||||
}
|
||||
|
||||
|
||||
@@ -615,18 +615,12 @@ void
|
||||
pg_stream_del (pg_main_t * pg, uword index)
|
||||
{
|
||||
pg_stream_t *s;
|
||||
pg_buffer_index_t *bi;
|
||||
|
||||
s = pool_elt_at_index (pg->streams, index);
|
||||
|
||||
pg_stream_enable_disable (pg, s, /* want_enabled */ 0);
|
||||
hash_unset_mem (pg->stream_index_by_name, s->name);
|
||||
|
||||
vec_foreach (bi, s->buffer_indices)
|
||||
{
|
||||
clib_fifo_free (bi->buffer_fifo);
|
||||
}
|
||||
|
||||
pg_stream_free (s);
|
||||
pool_put (pg->streams, s);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user