eal/windows: detect insufficient privileges for hugepages

AdjustTokenPrivileges() succeeds even if no requested privileges have
been granted; this behavior is documented. Check last error code in
addition to return value to detect such case.

Make error messages more specific and add troubleshooting hint.

Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Ranjit Menon <ranjit.menon@intel.com>
This commit is contained in:
Dmitry Kozlyuk 2020-07-09 00:48:43 +03:00 committed by Thomas Monjalon
parent 982bb68cab
commit 7daf5bdb0f

View File

@ -41,6 +41,10 @@ hugepage_claim_privilege(void)
goto exit;
}
/* AdjustTokenPrivileges() may succeed with ERROR_NOT_ALL_ASSIGNED. */
if (GetLastError() != ERROR_SUCCESS)
goto exit;
ret = 0;
exit:
@ -98,12 +102,13 @@ int
eal_hugepage_info_init(void)
{
if (hugepage_claim_privilege() < 0) {
RTE_LOG(ERR, EAL, "Cannot claim hugepage privilege\n");
RTE_LOG(ERR, EAL, "Cannot claim hugepage privilege\n"
"Verify that large-page support privilege is assigned to the current user\n");
return -1;
}
if (hugepage_info_init() < 0) {
RTE_LOG(ERR, EAL, "Cannot get hugepage information\n");
RTE_LOG(ERR, EAL, "Cannot discover available hugepages\n");
return -1;
}