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:
parent
cdc0170c1b
commit
4be37a57f4
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user