vlib: complain if workers are configured twice
Right now following configuration leads to crash: cpu { corelist-workers 2 workers 2 } because threads count will be set to 2, but we have only one core in coremask. Type: fix Signed-off-by: Vladimir Isaev <visaev@netgate.com> Change-Id: Ia93b892733971e7c8ddfceaaec5f4eb8bf9063ac (cherry picked from commit 18a4a371646bccfd299e6a509e801a524aeb4c92)
This commit is contained in:
parent
c81ba3d6a6
commit
704ebc1f89
@ -1272,6 +1272,10 @@ cpu_config (vlib_main_t * vm, unformat_input_t * input)
|
|||||||
return clib_error_return (0,
|
return clib_error_return (0,
|
||||||
"corelist cannot be set for '%s' threads",
|
"corelist cannot be set for '%s' threads",
|
||||||
name);
|
name);
|
||||||
|
if (tr->count)
|
||||||
|
return clib_error_return
|
||||||
|
(0, "core placement of '%s' threads is already configured",
|
||||||
|
name);
|
||||||
|
|
||||||
tr->coremask = bitmap;
|
tr->coremask = bitmap;
|
||||||
tr->count = clib_bitmap_count_set_bits (tr->coremask);
|
tr->count = clib_bitmap_count_set_bits (tr->coremask);
|
||||||
@ -1290,9 +1294,14 @@ cpu_config (vlib_main_t * vm, unformat_input_t * input)
|
|||||||
return clib_error_return (0, "no such thread type 3 '%s'", name);
|
return clib_error_return (0, "no such thread type 3 '%s'", name);
|
||||||
|
|
||||||
tr = (vlib_thread_registration_t *) p[0];
|
tr = (vlib_thread_registration_t *) p[0];
|
||||||
|
|
||||||
if (tr->fixed_count)
|
if (tr->fixed_count)
|
||||||
return clib_error_return
|
return clib_error_return
|
||||||
(0, "number of %s threads not configurable", tr->name);
|
(0, "number of '%s' threads not configurable", name);
|
||||||
|
if (tr->count)
|
||||||
|
return clib_error_return
|
||||||
|
(0, "number of '%s' threads is already configured", name);
|
||||||
|
|
||||||
tr->count = count;
|
tr->count = count;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user