event: return const cpumask for spdk_app_get_core_mask() API
Fix issue #1541. Change-Id: Ia0ecc049387f1e8eb04f1b55f7a7ace0b4b42491 Signed-off-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4306 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
107dd02126
commit
276c31cd1f
@ -239,7 +239,7 @@ int spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask);
|
|||||||
*
|
*
|
||||||
* \return the bitmask of the active CPU cores.
|
* \return the bitmask of the active CPU cores.
|
||||||
*/
|
*/
|
||||||
struct spdk_cpuset *spdk_app_get_core_mask(void);
|
const struct spdk_cpuset *spdk_app_get_core_mask(void);
|
||||||
|
|
||||||
#define SPDK_APP_GETOPT_STRING "c:de:ghi:m:n:p:r:s:uvB:L:RW:"
|
#define SPDK_APP_GETOPT_STRING "c:de:ghi:m:n:p:r:s:uvB:L:RW:"
|
||||||
|
|
||||||
|
@ -169,15 +169,17 @@ static const struct option g_cmdline_options[] = {
|
|||||||
static void
|
static void
|
||||||
app_config_dump_global_section(FILE *fp)
|
app_config_dump_global_section(FILE *fp)
|
||||||
{
|
{
|
||||||
struct spdk_cpuset *coremask;
|
const struct spdk_cpuset *coremask;
|
||||||
|
struct spdk_cpuset tmp_mask;
|
||||||
|
|
||||||
if (NULL == fp) {
|
if (NULL == fp) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
coremask = spdk_app_get_core_mask();
|
coremask = spdk_app_get_core_mask();
|
||||||
|
spdk_cpuset_copy(&tmp_mask, coremask);
|
||||||
|
|
||||||
fprintf(fp, GLOBAL_CONFIG_TMPL, spdk_cpuset_fmt(coremask),
|
fprintf(fp, GLOBAL_CONFIG_TMPL, spdk_cpuset_fmt(&tmp_mask),
|
||||||
spdk_trace_get_tpoint_group_mask());
|
spdk_trace_get_tpoint_group_mask());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -484,6 +484,8 @@ rpc_thread_set_cpumask(struct spdk_jsonrpc_request *request,
|
|||||||
{
|
{
|
||||||
struct rpc_thread_set_cpumask req = {};
|
struct rpc_thread_set_cpumask req = {};
|
||||||
struct rpc_thread_set_cpumask_ctx *ctx;
|
struct rpc_thread_set_cpumask_ctx *ctx;
|
||||||
|
const struct spdk_cpuset *coremask;
|
||||||
|
struct spdk_cpuset tmp_mask;
|
||||||
struct spdk_thread *thread;
|
struct spdk_thread *thread;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
@ -521,9 +523,11 @@ rpc_thread_set_cpumask(struct spdk_jsonrpc_request *request,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (spdk_cpuset_count(&ctx->cpumask) == 0) {
|
if (spdk_cpuset_count(&ctx->cpumask) == 0) {
|
||||||
|
coremask = spdk_app_get_core_mask();
|
||||||
|
spdk_cpuset_copy(&tmp_mask, coremask);
|
||||||
spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
|
spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR,
|
||||||
"No CPU is selected from reactor mask %s\n",
|
"No CPU is selected from reactor mask %s\n",
|
||||||
spdk_cpuset_fmt(spdk_app_get_core_mask()));
|
spdk_cpuset_fmt(&tmp_mask));
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,7 +414,7 @@ int
|
|||||||
spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask)
|
spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct spdk_cpuset *validmask;
|
const struct spdk_cpuset *validmask;
|
||||||
|
|
||||||
ret = spdk_cpuset_parse(cpumask, mask);
|
ret = spdk_cpuset_parse(cpumask, mask);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@ -427,7 +427,7 @@ spdk_app_parse_core_mask(const char *mask, struct spdk_cpuset *cpumask)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct spdk_cpuset *
|
const struct spdk_cpuset *
|
||||||
spdk_app_get_core_mask(void)
|
spdk_app_get_core_mask(void)
|
||||||
{
|
{
|
||||||
return &g_reactor_core_mask;
|
return &g_reactor_core_mask;
|
||||||
|
@ -1257,7 +1257,8 @@ __construct_targets(void *arg)
|
|||||||
static void
|
static void
|
||||||
test_main(void *arg1)
|
test_main(void *arg1)
|
||||||
{
|
{
|
||||||
struct spdk_cpuset tmpmask = {}, *appmask;
|
struct spdk_cpuset tmpmask = {};
|
||||||
|
const struct spdk_cpuset *appmask;
|
||||||
uint32_t cpu, init_cpu;
|
uint32_t cpu, init_cpu;
|
||||||
|
|
||||||
pthread_mutex_init(&g_test_mutex, NULL);
|
pthread_mutex_init(&g_test_mutex, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user