From: Jason Gunthorpe <jgg@nvidia.com>
To: Brett Creeley <brett.creeley@amd.com>
Cc: kvm@vger.kernel.org, netdev@vger.kernel.org,
alex.williamson@redhat.com, yishaih@nvidia.com,
shameerali.kolothum.thodi@huawei.com, kevin.tian@intel.com,
simon.horman@corigine.com, shannon.nelson@amd.com
Subject: Re: [PATCH v13 vfio 1/7] vfio: Commonize combine_ranges for use in other VFIO drivers
Date: Fri, 4 Aug 2023 13:51:29 -0300 [thread overview]
Message-ID: <ZM0skSmMTNbfRrQ0@nvidia.com> (raw)
In-Reply-To: <20230725214025.9288-2-brett.creeley@amd.com>
On Tue, Jul 25, 2023 at 02:40:19PM -0700, Brett Creeley wrote:
> Currently only Mellanox uses the combine_ranges function. The
> new pds_vfio driver also needs this function. So, move it to
> a common location for other vendor drivers to use.
>
> Also, fix RCT ordering while moving/renaming the function.
>
> Cc: Yishai Hadas <yishaih@nvidia.com>
> Signed-off-by: Brett Creeley <brett.creeley@amd.com>
> Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
> Reviewed-by: Simon Horman <simon.horman@corigine.com>
> ---
> drivers/vfio/pci/mlx5/cmd.c | 48 +------------------------------------
> drivers/vfio/vfio_main.c | 47 ++++++++++++++++++++++++++++++++++++
> include/linux/vfio.h | 3 +++
> 3 files changed, 51 insertions(+), 47 deletions(-)
>
> diff --git a/drivers/vfio/pci/mlx5/cmd.c b/drivers/vfio/pci/mlx5/cmd.c
> index deed156e6165..7f6c51992a15 100644
> --- a/drivers/vfio/pci/mlx5/cmd.c
> +++ b/drivers/vfio/pci/mlx5/cmd.c
> @@ -732,52 +732,6 @@ void mlx5fv_cmd_clean_migf_resources(struct mlx5_vf_migration_file *migf)
> mlx5vf_cmd_dealloc_pd(migf);
> }
>
> -static void combine_ranges(struct rb_root_cached *root, u32 cur_nodes,
> - u32 req_nodes)
> -{
> - struct interval_tree_node *prev, *curr, *comb_start, *comb_end;
> - unsigned long min_gap;
> - unsigned long curr_gap;
> -
> - /* Special shortcut when a single range is required */
> - if (req_nodes == 1) {
> - unsigned long last;
> -
> - curr = comb_start = interval_tree_iter_first(root, 0, ULONG_MAX);
> - while (curr) {
> - last = curr->last;
> - prev = curr;
> - curr = interval_tree_iter_next(curr, 0, ULONG_MAX);
> - if (prev != comb_start)
> - interval_tree_remove(prev, root);
> - }
> - comb_start->last = last;
> - return;
> - }
> -
> - /* Combine ranges which have the smallest gap */
> - while (cur_nodes > req_nodes) {
> - prev = NULL;
> - min_gap = ULONG_MAX;
> - curr = interval_tree_iter_first(root, 0, ULONG_MAX);
> - while (curr) {
> - if (prev) {
> - curr_gap = curr->start - prev->last;
> - if (curr_gap < min_gap) {
> - min_gap = curr_gap;
> - comb_start = prev;
> - comb_end = curr;
> - }
> - }
> - prev = curr;
> - curr = interval_tree_iter_next(curr, 0, ULONG_MAX);
> - }
> - comb_start->last = comb_end->last;
> - interval_tree_remove(comb_end, root);
> - cur_nodes--;
> - }
> -}
> -
> static int mlx5vf_create_tracker(struct mlx5_core_dev *mdev,
> struct mlx5vf_pci_core_device *mvdev,
> struct rb_root_cached *ranges, u32 nnodes)
> @@ -800,7 +754,7 @@ static int mlx5vf_create_tracker(struct mlx5_core_dev *mdev,
> int i;
>
> if (num_ranges > max_num_range) {
> - combine_ranges(ranges, nnodes, max_num_range);
> + vfio_combine_iova_ranges(ranges, nnodes, max_num_range);
> num_ranges = max_num_range;
> }
>
> diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c
> index f0ca33b2e1df..3bde62f7e08b 100644
> --- a/drivers/vfio/vfio_main.c
> +++ b/drivers/vfio/vfio_main.c
> @@ -865,6 +865,53 @@ static int vfio_ioctl_device_feature_migration(struct vfio_device *device,
> return 0;
> }
>
> +void vfio_combine_iova_ranges(struct rb_root_cached *root, u32 cur_nodes,
> + u32 req_nodes)
> +{
It should really gain a kdoc now.
But the code is fine
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Jason
next prev parent reply other threads:[~2023-08-04 16:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-25 21:40 [PATCH v13 vfio 0/7] pds-vfio-pci driver Brett Creeley
2023-07-25 21:40 ` [PATCH v13 vfio 1/7] vfio: Commonize combine_ranges for use in other VFIO drivers Brett Creeley
2023-08-04 16:51 ` Jason Gunthorpe [this message]
2023-07-25 21:40 ` [PATCH v13 vfio 2/7] vfio/pds: Initial support for pds VFIO driver Brett Creeley
2023-07-25 21:40 ` [PATCH v13 vfio 3/7] vfio/pds: register with the pds_core PF Brett Creeley
2023-07-31 20:57 ` Alex Williamson
2023-08-01 15:44 ` Brett Creeley
2023-08-04 17:03 ` Jason Gunthorpe
2023-08-04 17:23 ` Brett Creeley
2023-08-04 19:21 ` Brett Creeley
2023-08-04 22:42 ` Jason Gunthorpe
2023-08-07 17:28 ` Brett Creeley
2023-07-25 21:40 ` [PATCH v13 vfio 4/7] vfio/pds: Add VFIO live migration support Brett Creeley
2023-07-25 21:40 ` [PATCH v13 vfio 5/7] vfio/pds: Add support for dirty page tracking Brett Creeley
2023-08-03 12:43 ` Shameerali Kolothum Thodi
2023-08-03 19:53 ` Brett Creeley
2023-07-25 21:40 ` [PATCH v13 vfio 6/7] vfio/pds: Add support for firmware recovery Brett Creeley
2023-08-04 17:18 ` Jason Gunthorpe
2023-08-04 17:34 ` Brett Creeley
2023-08-04 18:03 ` Jason Gunthorpe
2023-08-04 18:50 ` Brett Creeley
2023-08-10 3:46 ` Tian, Kevin
2023-07-25 21:40 ` [PATCH v13 vfio 7/7] vfio/pds: Add Kconfig and documentation Brett Creeley
2023-07-26 13:35 ` [PATCH v13 vfio 0/7] pds-vfio-pci driver Jason Gunthorpe
2023-07-26 18:50 ` Alex Williamson
2023-07-26 19:05 ` Brett Creeley
2023-07-26 19:25 ` Alex Williamson
2023-08-03 8:28 ` Simon Horman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZM0skSmMTNbfRrQ0@nvidia.com \
--to=jgg@nvidia.com \
--cc=alex.williamson@redhat.com \
--cc=brett.creeley@amd.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=shannon.nelson@amd.com \
--cc=simon.horman@corigine.com \
--cc=yishaih@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.