lib/ftl: Consume ANM event on core thread

Send ANM event to core thread for further
processing. This will remove a need of locking
in relocate module when ANM event occur.

Change-Id: I0efb1f1b8c96c107cda5fe78e8ee5672cde39f11
Signed-off-by: Wojciech Malikowski <wojciech.malikowski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457611
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Mateusz Kozlowski <mateusz.kozlowski@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Wojciech Malikowski 2019-06-11 09:40:46 -04:00 committed by Darek Stojaczyk
parent cdc0170c1b
commit 4be37a57f4

View File

@ -1894,9 +1894,22 @@ spdk_ftl_flush(struct spdk_ftl_dev *dev, spdk_ftl_fn cb_fn, void *cb_arg)
return 0;
}
static void
_ftl_process_anm_event(void *ctx)
{
ftl_process_anm_event((struct ftl_anm_event *)ctx);
}
void
ftl_process_anm_event(struct ftl_anm_event *event)
{
struct spdk_ftl_dev *dev = event->dev;
if (!ftl_check_core_thread(dev)) {
spdk_thread_send_msg(ftl_get_core_thread(dev), _ftl_process_anm_event, event);
return;
}
SPDK_DEBUGLOG(SPDK_LOG_FTL_CORE, "Unconsumed ANM received for dev: %p...\n", event->dev);
ftl_anm_event_complete(event);
}