From nobody Wed May 14 20:56:21 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1522859427647459.893864031518; Wed, 4 Apr 2018 09:30:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5CAE78046B; Wed, 4 Apr 2018 16:30:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 322C8179E8; Wed, 4 Apr 2018 16:30:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E344D180BAD5; Wed, 4 Apr 2018 16:30:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w34GUMjX014671 for ; Wed, 4 Apr 2018 12:30:22 -0400 Received: by smtp.corp.redhat.com (Postfix) id 581EA81B42; Wed, 4 Apr 2018 16:30:22 +0000 (UTC) Received: from mx1.redhat.com (ext-mx07.extmail.prod.ext.phx2.redhat.com [10.5.110.31]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5052080F93 for ; Wed, 4 Apr 2018 16:30:18 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4032AC036778 for ; Wed, 4 Apr 2018 16:30:17 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id v18-v6so12777158ply.12 for ; Wed, 04 Apr 2018 09:30:17 -0700 (PDT) Received: from hyd1jrana-dt.caveonetworks.com.com ([115.113.156.2]) by smtp.googlemail.com with ESMTPSA id g127sm4059474pgc.6.2018.04.04.09.30.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 04 Apr 2018 09:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YPMCA0O/rY/mp2hLQ4c9lB5JGkaQBNqboxESKtxn5bo=; b=R6w4l6gT9G1XkXXw9UdqkXBF1yAImdXqEshhzzOV12QbgQeRpBXKWw4bKsk6AId0N1 ZKqp+nombuLfU1BZ+9eXPbGdjbSlUkdEp9pmOdIqDStToM/U/H3fawj05eiW1d+kUtgD dvrZ58E5Te+7FbMU0vmh8dqgM69H45VIvvug8V2OfDGSfMRofgKAi9GlQxIOzs4jE4E2 a1+GZhG+0VX9BU/xmcyogBsj6zPieBQzDdGWvETwBx44NosTFfCxJHfsD+JtgLkjZPeZ YpNRxXzH7u4wQvo9/noHXQ01Q2MBJqn5L23eNdYDKEVBV/p9syCGNKE0+Zg70AvBOTqw Avwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YPMCA0O/rY/mp2hLQ4c9lB5JGkaQBNqboxESKtxn5bo=; b=XKjvBrgspy1dll1YXGvL/OTty9+OrjB0SSd5bUuXbC/03MU0eguiparm8Dg2vTyn18 s5eaFUMP8dtU0d7D1LFTj1vNtvXSLUiBZ32JQqsWyjUSqjWasDKvfg1walM2EkkQ32RN q7HmQLskwcuEmv3mrHCn5ArSIw9pOf1HXNDMzt694OrDsGPF7VsptyLZR8+2HgKZVpIo cb4amOFAN4/ACFW/awY1d6pY0pUm4hzzAaRAQ8CuKaJXG0o6Oxyna5+wCNAhpTmgisjG mBRIO1KRZqR8pi1DmvUHF8YKdyPOBqIX8AxRIsiEOYxjig6zGVyfTajODDJcIPWYyX+O UQtA== X-Gm-Message-State: AElRT7G3ki3gjDZnQB1zQOwbst4VXIeyc8eoO+MzDre7Q38qahsEfeYi dnb6ipMdvuUvwCkowGXaB1cAWA== X-Google-Smtp-Source: AIpwx4/OA4JEuHMgjz8Ec9EsK7YiEWNbmPDepQDwVoVg6mA+SlKFKp3LHKMfB+vn18rM30fhe797tA== X-Received: by 2002:a17:902:3001:: with SMTP id u1-v6mr19623171plb.164.1522859416458; Wed, 04 Apr 2018 09:30:16 -0700 (PDT) From: Jai Singh Rana X-Google-Original-From: Jai Singh Rana To: libvir-list@redhat.com Date: Wed, 4 Apr 2018 21:59:27 +0530 Message-Id: <20180404162927.16210-3-JaiSingh.Rana@cavium.com> In-Reply-To: <20180404162927.16210-1-JaiSingh.Rana@cavium.com> References: <20180404162927.16210-1-JaiSingh.Rana@cavium.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 04 Apr 2018 16:30:17 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 04 Apr 2018 16:30:17 +0000 (UTC) for IP:'209.85.160.66' DOMAIN:'mail-pl0-f66.google.com' HELO:'mail-pl0-f66.google.com' FROM:'jai.rana@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.13 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 209.85.160.66 mail-pl0-f66.google.com 209.85.160.66 mail-pl0-f66.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.31 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: JaiSingh.Rana@cavium.com Subject: [libvirt] [PATCH v3 2/2] qemu: conf: Network stats support for VF Representors X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 04 Apr 2018 16:30:26 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In case of pci SR-IOV device with interface_type as 'hostdev', return network stats if it has a VF Representor interface on host for pci SR-IOV device according to switchdev model. --- v3 includes changes based on v2's[1] feedback and suggestions. Includes fix for hostdev to net mapping in a given domain. [1] https://www.redhat.com/archives/libvir-list/2018-February/msg00563.html docs/news.xml | 9 +++++++++ src/conf/domain_conf.c | 15 +++++++++++++++ src/qemu/qemu_driver.c | 33 +++++++++++++++++++++++++++++---- 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/docs/news.xml b/docs/news.xml index 87f52e83e..04c18495f 100644 --- a/docs/news.xml +++ b/docs/news.xml @@ -47,6 +47,15 @@ supported. In fact, kernel has been supporting this since 4.10. + + + qemu: Support interface network stats for VF Representors + + + Interface network stats are supported now for SR-IOV device(host= dev) + if this interface has VF representor on host in switchdev mode. + +
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index ef16431aa..50813701c 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -56,6 +56,7 @@ #include "virsecret.h" #include "virstring.h" #include "virnetdev.h" +#include "virnetdevhostdev.h" #include "virnetdevmacvlan.h" #include "virhostdev.h" #include "virmdev.h" @@ -28264,12 +28265,26 @@ virDomainNetFindByName(virDomainDefPtr def, const char *ifname) { size_t i; + size_t j; =20 for (i =3D 0; i < def->nnets; i++) { if (STREQ_NULLABLE(ifname, def->nets[i]->ifname)) return def->nets[i]; } =20 + /* Give a try to hostdev */ + for (i =3D 0; i < def->nhostdevs; i++) { + if (virNetdevHostdevCheckVFRIfName(def->hostdevs[i], ifname)) { + for (j =3D 0; j < def->nnets; j++) { + if (def->nets[j]->type !=3D VIR_DOMAIN_NET_TYPE_HOSTDEV) + continue; + if (memcmp(def->hostdevs[i], &def->nets[j]->data.hostdev, + sizeof(virDomainHostdevDef)) =3D=3D 0) + return def->nets[j]; + } + } + } + return NULL; } =20 diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5c31dfdd5..f2f9d290b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -66,6 +66,7 @@ #include "virbuffer.h" #include "virhostcpu.h" #include "virhostmem.h" +#include "virnetdevhostdev.h" #include "virnetdevtap.h" #include "virnetdevopenvswitch.h" #include "capabilities.h" @@ -11156,6 +11157,11 @@ qemuDomainInterfaceStats(virDomainPtr dom, if (virDomainNetGetActualType(net) =3D=3D VIR_DOMAIN_NET_TYPE_VHOSTUSE= R) { if (virNetDevOpenvswitchInterfaceStats(net->ifname, stats) < 0) goto cleanup; + } else if (virDomainNetGetActualType(net) =3D=3D VIR_DOMAIN_NET_TYPE_H= OSTDEV) { + if (virNetdevHostdevVFRIfStats(device, stats, + !virDomainNetTypeSharesHostView(net= )) + < 0) + goto cleanup; } else { if (virNetDevTapInterfaceStats(net->ifname, stats, !virDomainNetTypeSharesHostView(net= )) < 0) @@ -19818,6 +19824,7 @@ qemuDomainGetStatsInterface(virQEMUDriverPtr driver= ATTRIBUTE_UNUSED, { size_t i; struct _virDomainInterfaceStats tmp; + char *vf_ifname =3D NULL; int ret =3D -1; =20 if (!virDomainObjIsActive(dom)) @@ -19830,21 +19837,39 @@ qemuDomainGetStatsInterface(virQEMUDriverPtr driv= er ATTRIBUTE_UNUSED, virDomainNetDefPtr net =3D dom->def->nets[i]; virDomainNetType actualType; =20 - if (!net->ifname) + actualType =3D virDomainNetGetActualType(net); + + if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_HOSTDEV) { + vf_ifname =3D virNetdevHostdevGetVFRIfName(dom->def->hostdevs[= i]); + if (!vf_ifname) + continue; + } + else if (!net->ifname) continue; =20 memset(&tmp, 0, sizeof(tmp)); =20 - actualType =3D virDomainNetGetActualType(net); =20 - QEMU_ADD_NAME_PARAM(record, maxparams, - "net", "name", i, net->ifname); + if (actualType !=3D VIR_DOMAIN_NET_TYPE_HOSTDEV) + QEMU_ADD_NAME_PARAM(record, maxparams, + "net", "name", i, net->ifname); + else + QEMU_ADD_NAME_PARAM(record, maxparams, + "net", "name", i, vf_ifname); =20 if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_VHOSTUSER) { if (virNetDevOpenvswitchInterfaceStats(net->ifname, &tmp) < 0)= { virResetLastError(); continue; } + } else if (actualType =3D=3D VIR_DOMAIN_NET_TYPE_HOSTDEV) { + if (virNetdevHostdevVFRIfStats(vf_ifname, &tmp, + !virDomainNetTypeSharesHostView= (net)) < 0) { + VIR_FREE(vf_ifname); + virResetLastError(); + continue; + } + VIR_FREE(vf_ifname); } else { if (virNetDevTapInterfaceStats(net->ifname, &tmp, !virDomainNetTypeSharesHostView= (net)) < 0) { --=20 2.13.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list