[PATCH] udmabuf: Add support for mapping hugepages

Gerd Hoffmann kraxel at redhat.com
Thu Jun 3 09:44:24 UTC 2021


  Hi,

> +		if (is_file_hugepages(memfd)) {
> +			hpstate = hstate_file(memfd);
> +			pgoff = list[i].offset >> huge_page_shift(hpstate);
> +			subpgoff = (list[i].offset &
> +				    ~huge_page_mask(hpstate)) >> PAGE_SHIFT;
> +			hpage = find_get_page_flags(
> +					file_inode(memfd)->i_mapping,
> +					pgoff, FGP_ACCESSED);
> +			if (IS_ERR(hpage)) {
> +				ret = PTR_ERR(hpage);
>  				goto err;
>  			}
> +		}
> +		for (pgidx = 0; pgidx < pgcnt; pgidx++) {
> +			if (is_file_hugepages(memfd)) {
> +				page = hpage + subpgoff + pgidx;
> +				get_page(page);

Hmm.  Does this work in case the page range spans multiple huge pages?

take care,
  Gerd



More information about the dri-devel mailing list