|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/4] x86/mm: Implement common put_data_pages for put_page_from_l[23]e
On 12.12.2019 18:32, George Dunlap wrote:
> Both put_page_from_l2e and put_page_from_l3e handle having superpage
> entries by looping over each page and "put"-ing each one individually.
> As with putting page table entries, this code is functionally
> identical, but for some reason different. Moreover, there is already
> a common function, put_data_page(), to handle automatically swapping
> between put_page() (for read-only pages) or put_page_and_type() (for
> read-write pages).
>
> Replace this with put_data_pages() (plural), which does the entire
> loop, as well as the put_page / put_page_and_type switch.
>
> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx>
> ---
> NB that I've used the "simple for loop" version to make it easy to see
> what's going on, rather than the "do { } while()" version which uses &
> and compare to zero rather than comparing to the max.
>
> CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> CC: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> xen/arch/x86/mm.c | 52 ++++++++++++++++++-----------------------------
> 1 file changed, 20 insertions(+), 32 deletions(-)
>
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index d8a0eb2aa5..c05039ab21 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -1289,14 +1289,6 @@ void put_page_from_l1e(l1_pgentry_t l1e, struct domain
> *l1e_owner)
> }
>
> #ifdef CONFIG_PV
> -static void put_data_page(struct page_info *page, bool writeable)
> -{
> - if ( writeable )
> - put_page_and_type(page);
> - else
> - put_page(page);
> -}
> -
> static int put_pt_page(struct page_info *pg, struct page_info *ptpg,
> unsigned int flags)
> {
> @@ -1319,6 +1311,20 @@ static int put_pt_page(struct page_info *pg, struct
> page_info *ptpg,
> return rc;
> }
>
> +static int put_data_pages(struct page_info *page, bool writeable, int
> pt_shift)
> +{
> + int i, count = 1 << (pt_shift - PAGE_SHIFT);
With both "int" here changed to "unsigned int"
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
But of course Andrew's objection needs addressing one way or another.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |