lib/vhost: Allocate cpumask statically for struct spdk_vhost_dev
Following the recent effort, allocate struct spdk_cpuset statically for struct spdk_vhost_dev. In vhost_dev_register(), a dynamically allocated cpumask had been set to spdk_vhost_dev, but change it to spdk_cpuset_copy(). So use local cpuset instance in vhost_dev_register() accordingly. To reduce the size of patch, this patch doesn't include the change for g_tmp_cpuset. This will be done by the next patch. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Ic97753d1f470cbfd9ae7fc7f2af8ced5a31c8477 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/478578 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> Community-CI: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
5b87daa92f
commit
1a1cbdf303
@ -592,7 +592,7 @@ vhost_dev_register(struct spdk_vhost_dev *vdev, const char *name, const char *ma
|
||||
const struct spdk_vhost_dev_backend *backend)
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
struct spdk_cpuset *cpumask;
|
||||
struct spdk_cpuset cpumask = {};
|
||||
int rc;
|
||||
|
||||
assert(vdev);
|
||||
@ -601,13 +601,7 @@ vhost_dev_register(struct spdk_vhost_dev *vdev, const char *name, const char *ma
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
cpumask = spdk_cpuset_alloc();
|
||||
if (!cpumask) {
|
||||
SPDK_ERRLOG("spdk_cpuset_alloc failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
if (vhost_parse_core_mask(mask_str, cpumask) != 0) {
|
||||
if (vhost_parse_core_mask(mask_str, &cpumask) != 0) {
|
||||
SPDK_ERRLOG("cpumask %s is invalid (app mask is 0x%s)\n",
|
||||
mask_str, spdk_cpuset_fmt(spdk_app_get_core_mask()));
|
||||
rc = -EINVAL;
|
||||
@ -636,7 +630,7 @@ vhost_dev_register(struct spdk_vhost_dev *vdev, const char *name, const char *ma
|
||||
goto out;
|
||||
}
|
||||
|
||||
vdev->cpumask = cpumask;
|
||||
spdk_cpuset_copy(&vdev->cpumask, &cpumask);
|
||||
vdev->registered = true;
|
||||
vdev->backend = backend;
|
||||
TAILQ_INIT(&vdev->vsessions);
|
||||
@ -658,7 +652,6 @@ vhost_dev_register(struct spdk_vhost_dev *vdev, const char *name, const char *ma
|
||||
return 0;
|
||||
|
||||
out:
|
||||
spdk_cpuset_free(cpumask);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -681,7 +674,6 @@ vhost_dev_unregister(struct spdk_vhost_dev *vdev)
|
||||
|
||||
free(vdev->name);
|
||||
free(vdev->path);
|
||||
spdk_cpuset_free(vdev->cpumask);
|
||||
TAILQ_REMOVE(&g_vhost_devices, vdev, tailq);
|
||||
return 0;
|
||||
}
|
||||
@ -711,7 +703,7 @@ const struct spdk_cpuset *
|
||||
spdk_vhost_dev_get_cpumask(struct spdk_vhost_dev *vdev)
|
||||
{
|
||||
assert(vdev != NULL);
|
||||
return vdev->cpumask;
|
||||
return &vdev->cpumask;
|
||||
}
|
||||
|
||||
struct vhost_poll_group *
|
||||
|
@ -792,7 +792,7 @@ vhost_blk_start(struct spdk_vhost_session *vsession)
|
||||
{
|
||||
struct vhost_poll_group *pg;
|
||||
|
||||
pg = vhost_get_poll_group(vsession->vdev->cpumask);
|
||||
pg = vhost_get_poll_group(&vsession->vdev->cpumask);
|
||||
return vhost_session_send_event(pg, vsession, vhost_blk_start_cb,
|
||||
3, "start session");
|
||||
}
|
||||
@ -891,7 +891,7 @@ vhost_blk_write_config_json(struct spdk_vhost_dev *vdev, struct spdk_json_write_
|
||||
spdk_json_write_named_object_begin(w, "params");
|
||||
spdk_json_write_named_string(w, "ctrlr", vdev->name);
|
||||
spdk_json_write_named_string(w, "dev_name", spdk_bdev_get_name(bvdev->bdev));
|
||||
spdk_json_write_named_string(w, "cpumask", spdk_cpuset_fmt(vdev->cpumask));
|
||||
spdk_json_write_named_string(w, "cpumask", spdk_cpuset_fmt(&vdev->cpumask));
|
||||
spdk_json_write_named_bool(w, "readonly", bvdev->readonly);
|
||||
spdk_json_write_object_end(w);
|
||||
|
||||
|
@ -157,7 +157,7 @@ struct spdk_vhost_dev {
|
||||
char *name;
|
||||
char *path;
|
||||
|
||||
struct spdk_cpuset *cpumask;
|
||||
struct spdk_cpuset cpumask;
|
||||
bool registered;
|
||||
|
||||
uint64_t virtio_features;
|
||||
|
@ -372,7 +372,7 @@ _spdk_rpc_get_vhost_controller(struct spdk_json_write_ctx *w, struct spdk_vhost_
|
||||
spdk_json_write_object_begin(w);
|
||||
|
||||
spdk_json_write_named_string(w, "ctrlr", spdk_vhost_dev_get_name(vdev));
|
||||
spdk_json_write_named_string_fmt(w, "cpumask", "0x%s", spdk_cpuset_fmt(vdev->cpumask));
|
||||
spdk_json_write_named_string_fmt(w, "cpumask", "0x%s", spdk_cpuset_fmt(&vdev->cpumask));
|
||||
spdk_json_write_named_uint32(w, "delay_base_us", delay_base_us);
|
||||
spdk_json_write_named_uint32(w, "iops_threshold", iops_threshold);
|
||||
spdk_json_write_named_string(w, "socket", vdev->path);
|
||||
|
@ -1367,7 +1367,7 @@ vhost_scsi_start(struct spdk_vhost_session *vsession)
|
||||
svsession->svdev = svdev;
|
||||
|
||||
if (svdev->vdev.active_session_num == 0) {
|
||||
svdev->poll_group = vhost_get_poll_group(svdev->vdev.cpumask);
|
||||
svdev->poll_group = vhost_get_poll_group(&svdev->vdev.cpumask);
|
||||
}
|
||||
|
||||
return vhost_session_send_event(svdev->poll_group, vsession,
|
||||
@ -1521,7 +1521,7 @@ vhost_scsi_write_config_json(struct spdk_vhost_dev *vdev, struct spdk_json_write
|
||||
|
||||
spdk_json_write_named_object_begin(w, "params");
|
||||
spdk_json_write_named_string(w, "ctrlr", vdev->name);
|
||||
spdk_json_write_named_string(w, "cpumask", spdk_cpuset_fmt(vdev->cpumask));
|
||||
spdk_json_write_named_string(w, "cpumask", spdk_cpuset_fmt(&vdev->cpumask));
|
||||
spdk_json_write_object_end(w);
|
||||
|
||||
spdk_json_write_object_end(w);
|
||||
|
Loading…
Reference in New Issue
Block a user