diff mbox

net: Remove duplicate data from query-rx-filter on multiqueue net devices

Message ID 1445259878-3921-1-git-send-email-vyasevic@redhat.com
State New
Headers show

Commit Message

Vlad Yasevich Oct. 19, 2015, 1:04 p.m. UTC
When responding to a query-rx-filter command on a multiqueue
netdev, qemu reports the data for each queue.  The data, however,
is not per-queue, but per device and the same data is reported
multiple times.  This causes confusion and may also cause extra
unnecessary processing when looking at the data.

Commit 638fb14169 (net: Make qmp_query_rx_filter() with name argument
more obvious) partially addresses this issue, by limiting the output
when the name is specified.  However, when the name is not specified,
the issue still persists.

Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
---
 net/net.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Jason Wang Oct. 20, 2015, 7:05 a.m. UTC | #1
On 10/19/2015 09:04 PM, Vladislav Yasevich wrote:
> When responding to a query-rx-filter command on a multiqueue
> netdev, qemu reports the data for each queue.  The data, however,
> is not per-queue, but per device and the same data is reported
> multiple times.  This causes confusion and may also cause extra
> unnecessary processing when looking at the data.
>
> Commit 638fb14169 (net: Make qmp_query_rx_filter() with name argument
> more obvious) partially addresses this issue, by limiting the output
> when the name is specified.  However, when the name is not specified,
> the issue still persists.
>
> Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
> ---
>  net/net.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/net/net.c b/net/net.c
> index 39af893..a8cfeba 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -1219,6 +1219,12 @@ RxFilterInfoList *qmp_query_rx_filter(bool has_name, const char *name,
>              continue;
>          }
>  
> +        /* only query information on queue 0 since the info is per nic,
> +         * not per queue
> +         */
> +        if (nc->queue_index != 0)
> +            continue;
> +
>          if (nc->info->query_rx_filter) {
>              info = nc->info->query_rx_filter(nc);
>              entry = g_malloc0(sizeof(*entry));

Applied in https://github.com/jasowang/qemu/commits/net

Thanks
diff mbox

Patch

diff --git a/net/net.c b/net/net.c
index 39af893..a8cfeba 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1219,6 +1219,12 @@  RxFilterInfoList *qmp_query_rx_filter(bool has_name, const char *name,
             continue;
         }
 
+        /* only query information on queue 0 since the info is per nic,
+         * not per queue
+         */
+        if (nc->queue_index != 0)
+            continue;
+
         if (nc->info->query_rx_filter) {
             info = nc->info->query_rx_filter(nc);
             entry = g_malloc0(sizeof(*entry));