From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D7DE8A0C56; Wed, 8 Sep 2021 14:01:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 697B340DF7; Wed, 8 Sep 2021 14:01:30 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id D733B40DF4 for ; Wed, 8 Sep 2021 14:01:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1631102488; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YzfImJpSzdwXyXXYwBaBF9/MeA7MyNyFCfSmhrz3aMc=; b=h6Xw6m7zFoEqphAEFIp8reeC1Ja5lRIjs97oRXJoyyV3utkV8w2puoc+7Tp5LmbPfOodOX NZ/vlbMZEsWyp1cIm4CyW8px64UsJIXH3aC9scI/fJLkjFjh9lFoYwLR6W4UtYS4UKHsJL HMFTn+PfeCznrVNzbWqRVuDihTvb0ag= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-518-GZmt93YKO7-8xXQg98mndw-1; Wed, 08 Sep 2021 08:01:27 -0400 X-MC-Unique: GZmt93YKO7-8xXQg98mndw-1 Received: by mail-wr1-f69.google.com with SMTP id u2-20020adfdd42000000b001579f5d6779so437062wrm.8 for ; Wed, 08 Sep 2021 05:01:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:references:from:subject:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=YzfImJpSzdwXyXXYwBaBF9/MeA7MyNyFCfSmhrz3aMc=; b=dQhukyavLU8zSJw60+eM46INZM0Bu61FMyzA7K2KKegQekoQowfuQPSEVDSu7t5f6D wx0baw91sTQaHE3BWF5fZVT5szOhYBLDI1uKRnZXecYo5bWLH/ZkTjniCB1JkKN/ecOz E5iJo+6VgFl22QYwD+4pCPb+JYw8MjAI2bd7KNuJX5fB1+d8uPNz7WQHlS6sNfqUteAV ker7MDMOruqJMfEOf5iyVvwGAwg9fnngOdXCw1GPWKTdBvd1l4Y87Yh2lkOmvulApKFe 56a0UaI9UhIkNrDcTQanpN9DPyIUNOn1mPipcTTFOtXCvnKCTNUtgN8K62UJF44Yos6n eYnA== X-Gm-Message-State: AOAM531azs99hCWrSHiNWWKE+BrYnAx0YpD8FTGpU+ijExs3bg2nrAaJ S9UmqviUrHkgf409sCJktgotMYZyw22CyhT84Z36jn3uipn+9pd66CKNOFMIis4qUCaSYojUZqb eJBY= X-Received: by 2002:a05:600c:a4b:: with SMTP id c11mr3221172wmq.97.1631102485812; Wed, 08 Sep 2021 05:01:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwGwhoI3w0ZKr1rQGWnMeELT3AM5TkG4P79Ny+Zu/qpJo58egHssenHWQEMyxX9P+gnlRrvxw== X-Received: by 2002:a05:600c:a4b:: with SMTP id c11mr3221152wmq.97.1631102485591; Wed, 08 Sep 2021 05:01:25 -0700 (PDT) Received: from [192.168.0.36] ([78.18.26.217]) by smtp.gmail.com with ESMTPSA id m184sm1954568wmm.3.2021.09.08.05.01.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Sep 2021 05:01:24 -0700 (PDT) To: Chenbo Xia , dev@dpdk.org, maxime.coquelin@redhat.com Cc: changpeng.liu@intel.com, mdr@ashroe.eu References: <20210907025800.55680-1-chenbo.xia@intel.com> From: Kevin Traynor Message-ID: <202f3e82-39ad-86d7-3f8a-ab1787c4795c@redhat.com> Date: Wed, 8 Sep 2021 13:01:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210907025800.55680-1-chenbo.xia@intel.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH] vhost: promote some APIs to stable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 07/09/2021 03:58, Chenbo Xia wrote: > As reported by symbol bot, APIs listed in this patch have been > experimental for more than two years. This patch promotes these > 18 APIs to stable. > Patch lgtm. One question about a possible follow on below. Acked-by: Kevin Traynor > Signed-off-by: Chenbo Xia > --- > lib/vhost/rte_vhost.h | 13 ------------- > lib/vhost/rte_vhost_crypto.h | 5 ----- > lib/vhost/version.map | 36 ++++++++++++++++++------------------ > 3 files changed, 18 insertions(+), 36 deletions(-) > > diff --git a/lib/vhost/rte_vhost.h b/lib/vhost/rte_vhost.h > index 8d875e9322..fd372d5259 100644 > --- a/lib/vhost/rte_vhost.h > +++ b/lib/vhost/rte_vhost.h > @@ -342,7 +342,6 @@ rte_vhost_gpa_to_vva(struct rte_vhost_memory *mem, uint64_t gpa) > * @return > * the host virtual address on success, 0 on failure > */ > -__rte_experimental > static __rte_always_inline uint64_t > rte_vhost_va_from_guest_pa(struct rte_vhost_memory *mem, > uint64_t gpa, uint64_t *len) > @@ -522,7 +521,6 @@ int rte_vhost_driver_get_features(const char *path, uint64_t *features); > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_driver_set_protocol_features(const char *path, > uint64_t protocol_features); > @@ -537,7 +535,6 @@ rte_vhost_driver_set_protocol_features(const char *path, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_driver_get_protocol_features(const char *path, > uint64_t *protocol_features); > @@ -552,7 +549,6 @@ rte_vhost_driver_get_protocol_features(const char *path, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_driver_get_queue_num(const char *path, uint32_t *queue_num); > > @@ -768,7 +764,6 @@ int rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_get_vhost_ring_inflight(int vid, uint16_t vring_idx, > struct rte_vhost_ring_inflight *vring); > @@ -788,7 +783,6 @@ rte_vhost_get_vhost_ring_inflight(int vid, uint16_t vring_idx, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_set_inflight_desc_split(int vid, uint16_t vring_idx, > uint16_t idx); > @@ -811,7 +805,6 @@ rte_vhost_set_inflight_desc_split(int vid, uint16_t vring_idx, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_set_inflight_desc_packed(int vid, uint16_t vring_idx, > uint16_t head, uint16_t last, uint16_t *inflight_entry); > @@ -828,7 +821,6 @@ rte_vhost_set_inflight_desc_packed(int vid, uint16_t vring_idx, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_set_last_inflight_io_split(int vid, > uint16_t vring_idx, uint16_t idx); > @@ -848,7 +840,6 @@ rte_vhost_set_last_inflight_io_split(int vid, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_set_last_inflight_io_packed(int vid, > uint16_t vring_idx, uint16_t head); > @@ -867,7 +858,6 @@ rte_vhost_set_last_inflight_io_packed(int vid, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_clr_inflight_desc_split(int vid, uint16_t vring_idx, > uint16_t last_used_idx, uint16_t idx); > @@ -884,7 +874,6 @@ rte_vhost_clr_inflight_desc_split(int vid, uint16_t vring_idx, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_clr_inflight_desc_packed(int vid, uint16_t vring_idx, > uint16_t head); > @@ -965,7 +954,6 @@ rte_vhost_get_vring_base(int vid, uint16_t queue_id, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_get_vring_base_from_inflight(int vid, > uint16_t queue_id, uint16_t *last_avail_idx, uint16_t *last_used_idx); > @@ -1000,7 +988,6 @@ rte_vhost_set_vring_base(int vid, uint16_t queue_id, > * @return > * 0 on success, -1 on failure > */ > -__rte_experimental > int > rte_vhost_extern_callback_register(int vid, > struct rte_vhost_user_extern_ops const * const ops, void *ctx); > diff --git a/lib/vhost/rte_vhost_crypto.h b/lib/vhost/rte_vhost_crypto.h > index 8531757285..f54d731139 100644 > --- a/lib/vhost/rte_vhost_crypto.h > +++ b/lib/vhost/rte_vhost_crypto.h > @@ -58,7 +58,6 @@ rte_vhost_crypto_driver_start(const char *path); > * 0 if the Vhost Crypto Instance is created successfully. > * Negative integer if otherwise > */ > -__rte_experimental > int > rte_vhost_crypto_create(int vid, uint8_t cryptodev_id, > struct rte_mempool *sess_pool, > @@ -74,7 +73,6 @@ rte_vhost_crypto_create(int vid, uint8_t cryptodev_id, > * 0 if the Vhost Crypto Instance is created successfully. > * Negative integer if otherwise. > */ > -__rte_experimental > int > rte_vhost_crypto_free(int vid); > > @@ -89,7 +87,6 @@ rte_vhost_crypto_free(int vid); > * 0 if completed successfully. > * Negative integer if otherwise. > */ > -__rte_experimental > int > rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option); > > @@ -110,7 +107,6 @@ rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option); > * @return > * The number of fetched and processed vhost crypto request operations. > */ > -__rte_experimental > uint16_t > rte_vhost_crypto_fetch_requests(int vid, uint32_t qid, > struct rte_crypto_op **ops, uint16_t nb_ops); > @@ -132,7 +128,6 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid, > * @return > * The number of ops processed. > */ > -__rte_experimental > uint16_t > rte_vhost_crypto_finalize_requests(struct rte_crypto_op **ops, > uint16_t nb_ops, int *callfds, uint16_t *nb_callfds); > diff --git a/lib/vhost/version.map b/lib/vhost/version.map > index c92a9d4962..8ebde3f694 100644 > --- a/lib/vhost/version.map > +++ b/lib/vhost/version.map > @@ -13,6 +13,13 @@ DPDK_22 { > rte_vdpa_reset_stats; > rte_vdpa_unregister_device; > rte_vhost_avail_entries; > + rte_vhost_clr_inflight_desc_packed; > + rte_vhost_clr_inflight_desc_split; > + rte_vhost_crypto_create; > + rte_vhost_crypto_fetch_requests; > + rte_vhost_crypto_finalize_requests; > + rte_vhost_crypto_free; > + rte_vhost_crypto_set_zero_copy; > rte_vhost_dequeue_burst; > rte_vhost_driver_attach_vdpa_device; > rte_vhost_driver_callback_register; > @@ -20,13 +27,17 @@ DPDK_22 { > rte_vhost_driver_disable_features; > rte_vhost_driver_enable_features; > rte_vhost_driver_get_features; > + rte_vhost_driver_get_protocol_features; > + rte_vhost_driver_get_queue_num; > rte_vhost_driver_get_vdpa_device; > rte_vhost_driver_register; > rte_vhost_driver_set_features; > + rte_vhost_driver_set_protocol_features; > rte_vhost_driver_start; > rte_vhost_driver_unregister; > rte_vhost_enable_guest_notification; > rte_vhost_enqueue_burst; > + rte_vhost_extern_callback_register; > rte_vhost_get_ifname; > rte_vhost_get_log_base; > rte_vhost_get_mem_table; > @@ -35,15 +46,22 @@ DPDK_22 { > rte_vhost_get_numa_node; > rte_vhost_get_queue_num; > rte_vhost_get_vdpa_device; > + rte_vhost_get_vhost_ring_inflight; > rte_vhost_get_vhost_vring; > rte_vhost_get_vring_base; > + rte_vhost_get_vring_base_from_inflight; > rte_vhost_get_vring_num; > rte_vhost_gpa_to_vva; Can this ^^^ be also removed now that rte_vhost_va_from_guest_pa() is promoted to non-experimental? It is marked as deprecated in API (see below) but i don't see anything in the deprecation documentation. commit 9553e6e408883b3677e208dc66049bcd7f758529 Author: Maxime Coquelin Date: Wed Mar 14 17:31:25 2018 +0100 vhost: deprecate unsafe GPA translation API This patch marks rte_vhost_gpa_to_vva() as deprecated because it is unsafe. Application relying on this API should move to the new rte_vhost_va_from_guest_pa() API, and check returned length to avoid out-of-bound accesses. This issue has been assigned CVE-2018-1059. Signed-off-by: Maxime Coquelin > rte_vhost_host_notifier_ctrl; > rte_vhost_log_used_vring; > rte_vhost_log_write; > rte_vhost_rx_queue_count; > + rte_vhost_set_inflight_desc_packed; > + rte_vhost_set_inflight_desc_split; > + rte_vhost_set_last_inflight_io_packed; > + rte_vhost_set_last_inflight_io_split; > rte_vhost_set_vring_base; > + rte_vhost_va_from_guest_pa; > rte_vhost_vring_call; > > local: *; > @@ -52,25 +70,7 @@ DPDK_22 { > EXPERIMENTAL { > global: > > - rte_vhost_driver_get_protocol_features; > - rte_vhost_driver_get_queue_num; > - rte_vhost_crypto_create; > rte_vhost_crypto_driver_start; > - rte_vhost_crypto_free; > - rte_vhost_crypto_fetch_requests; > - rte_vhost_crypto_finalize_requests; > - rte_vhost_crypto_set_zero_copy; > - rte_vhost_va_from_guest_pa; > - rte_vhost_extern_callback_register; > - rte_vhost_driver_set_protocol_features; > - rte_vhost_set_inflight_desc_split; > - rte_vhost_set_inflight_desc_packed; > - rte_vhost_set_last_inflight_io_split; > - rte_vhost_set_last_inflight_io_packed; > - rte_vhost_clr_inflight_desc_split; > - rte_vhost_clr_inflight_desc_packed; > - rte_vhost_get_vhost_ring_inflight; > - rte_vhost_get_vring_base_from_inflight; > rte_vhost_slave_config_change; > rte_vhost_async_channel_register; > rte_vhost_async_channel_unregister; >