[dpdk-dev] [PATCH 09/12] Remove iopl operation for IBM Power architecture

Cyril Chemparathy cchemparathy at tilera.com
Tue Oct 7 00:03:51 CEST 2014


On 9/26/2014 2:36 AM, Chao Zhu wrote:
> iopl() call is mostly for the i386 architecture. In Power architecture.
> It doesn't exist. This patch modified rte_eal_iopl_init() and make it
> return -1 on Power. This means rte_config.flags will not contain
> EAL_FLG_HIGH_IOPL flag on IBM Power architecture.

Since iopl() is an x86-only thing, shouldn't the code be conditional on 
defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) instead of below?

Better still, should we maybe break out an architecture specific init 
function?  This function could set iopl on x86, and possibly do other 
lowlevel init things on other architectures...

> Signed-off-by: Chao Zhu <bjzhuc at cn.ibm.com>
> ---
>   lib/librte_eal/linuxapp/eal/eal.c |   11 +++++++++++
>   1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
> index 4869e7c..8cc1f21 100644
> --- a/lib/librte_eal/linuxapp/eal/eal.c
> +++ b/lib/librte_eal/linuxapp/eal/eal.c
> @@ -50,7 +50,10 @@
>   #include <errno.h>
>   #include <sys/mman.h>
>   #include <sys/queue.h>
> +/* Power architecture doesn't have this header file */
> +#ifndef RTE_ARCH_PPC_64
>   #include <sys/io.h>
> +#endif
>   
>   #include <rte_common.h>
>   #include <rte_debug.h>
> @@ -1019,11 +1022,19 @@ rte_eal_mcfg_complete(void)
>   
>   /*
>    * Request iopl privilege for all RPL, returns 0 on success
> + *
> + * Power architecture doesn't have iopl function, so this function
> + * return -1 on Power architecture, because this function is only used
> + * in rte_eal_init to add EAL_FLG_HIGH_IOPL to rte_config.flags.
>    */
>   static int
>   rte_eal_iopl_init(void)
>   {
> +#ifndef RTE_ARCH_PPC_64
>   	return iopl(HIGHEST_RPL);
> +#else
> +	return -1;
> +#endif
>   }
>   
>   /* Launch threads, called at application init(). */



More information about the dev mailing list