Allow external libraries and applications to know if hugepages are enabled.
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> Signed-off-by: Damien Millescamps <damien.millescamps at 6wind.com> --- lib/librte_eal/common/include/rte_eal.h | 13 ++++++++++++- lib/librte_eal/linuxapp/eal/eal.c | 4 ++++ 2 files changed, 16 insertions(+), 1 deletions(-) diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h index 240530d..58a6f90 100644 --- a/lib/librte_eal/common/include/rte_eal.h +++ b/lib/librte_eal/common/include/rte_eal.h @@ -214,7 +214,18 @@ int rte_eal_init(int argc, char **argv); } \ } while(0) - +/** + * Whether EAL is using huge pages (disabled by --no-huge option). + * The no-huge mode cannot be used with UIO poll-mode drivers like igb/ixgbe. + * It is useful for NIC drivers (e.g. librte_pmd_mlx4, librte_pmd_vmxnet3) or + * crypto drivers (e.g. librte_crypto_nitrox) provided by third-parties such + * as 6WIND. + * + * @return + * Nonzero if hugepages are enabled. + */ +int rte_eal_has_hugepages(void); + #ifdef __cplusplus } #endif diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index ed0e9b1..52de2b6 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -945,3 +945,7 @@ rte_eal_process_type(void) return (rte_config.process_type); } +int rte_eal_has_hugepages(void) +{ + return ! internal_config.no_hugetlbfs; +} -- 1.7.2.5