vhost: mark vDPA driver API as internal

Message ID 20211028120329.44710-1-maxime.coquelin@redhat.com (mailing list archive)
State Superseded, archived
Delegated to: Maxime Coquelin
Headers
Series vhost: mark vDPA driver API as internal |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-x86_64-unit-testing fail Testing issues
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS

Commit Message

Maxime Coquelin Oct. 28, 2021, 12:03 p.m. UTC
  This patch marks the vDPA driver APIs as internal and
rename the corresponding header file.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/vdpa/ifc/ifcvf_vdpa.c            |  2 +-
 drivers/vdpa/mlx5/mlx5_vdpa.h            |  2 +-
 lib/vhost/meson.build                    |  4 +++-
 lib/vhost/vdpa.c                         |  2 +-
 lib/vhost/{rte_vdpa_dev.h => vdpa_dev.h} |  6 ++++++
 lib/vhost/version.map                    | 13 +++++++++----
 lib/vhost/vhost.h                        |  2 +-
 7 files changed, 22 insertions(+), 9 deletions(-)
 rename lib/vhost/{rte_vdpa_dev.h => vdpa_dev.h} (97%)
  

Comments

David Marchand Oct. 28, 2021, 12:38 p.m. UTC | #1
On Thu, Oct 28, 2021 at 2:03 PM Maxime Coquelin
<maxime.coquelin@redhat.com> wrote:
>
> This patch marks the vDPA driver APIs as internal and
> rename the corresponding header file.
>
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>  drivers/vdpa/ifc/ifcvf_vdpa.c            |  2 +-
>  drivers/vdpa/mlx5/mlx5_vdpa.h            |  2 +-
>  lib/vhost/meson.build                    |  4 +++-
>  lib/vhost/vdpa.c                         |  2 +-
>  lib/vhost/{rte_vdpa_dev.h => vdpa_dev.h} |  6 ++++++

It is more explicit it is a driver-only header if we rename as
vdpa_driver.h or vdpa_pmd.h.

[snip]

> @@ -86,3 +82,12 @@ EXPERIMENTAL {
>         rte_vhost_async_channel_unregister_thread_unsafe;
>         rte_vhost_clear_queue_thread_unsafe;
>  };
> +
> +INTERNAL {
> +       global;
> +
> +       rte_vdpa_register_device;
> +       rte_vdpa_unregister_device;
> +       rte_vhost_host_notifier_ctrl;
> +       rte_vdpa_relay_vring_used;
> +};

Alphabetical order, please.

Please also add a note in the release notes.

Strictly speaking, this is an announced API change.
Cc: techboard.


The rest lgtm.
Thanks.
  
Maxime Coquelin Oct. 28, 2021, 1 p.m. UTC | #2
On 10/28/21 14:38, David Marchand wrote:
> On Thu, Oct 28, 2021 at 2:03 PM Maxime Coquelin
> <maxime.coquelin@redhat.com> wrote:
>>
>> This patch marks the vDPA driver APIs as internal and
>> rename the corresponding header file.
>>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>> ---
>>   drivers/vdpa/ifc/ifcvf_vdpa.c            |  2 +-
>>   drivers/vdpa/mlx5/mlx5_vdpa.h            |  2 +-
>>   lib/vhost/meson.build                    |  4 +++-
>>   lib/vhost/vdpa.c                         |  2 +-
>>   lib/vhost/{rte_vdpa_dev.h => vdpa_dev.h} |  6 ++++++
> 
> It is more explicit it is a driver-only header if we rename as
> vdpa_driver.h or vdpa_pmd.h.

Agree, I can take the opportunity to rename it to vdpa_driver.h.

> [snip]
> 
>> @@ -86,3 +82,12 @@ EXPERIMENTAL {
>>          rte_vhost_async_channel_unregister_thread_unsafe;
>>          rte_vhost_clear_queue_thread_unsafe;
>>   };
>> +
>> +INTERNAL {
>> +       global;
>> +
>> +       rte_vdpa_register_device;
>> +       rte_vdpa_unregister_device;
>> +       rte_vhost_host_notifier_ctrl;
>> +       rte_vdpa_relay_vring_used;
>> +};
> 
> Alphabetical order, please.

Will do.

> Please also add a note in the release notes.
> 
> Strictly speaking, this is an announced API change.
> Cc: techboard.

Correct, I think we need a vote from the techboard.

@Techboard, this API change felt through the cracks.

Please note that the drivers APIs that are being marked as
internal were already moved in a dedicated header last year,
so any application are likely not using these APIs.
There is a patch for mlx5 vdpa that introduces a new entry
to struct rte_vdpa_dev_ops, so I think it would be better
to have these APIs marked as internal before mlx5 patch is
applied.

Thanks in advance,
Maxime

> 
> The rest lgtm.
> Thanks.
>
  

Patch

diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
index dd5251d382..b80825fcd8 100644
--- a/drivers/vdpa/ifc/ifcvf_vdpa.c
+++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
@@ -17,7 +17,7 @@ 
 #include <rte_bus_pci.h>
 #include <rte_vhost.h>
 #include <rte_vdpa.h>
-#include <rte_vdpa_dev.h>
+#include <vdpa_dev.h>
 #include <rte_vfio.h>
 #include <rte_spinlock.h>
 #include <rte_log.h>
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.h b/drivers/vdpa/mlx5/mlx5_vdpa.h
index cf4f384fa4..e2db6d432f 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.h
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.h
@@ -12,7 +12,7 @@ 
 #pragma GCC diagnostic ignored "-Wpedantic"
 #endif
 #include <rte_vdpa.h>
-#include <rte_vdpa_dev.h>
+#include <vdpa_dev.h>
 #include <rte_vhost.h>
 #ifdef PEDANTIC
 #pragma GCC diagnostic error "-Wpedantic"
diff --git a/lib/vhost/meson.build b/lib/vhost/meson.build
index 2d8fe0239f..6d2d061141 100644
--- a/lib/vhost/meson.build
+++ b/lib/vhost/meson.build
@@ -29,9 +29,11 @@  sources = files(
 )
 headers = files(
         'rte_vdpa.h',
-        'rte_vdpa_dev.h',
         'rte_vhost.h',
         'rte_vhost_async.h',
         'rte_vhost_crypto.h',
 )
+driver_sdk_headers = files(
+        'vdpa_dev.h',
+)
 deps += ['ethdev', 'cryptodev', 'hash', 'pci']
diff --git a/lib/vhost/vdpa.c b/lib/vhost/vdpa.c
index 6dd91859ac..778835e14e 100644
--- a/lib/vhost/vdpa.c
+++ b/lib/vhost/vdpa.c
@@ -17,7 +17,7 @@ 
 #include <rte_tailq.h>
 
 #include "rte_vdpa.h"
-#include "rte_vdpa_dev.h"
+#include "vdpa_dev.h"
 #include "vhost.h"
 
 /** Double linked list of vDPA devices. */
diff --git a/lib/vhost/rte_vdpa_dev.h b/lib/vhost/vdpa_dev.h
similarity index 97%
rename from lib/vhost/rte_vdpa_dev.h
rename to lib/vhost/vdpa_dev.h
index b0f494815f..2bdd12b3e1 100644
--- a/lib/vhost/rte_vdpa_dev.h
+++ b/lib/vhost/vdpa_dev.h
@@ -7,6 +7,8 @@ 
 
 #include <stdbool.h>
 
+#include <rte_compat.h>
+
 #include "rte_vhost.h"
 #include "rte_vdpa.h"
 
@@ -88,6 +90,7 @@  struct rte_vdpa_device {
  * @return
  *  vDPA device pointer on success, NULL on failure
  */
+__rte_internal
 struct rte_vdpa_device *
 rte_vdpa_register_device(struct rte_device *rte_dev,
 		struct rte_vdpa_dev_ops *ops);
@@ -100,6 +103,7 @@  rte_vdpa_register_device(struct rte_device *rte_dev,
  * @return
  *  device id on success, -1 on failure
  */
+__rte_internal
 int
 rte_vdpa_unregister_device(struct rte_vdpa_device *dev);
 
@@ -115,6 +119,7 @@  rte_vdpa_unregister_device(struct rte_vdpa_device *dev);
  * @return
  *  0 on success, -1 on failure
  */
+__rte_internal
 int
 rte_vhost_host_notifier_ctrl(int vid, uint16_t qid, bool enable);
 
@@ -132,6 +137,7 @@  rte_vhost_host_notifier_ctrl(int vid, uint16_t qid, bool enable);
  * @return
  *  number of synced used entries on success, -1 on failure
  */
+__rte_internal
 int
 rte_vdpa_relay_vring_used(int vid, uint16_t qid, void *vring_m);
 
diff --git a/lib/vhost/version.map b/lib/vhost/version.map
index 8ebde3f694..f3f1a3c93b 100644
--- a/lib/vhost/version.map
+++ b/lib/vhost/version.map
@@ -8,10 +8,7 @@  DPDK_22 {
 	rte_vdpa_get_rte_device;
 	rte_vdpa_get_stats;
 	rte_vdpa_get_stats_names;
-	rte_vdpa_register_device;
-	rte_vdpa_relay_vring_used;
 	rte_vdpa_reset_stats;
-	rte_vdpa_unregister_device;
 	rte_vhost_avail_entries;
 	rte_vhost_clr_inflight_desc_packed;
 	rte_vhost_clr_inflight_desc_split;
@@ -52,7 +49,6 @@  DPDK_22 {
 	rte_vhost_get_vring_base_from_inflight;
 	rte_vhost_get_vring_num;
 	rte_vhost_gpa_to_vva;
-	rte_vhost_host_notifier_ctrl;
 	rte_vhost_log_used_vring;
 	rte_vhost_log_write;
 	rte_vhost_rx_queue_count;
@@ -86,3 +82,12 @@  EXPERIMENTAL {
 	rte_vhost_async_channel_unregister_thread_unsafe;
 	rte_vhost_clear_queue_thread_unsafe;
 };
+
+INTERNAL {
+	global;
+
+	rte_vdpa_register_device;
+	rte_vdpa_unregister_device;
+	rte_vhost_host_notifier_ctrl;
+	rte_vdpa_relay_vring_used;
+};
diff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h
index 6c6a2da2c9..521a21b5b6 100644
--- a/lib/vhost/vhost.h
+++ b/lib/vhost/vhost.h
@@ -22,7 +22,7 @@ 
 
 #include "rte_vhost.h"
 #include "rte_vdpa.h"
-#include "rte_vdpa_dev.h"
+#include "vdpa_dev.h"
 
 #include "rte_vhost_async.h"