Re: [PATCH 5/7] mm/hmm: use a structure for update callback parameters

From: Balbir Singh
Date: Thu Aug 30 2018 - 19:11:57 EST


On Fri, Aug 24, 2018 at 03:25:47PM -0400, jglisse@xxxxxxxxxx wrote:
> From: Jérôme Glisse <jglisse@xxxxxxxxxx>
>
> Use a structure to gather all the parameters for the update callback.
> This make it easier when adding new parameters by avoiding having to
> update all callback function signature.
>
> Signed-off-by: Jérôme Glisse <jglisse@xxxxxxxxxx>
> Cc: Ralph Campbell <rcampbell@xxxxxxxxxx>
> Cc: John Hubbard <jhubbard@xxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
> include/linux/hmm.h | 25 +++++++++++++++++--------
> mm/hmm.c | 27 ++++++++++++++-------------
> 2 files changed, 31 insertions(+), 21 deletions(-)
>
> diff --git a/include/linux/hmm.h b/include/linux/hmm.h
> index 1ff4bae7ada7..a7f7600b6bb0 100644
> --- a/include/linux/hmm.h
> +++ b/include/linux/hmm.h
> @@ -274,13 +274,26 @@ static inline uint64_t hmm_pfn_from_pfn(const struct hmm_range *range,
> struct hmm_mirror;
>
> /*
> - * enum hmm_update_type - type of update
> + * enum hmm_update_event - type of update
> * @HMM_UPDATE_INVALIDATE: invalidate range (no indication as to why)
> */
> -enum hmm_update_type {
> +enum hmm_update_event {
> HMM_UPDATE_INVALIDATE,
> };
>
> +/*
> + * struct hmm_update - HMM update informations for callback
> + *
> + * @start: virtual start address of the range to update
> + * @end: virtual end address of the range to update
> + * @event: event triggering the update (what is happening)
> + */
> +struct hmm_update {
> + unsigned long start;
> + unsigned long end;
> + enum hmm_update_event event;
> +};
> +

I wonder if you want to add further information about the range,
like page_size, I guess the other side does not care about the
size. Do we care about sending multiple discontig ranges in
hmm_update? Should it be an array?

Balbir Singh