[dpdk-dev] [PATCH v2] eal: Support running as unprivileged user

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Wed Jan 18 18:05:29 CET 2017


On 03/01/2017 22:56, Ben Walker wrote:
> For Linux kernel 4.0 and newer, the ability to obtain
> physical page frame numbers for unprivileged users from
> /proc/self/pagemap was removed. Instead, when an IOMMU
> is present, simply choose our own DMA addresses instead.
>
> Signed-off-by: Ben Walker <benjamin.walker at intel.com>
> @@ -255,6 +257,22 @@ find_physaddrs(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
>   }
>   
>   /*
> + * For each hugepage in hugepg_tbl, fill the physaddr value sequentially.
> + */
> +static int
> +set_physaddrs(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
> +{
> +	unsigned int i;
> +	phys_addr_t addr = 0;
> +
> +	for (i = 0; i < hpi->num_pages[0]; i++) {
> +		hugepg_tbl[i].physaddr = addr;
> +		addr += hugepg_tbl[i].size;
> +	}
> +	return 0;
> +}
> +

Sorry for late catch, but when having multiple hugepage sizes, both 
would be mapped from address 0.
I thin making the var static should be enough.
Also I would prefer some randomness on the start address instead of 
always 0.

Thanks,
Sergio


More information about the dev mailing list