diff --git a/module/bdev/ocf/vbdev_ocf.c b/module/bdev/ocf/vbdev_ocf.c index 08f5aed22..a5b285468 100644 --- a/module/bdev/ocf/vbdev_ocf.c +++ b/module/bdev/ocf/vbdev_ocf.c @@ -1007,12 +1007,25 @@ static void start_cache_cmpl(ocf_cache_t cache, void *priv, int error) { struct vbdev_ocf *vbdev = priv; + uint64_t mem_needed; ocf_mngt_cache_unlock(cache); if (error) { SPDK_ERRLOG("Error %d during start cache %s, starting rollback\n", error, vbdev->name); + + if (error == -OCF_ERR_NO_MEM) { + ocf_mngt_get_ram_needed(cache, &vbdev->cfg.device, &mem_needed); + + SPDK_NOTICELOG("Try to increase hugepage memory size or cache line size. " + "For your configuration:\nDevice size: %"PRIu64" bytes\n" + "Cache line size: %"PRIu64" bytes\nFree memory needed to start " + "cache: %"PRIu64" bytes\n", vbdev->cache.bdev->blockcnt * + vbdev->cache.bdev->blocklen, vbdev->cfg.cache.cache_line_size, + mem_needed); + } + vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, error); return; }