event: Pollers must now be unregistered from the thread they run on.
Change-Id: I8ea8c59a0c67176c0c0c39abf807afad61ff3828 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/387689 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
fcb4776fe7
commit
00b02039c5
@ -82,7 +82,7 @@ subsystem_unregister_poller(void *arg1, void *arg2)
|
|||||||
struct nvmf_tgt_subsystem *app_subsys = arg1;
|
struct nvmf_tgt_subsystem *app_subsys = arg1;
|
||||||
struct spdk_event *event = arg2;
|
struct spdk_event *event = arg2;
|
||||||
|
|
||||||
spdk_poller_unregister(&app_subsys->poller, NULL);
|
spdk_poller_unregister(&app_subsys->poller);
|
||||||
|
|
||||||
spdk_event_call(event);
|
spdk_event_call(event);
|
||||||
}
|
}
|
||||||
@ -235,7 +235,7 @@ nvmf_tgt_destroy_poll_group(void *arg1, void *arg2)
|
|||||||
pg = &g_poll_groups[g_tgt.core];
|
pg = &g_poll_groups[g_tgt.core];
|
||||||
assert(pg != NULL);
|
assert(pg != NULL);
|
||||||
|
|
||||||
spdk_poller_unregister(&pg->poller, NULL);
|
spdk_poller_unregister(&pg->poller);
|
||||||
|
|
||||||
spdk_nvmf_poll_group_destroy(pg->group);
|
spdk_nvmf_poll_group_destroy(pg->group);
|
||||||
pg->group = NULL;
|
pg->group = NULL;
|
||||||
@ -354,7 +354,7 @@ nvmf_tgt_advance_state(void *arg1, void *arg2)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NVMF_TGT_FINI_STOP_ACCEPTOR: {
|
case NVMF_TGT_FINI_STOP_ACCEPTOR: {
|
||||||
spdk_poller_unregister(&g_acceptor_poller, NULL);
|
spdk_poller_unregister(&g_acceptor_poller);
|
||||||
g_tgt.core = spdk_env_get_first_core();
|
g_tgt.core = spdk_env_get_first_core();
|
||||||
g_tgt.state = NVMF_TGT_FINI_DESTROY_POLL_GROUP;
|
g_tgt.state = NVMF_TGT_FINI_DESTROY_POLL_GROUP;
|
||||||
break;
|
break;
|
||||||
|
@ -196,8 +196,7 @@ void spdk_poller_register(struct spdk_poller **ppoller,
|
|||||||
/**
|
/**
|
||||||
* \brief Unregister a poller on the given lcore.
|
* \brief Unregister a poller on the given lcore.
|
||||||
*/
|
*/
|
||||||
void spdk_poller_unregister(struct spdk_poller **ppoller,
|
void spdk_poller_unregister(struct spdk_poller **ppoller);
|
||||||
struct spdk_event *complete);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Enable or disable monitoring of context switches.
|
* \brief Enable or disable monitoring of context switches.
|
||||||
|
@ -213,7 +213,7 @@ ioat_destroy_cb(void *io_device, void *ctx_buf)
|
|||||||
struct ioat_io_channel *ch = ctx_buf;
|
struct ioat_io_channel *ch = ctx_buf;
|
||||||
|
|
||||||
ioat_free_device(ch->ioat_dev);
|
ioat_free_device(ch->ioat_dev);
|
||||||
spdk_poller_unregister(&ch->poller, NULL);
|
spdk_poller_unregister(&ch->poller);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct spdk_io_channel *
|
static struct spdk_io_channel *
|
||||||
|
@ -225,16 +225,6 @@ spdk_poller_insert_timer(struct spdk_reactor *reactor, struct spdk_poller *polle
|
|||||||
TAILQ_INSERT_HEAD(&reactor->timer_pollers, poller, tailq);
|
TAILQ_INSERT_HEAD(&reactor->timer_pollers, poller, tailq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_spdk_poller_unregister_complete(struct spdk_poller *poller)
|
|
||||||
{
|
|
||||||
if (poller->unregister_complete_event) {
|
|
||||||
spdk_event_call(poller->unregister_complete_event);
|
|
||||||
}
|
|
||||||
|
|
||||||
free(poller);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_spdk_reactor_msg_passed(void *arg1, void *arg2)
|
_spdk_reactor_msg_passed(void *arg1, void *arg2)
|
||||||
{
|
{
|
||||||
@ -292,7 +282,7 @@ _spdk_reactor_context_switch_monitor_stop(void *arg1, void *arg2)
|
|||||||
struct spdk_reactor *reactor = arg1;
|
struct spdk_reactor *reactor = arg1;
|
||||||
|
|
||||||
if (reactor->rusage_poller != NULL) {
|
if (reactor->rusage_poller != NULL) {
|
||||||
spdk_poller_unregister(&reactor->rusage_poller, NULL);
|
spdk_poller_unregister(&reactor->rusage_poller);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,7 +374,7 @@ _spdk_reactor_run(void *arg)
|
|||||||
poller->state = SPDK_POLLER_STATE_RUNNING;
|
poller->state = SPDK_POLLER_STATE_RUNNING;
|
||||||
poller->fn(poller->arg);
|
poller->fn(poller->arg);
|
||||||
if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
|
if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
|
||||||
_spdk_poller_unregister_complete(poller);
|
free(poller);
|
||||||
} else {
|
} else {
|
||||||
poller->state = SPDK_POLLER_STATE_WAITING;
|
poller->state = SPDK_POLLER_STATE_WAITING;
|
||||||
TAILQ_INSERT_TAIL(&reactor->active_pollers, poller, tailq);
|
TAILQ_INSERT_TAIL(&reactor->active_pollers, poller, tailq);
|
||||||
@ -402,7 +392,7 @@ _spdk_reactor_run(void *arg)
|
|||||||
poller->state = SPDK_POLLER_STATE_RUNNING;
|
poller->state = SPDK_POLLER_STATE_RUNNING;
|
||||||
poller->fn(poller->arg);
|
poller->fn(poller->arg);
|
||||||
if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
|
if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
|
||||||
_spdk_poller_unregister_complete(poller);
|
free(poller);
|
||||||
} else {
|
} else {
|
||||||
poller->state = SPDK_POLLER_STATE_WAITING;
|
poller->state = SPDK_POLLER_STATE_WAITING;
|
||||||
spdk_poller_insert_timer(reactor, poller, now);
|
spdk_poller_insert_timer(reactor, poller, now);
|
||||||
@ -729,14 +719,23 @@ spdk_poller_register(struct spdk_poller **ppoller, spdk_poller_fn fn, void *arg,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
_spdk_poller_unregister(struct spdk_reactor *reactor, struct spdk_poller *poller,
|
spdk_poller_unregister(struct spdk_poller **ppoller)
|
||||||
struct spdk_event *next)
|
|
||||||
{
|
{
|
||||||
assert(poller->lcore == reactor->lcore);
|
struct spdk_poller *poller;
|
||||||
|
struct spdk_reactor *reactor;
|
||||||
|
|
||||||
|
poller = *ppoller;
|
||||||
|
|
||||||
|
*ppoller = NULL;
|
||||||
|
|
||||||
|
if (poller == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
assert(poller->lcore == spdk_env_get_current_core());
|
assert(poller->lcore == spdk_env_get_current_core());
|
||||||
|
|
||||||
poller->unregister_complete_event = next;
|
reactor = spdk_reactor_get(poller->lcore);
|
||||||
|
|
||||||
if (poller->state == SPDK_POLLER_STATE_RUNNING) {
|
if (poller->state == SPDK_POLLER_STATE_RUNNING) {
|
||||||
/*
|
/*
|
||||||
@ -752,52 +751,7 @@ _spdk_poller_unregister(struct spdk_reactor *reactor, struct spdk_poller *poller
|
|||||||
TAILQ_REMOVE(&reactor->active_pollers, poller, tailq);
|
TAILQ_REMOVE(&reactor->active_pollers, poller, tailq);
|
||||||
}
|
}
|
||||||
|
|
||||||
_spdk_poller_unregister_complete(poller);
|
free(poller);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_spdk_event_remove_poller(void *arg1, void *arg2)
|
|
||||||
{
|
|
||||||
struct spdk_poller *poller = arg1;
|
|
||||||
struct spdk_reactor *reactor = spdk_reactor_get(poller->lcore);
|
|
||||||
struct spdk_event *next = arg2;
|
|
||||||
|
|
||||||
_spdk_poller_unregister(reactor, poller, next);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
spdk_poller_unregister(struct spdk_poller **ppoller,
|
|
||||||
struct spdk_event *complete)
|
|
||||||
{
|
|
||||||
struct spdk_poller *poller;
|
|
||||||
uint32_t lcore;
|
|
||||||
|
|
||||||
poller = *ppoller;
|
|
||||||
|
|
||||||
*ppoller = NULL;
|
|
||||||
|
|
||||||
if (poller == NULL) {
|
|
||||||
if (complete) {
|
|
||||||
spdk_event_call(complete);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
lcore = poller->lcore;
|
|
||||||
|
|
||||||
if (lcore == spdk_env_get_current_core()) {
|
|
||||||
/*
|
|
||||||
* The poller is registered on the current core, so call the remove function
|
|
||||||
* directly.
|
|
||||||
*/
|
|
||||||
_spdk_poller_unregister(spdk_reactor_get(lcore), poller, complete);
|
|
||||||
} else {
|
|
||||||
/*
|
|
||||||
* The poller is registered on a different core.
|
|
||||||
* Schedule an event to run on the poller's core that will remove the poller.
|
|
||||||
*/
|
|
||||||
spdk_event_call(spdk_event_allocate(lcore, _spdk_event_remove_poller, poller, complete));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ void
|
|||||||
spdk_rpc_finish(void)
|
spdk_rpc_finish(void)
|
||||||
{
|
{
|
||||||
spdk_rpc_close();
|
spdk_rpc_close();
|
||||||
spdk_poller_unregister(&g_rpc_poller, NULL);
|
spdk_poller_unregister(&g_rpc_poller);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -60,7 +60,7 @@ spdk_bdev_subsystem_start_poller(struct spdk_bdev_poller **ppoller,
|
|||||||
static void
|
static void
|
||||||
spdk_bdev_subsystem_stop_poller(struct spdk_bdev_poller **ppoller)
|
spdk_bdev_subsystem_stop_poller(struct spdk_bdev_poller **ppoller)
|
||||||
{
|
{
|
||||||
spdk_poller_unregister((struct spdk_poller **)ppoller, NULL);
|
spdk_poller_unregister((struct spdk_poller **)ppoller);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -86,5 +86,5 @@ spdk_iscsi_acceptor_start(struct spdk_iscsi_portal *p)
|
|||||||
void
|
void
|
||||||
spdk_iscsi_acceptor_stop(struct spdk_iscsi_portal *p)
|
spdk_iscsi_acceptor_stop(struct spdk_iscsi_portal *p)
|
||||||
{
|
{
|
||||||
spdk_poller_unregister(&p->acceptor_poller, NULL);
|
spdk_poller_unregister(&p->acceptor_poller);
|
||||||
}
|
}
|
||||||
|
@ -689,7 +689,7 @@ _spdk_iscsi_conn_check_shutdown(void *arg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
spdk_poller_unregister(&conn->shutdown_timer, NULL);
|
spdk_poller_unregister(&conn->shutdown_timer);
|
||||||
|
|
||||||
spdk_iscsi_conn_stop_poller(conn, _spdk_iscsi_conn_free, spdk_env_get_current_core());
|
spdk_iscsi_conn_stop_poller(conn, _spdk_iscsi_conn_free, spdk_env_get_current_core());
|
||||||
}
|
}
|
||||||
@ -710,7 +710,7 @@ void spdk_iscsi_conn_destruct(struct spdk_iscsi_conn *conn)
|
|||||||
|
|
||||||
spdk_clear_all_transfer_task(conn, NULL);
|
spdk_clear_all_transfer_task(conn, NULL);
|
||||||
spdk_sock_close(conn->sock);
|
spdk_sock_close(conn->sock);
|
||||||
spdk_poller_unregister(&conn->logout_timer, NULL);
|
spdk_poller_unregister(&conn->logout_timer);
|
||||||
|
|
||||||
rc = spdk_iscsi_conn_free_tasks(conn);
|
rc = spdk_iscsi_conn_free_tasks(conn);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
@ -761,7 +761,7 @@ spdk_iscsi_conn_check_shutdown(void *arg)
|
|||||||
struct spdk_event *event;
|
struct spdk_event *event;
|
||||||
|
|
||||||
if (spdk_iscsi_get_active_conns() == 0) {
|
if (spdk_iscsi_get_active_conns() == 0) {
|
||||||
spdk_poller_unregister(&g_shutdown_timer, NULL);
|
spdk_poller_unregister(&g_shutdown_timer);
|
||||||
event = spdk_event_allocate(spdk_env_get_current_core(), spdk_iscsi_conn_check_shutdown_cb, NULL,
|
event = spdk_event_allocate(spdk_env_get_current_core(), spdk_iscsi_conn_check_shutdown_cb, NULL,
|
||||||
NULL);
|
NULL);
|
||||||
spdk_event_call(event);
|
spdk_event_call(event);
|
||||||
@ -829,7 +829,7 @@ spdk_iscsi_conn_stop_poller(struct spdk_iscsi_conn *conn, spdk_event_fn fn_after
|
|||||||
}
|
}
|
||||||
__sync_fetch_and_sub(&g_num_connections[spdk_env_get_current_core()], 1);
|
__sync_fetch_and_sub(&g_num_connections[spdk_env_get_current_core()], 1);
|
||||||
spdk_net_framework_clear_socket_association(conn->sock);
|
spdk_net_framework_clear_socket_association(conn->sock);
|
||||||
spdk_poller_unregister(&conn->poller, NULL);
|
spdk_poller_unregister(&conn->poller);
|
||||||
event = spdk_event_allocate(lcore, fn_after_stop, conn, NULL);
|
event = spdk_event_allocate(lcore, fn_after_stop, conn, NULL);
|
||||||
spdk_event_call(event);
|
spdk_event_call(event);
|
||||||
}
|
}
|
||||||
@ -1448,7 +1448,7 @@ spdk_iscsi_conn_login_do_work(void *arg)
|
|||||||
__sync_fetch_and_sub(&g_num_connections[spdk_env_get_current_core()], 1);
|
__sync_fetch_and_sub(&g_num_connections[spdk_env_get_current_core()], 1);
|
||||||
__sync_fetch_and_add(&g_num_connections[lcore], 1);
|
__sync_fetch_and_add(&g_num_connections[lcore], 1);
|
||||||
spdk_net_framework_clear_socket_association(conn->sock);
|
spdk_net_framework_clear_socket_association(conn->sock);
|
||||||
spdk_poller_unregister(&conn->poller, NULL);
|
spdk_poller_unregister(&conn->poller);
|
||||||
spdk_event_call(event);
|
spdk_event_call(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,7 +328,7 @@ int
|
|||||||
spdk_scsi_lun_destruct(struct spdk_scsi_lun *lun)
|
spdk_scsi_lun_destruct(struct spdk_scsi_lun *lun)
|
||||||
{
|
{
|
||||||
spdk_bdev_close(lun->bdev_desc);
|
spdk_bdev_close(lun->bdev_desc);
|
||||||
spdk_poller_unregister(&lun->hotplug_poller, NULL);
|
spdk_poller_unregister(&lun->hotplug_poller);
|
||||||
spdk_scsi_lun_db_delete(lun);
|
spdk_scsi_lun_db_delete(lun);
|
||||||
|
|
||||||
free(lun);
|
free(lun);
|
||||||
|
@ -396,7 +396,7 @@ _bdev_remove_cb(struct spdk_vhost_dev *vdev, void *arg)
|
|||||||
SPDK_WARNLOG("Controller %s: Hot-removing bdev - all further requests will fail.\n",
|
SPDK_WARNLOG("Controller %s: Hot-removing bdev - all further requests will fail.\n",
|
||||||
bvdev->vdev.name);
|
bvdev->vdev.name);
|
||||||
if (bvdev->requestq_poller) {
|
if (bvdev->requestq_poller) {
|
||||||
spdk_poller_unregister(&bvdev->requestq_poller, NULL);
|
spdk_poller_unregister(&bvdev->requestq_poller);
|
||||||
spdk_poller_register(&bvdev->requestq_poller, no_bdev_vdev_worker, bvdev, 0);
|
spdk_poller_register(&bvdev->requestq_poller, no_bdev_vdev_worker, bvdev, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,7 +547,7 @@ destroy_device_poller_cb(void *arg)
|
|||||||
free_task_pool(bvdev);
|
free_task_pool(bvdev);
|
||||||
spdk_vhost_dev_mem_unregister(&bvdev->vdev);
|
spdk_vhost_dev_mem_unregister(&bvdev->vdev);
|
||||||
|
|
||||||
spdk_poller_unregister(&ctx->poller, NULL);
|
spdk_poller_unregister(&ctx->poller);
|
||||||
spdk_vhost_dev_backend_event_done(ctx->event_ctx, 0);
|
spdk_vhost_dev_backend_event_done(ctx->event_ctx, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,7 +572,7 @@ spdk_vhost_blk_stop(struct spdk_vhost_dev *vdev, void *event_ctx)
|
|||||||
destroy_ctx->bvdev = bvdev;
|
destroy_ctx->bvdev = bvdev;
|
||||||
destroy_ctx->event_ctx = event_ctx;
|
destroy_ctx->event_ctx = event_ctx;
|
||||||
|
|
||||||
spdk_poller_unregister(&bvdev->requestq_poller, NULL);
|
spdk_poller_unregister(&bvdev->requestq_poller);
|
||||||
spdk_poller_register(&destroy_ctx->poller, destroy_device_poller_cb, destroy_ctx,
|
spdk_poller_register(&destroy_ctx->poller, destroy_device_poller_cb, destroy_ctx,
|
||||||
1000);
|
1000);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1093,7 +1093,7 @@ destroy_device_poller_cb(void *arg)
|
|||||||
|
|
||||||
free_task_pool(svdev);
|
free_task_pool(svdev);
|
||||||
|
|
||||||
spdk_poller_unregister(&ctx->poller, NULL);
|
spdk_poller_unregister(&ctx->poller);
|
||||||
spdk_vhost_dev_backend_event_done(ctx->event_ctx, 0);
|
spdk_vhost_dev_backend_event_done(ctx->event_ctx, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1118,8 +1118,8 @@ spdk_vhost_scsi_stop(struct spdk_vhost_dev *vdev, void *event_ctx)
|
|||||||
destroy_ctx->svdev = svdev;
|
destroy_ctx->svdev = svdev;
|
||||||
destroy_ctx->event_ctx = event_ctx;
|
destroy_ctx->event_ctx = event_ctx;
|
||||||
|
|
||||||
spdk_poller_unregister(&svdev->requestq_poller, NULL);
|
spdk_poller_unregister(&svdev->requestq_poller);
|
||||||
spdk_poller_unregister(&svdev->mgmt_poller, NULL);
|
spdk_poller_unregister(&svdev->mgmt_poller);
|
||||||
spdk_poller_register(&destroy_ctx->poller, destroy_device_poller_cb, destroy_ctx,
|
spdk_poller_register(&destroy_ctx->poller, destroy_device_poller_cb, destroy_ctx,
|
||||||
1000);
|
1000);
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ end_run(void *arg1, void *arg2)
|
|||||||
spdk_bdev_close(target->bdev_desc);
|
spdk_bdev_close(target->bdev_desc);
|
||||||
if (--g_target_count == 0) {
|
if (--g_target_count == 0) {
|
||||||
if (g_show_performance_real_time) {
|
if (g_show_performance_real_time) {
|
||||||
spdk_poller_unregister(&g_perf_timer, NULL);
|
spdk_poller_unregister(&g_perf_timer);
|
||||||
}
|
}
|
||||||
if (g_run_failed) {
|
if (g_run_failed) {
|
||||||
spdk_app_stop(1);
|
spdk_app_stop(1);
|
||||||
@ -424,9 +424,9 @@ end_target(void *arg)
|
|||||||
{
|
{
|
||||||
struct io_target *target = arg;
|
struct io_target *target = arg;
|
||||||
|
|
||||||
spdk_poller_unregister(&target->run_timer, NULL);
|
spdk_poller_unregister(&target->run_timer);
|
||||||
if (g_reset) {
|
if (g_reset) {
|
||||||
spdk_poller_unregister(&target->reset_timer, NULL);
|
spdk_poller_unregister(&target->reset_timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
target->is_draining = true;
|
target->is_draining = true;
|
||||||
@ -460,7 +460,7 @@ reset_target(void *arg)
|
|||||||
struct bdevperf_task *task = NULL;
|
struct bdevperf_task *task = NULL;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
spdk_poller_unregister(&target->reset_timer, NULL);
|
spdk_poller_unregister(&target->reset_timer);
|
||||||
|
|
||||||
/* Do reset. */
|
/* Do reset. */
|
||||||
rte_mempool_get(task_pool, (void **)&task);
|
rte_mempool_get(task_pool, (void **)&task);
|
||||||
|
@ -52,7 +52,7 @@ static char *g_nbd_name = "/dev/nbd0";
|
|||||||
static void
|
static void
|
||||||
nbd_shutdown(void)
|
nbd_shutdown(void)
|
||||||
{
|
{
|
||||||
spdk_poller_unregister(&g_nbd_poller, NULL);
|
spdk_poller_unregister(&g_nbd_poller);
|
||||||
|
|
||||||
spdk_nbd_stop(g_nbd_disk);
|
spdk_nbd_stop(g_nbd_disk);
|
||||||
spdk_app_stop(0);
|
spdk_app_stop(0);
|
||||||
|
@ -62,7 +62,7 @@ static void
|
|||||||
oneshot(void *arg)
|
oneshot(void *arg)
|
||||||
{
|
{
|
||||||
printf("oneshot\n");
|
printf("oneshot\n");
|
||||||
spdk_poller_unregister(&poller_oneshot, NULL);
|
spdk_poller_unregister(&poller_oneshot);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -84,7 +84,7 @@ test_start(void *arg1, void *arg2)
|
|||||||
spdk_poller_register(&poller_oneshot, oneshot, NULL, 0);
|
spdk_poller_register(&poller_oneshot, oneshot, NULL, 0);
|
||||||
|
|
||||||
spdk_poller_register(&poller_unregister, nop, NULL, 0);
|
spdk_poller_register(&poller_unregister, nop, NULL, 0);
|
||||||
spdk_poller_unregister(&poller_unregister, NULL);
|
spdk_poller_unregister(&poller_unregister);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -92,10 +92,10 @@ test_cleanup(void)
|
|||||||
{
|
{
|
||||||
printf("test_cleanup\n");
|
printf("test_cleanup\n");
|
||||||
|
|
||||||
spdk_poller_unregister(&test_end_poller, NULL);
|
spdk_poller_unregister(&test_end_poller);
|
||||||
spdk_poller_unregister(&poller_100ms, NULL);
|
spdk_poller_unregister(&poller_100ms);
|
||||||
spdk_poller_unregister(&poller_250ms, NULL);
|
spdk_poller_unregister(&poller_250ms);
|
||||||
spdk_poller_unregister(&poller_500ms, NULL);
|
spdk_poller_unregister(&poller_500ms);
|
||||||
/* poller_oneshot unregisters itself */
|
/* poller_oneshot unregisters itself */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ test_cleanup(void)
|
|||||||
{
|
{
|
||||||
printf("test_abort\n");
|
printf("test_abort\n");
|
||||||
|
|
||||||
spdk_poller_unregister(&test_end_poller, NULL);
|
spdk_poller_unregister(&test_end_poller);
|
||||||
spdk_app_stop(0);
|
spdk_app_stop(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,8 +61,7 @@ spdk_poller_register(struct spdk_poller **ppoller, spdk_poller_fn fn, void *arg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
spdk_poller_unregister(struct spdk_poller **ppoller,
|
spdk_poller_unregister(struct spdk_poller **ppoller)
|
||||||
struct spdk_event *complete)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ DEFINE_STUB_V(spdk_app_stop, (int rc));
|
|||||||
DEFINE_STUB_V(spdk_event_call, (struct spdk_event *event));
|
DEFINE_STUB_V(spdk_event_call, (struct spdk_event *event));
|
||||||
DEFINE_STUB_V(spdk_poller_register, (struct spdk_poller **ppoller, spdk_poller_fn fn, void *arg,
|
DEFINE_STUB_V(spdk_poller_register, (struct spdk_poller **ppoller, spdk_poller_fn fn, void *arg,
|
||||||
uint64_t period_microseconds));
|
uint64_t period_microseconds));
|
||||||
DEFINE_STUB_V(spdk_poller_unregister, (struct spdk_poller **ppoller, struct spdk_event *complete));
|
DEFINE_STUB_V(spdk_poller_unregister, (struct spdk_poller **ppoller));
|
||||||
DEFINE_STUB(spdk_iommu_mem_unregister, int, (uint64_t addr, uint64_t len), 0);
|
DEFINE_STUB(spdk_iommu_mem_unregister, int, (uint64_t addr, uint64_t len), 0);
|
||||||
DEFINE_STUB(rte_vhost_get_mem_table, int, (int vid, struct rte_vhost_memory **mem), 0);
|
DEFINE_STUB(rte_vhost_get_mem_table, int, (int vid, struct rte_vhost_memory **mem), 0);
|
||||||
DEFINE_STUB(rte_vhost_get_negotiated_features, int, (int vid, uint64_t *features), 0);
|
DEFINE_STUB(rte_vhost_get_negotiated_features, int, (int vid, uint64_t *features), 0);
|
||||||
|
@ -94,7 +94,7 @@ DEFINE_STUB_V(spdk_vhost_dev_mem_unregister, (struct spdk_vhost_dev *vdev));
|
|||||||
DEFINE_STUB(spdk_env_get_current_core, uint32_t, (void), 0);
|
DEFINE_STUB(spdk_env_get_current_core, uint32_t, (void), 0);
|
||||||
DEFINE_STUB(spdk_vhost_event_send, int, (struct spdk_vhost_dev *vdev, spdk_vhost_event_fn cb_fn,
|
DEFINE_STUB(spdk_vhost_event_send, int, (struct spdk_vhost_dev *vdev, spdk_vhost_event_fn cb_fn,
|
||||||
void *arg, unsigned timeout_sec, const char *errmsg), 0);
|
void *arg, unsigned timeout_sec, const char *errmsg), 0);
|
||||||
DEFINE_STUB_V(spdk_poller_unregister, (struct spdk_poller **ppoller, struct spdk_event *complete));
|
DEFINE_STUB_V(spdk_poller_unregister, (struct spdk_poller **ppoller));
|
||||||
DEFINE_STUB_V(spdk_ring_free, (struct spdk_ring *ring));
|
DEFINE_STUB_V(spdk_ring_free, (struct spdk_ring *ring));
|
||||||
DEFINE_STUB(spdk_env_get_socket_id, uint32_t, (uint32_t core), 0);
|
DEFINE_STUB(spdk_env_get_socket_id, uint32_t, (uint32_t core), 0);
|
||||||
DEFINE_STUB_P(spdk_bdev_get_name, const char, (const struct spdk_bdev *bdev), {0});
|
DEFINE_STUB_P(spdk_bdev_get_name, const char, (const struct spdk_bdev *bdev), {0});
|
||||||
|
@ -111,7 +111,7 @@ DEFINE_STUB_P(spdk_conf_section_get_name, const char, (const struct spdk_conf_se
|
|||||||
DEFINE_STUB(spdk_env_get_socket_id, uint32_t, (uint32_t core), 0);
|
DEFINE_STUB(spdk_env_get_socket_id, uint32_t, (uint32_t core), 0);
|
||||||
DEFINE_STUB(spdk_vhost_event_send, int, (struct spdk_vhost_dev *vdev, spdk_vhost_event_fn cb_fn,
|
DEFINE_STUB(spdk_vhost_event_send, int, (struct spdk_vhost_dev *vdev, spdk_vhost_event_fn cb_fn,
|
||||||
void *arg, unsigned timeout_sec, const char *errmsg), 0);
|
void *arg, unsigned timeout_sec, const char *errmsg), 0);
|
||||||
DEFINE_STUB_V(spdk_poller_unregister, (struct spdk_poller **ppoller, struct spdk_event *complete));
|
DEFINE_STUB_V(spdk_poller_unregister, (struct spdk_poller **ppoller));
|
||||||
DEFINE_STUB(spdk_json_write_name, int, (struct spdk_json_write_ctx *w, const char *name), 0);
|
DEFINE_STUB(spdk_json_write_name, int, (struct spdk_json_write_ctx *w, const char *name), 0);
|
||||||
DEFINE_STUB(spdk_json_write_object_begin, int, (struct spdk_json_write_ctx *w), 0);
|
DEFINE_STUB(spdk_json_write_object_begin, int, (struct spdk_json_write_ctx *w), 0);
|
||||||
DEFINE_STUB(spdk_json_write_uint32, int, (struct spdk_json_write_ctx *w, uint32_t val), 0);
|
DEFINE_STUB(spdk_json_write_uint32, int, (struct spdk_json_write_ctx *w, uint32_t val), 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user