From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wright Subject: [PATCH] igb_uio: cap max VFs at 7 to reserve one for PF Date: Fri, 13 Jun 2014 10:51:37 -0700 Message-ID: <20140613175137.GS1384@x220.localdomain> References: <20140606235028.189345212@networkplumber.org> <2240300.rVk2eNDOWK@xps13> <20140613102440.19537123@nehalam.linuxnetplumber.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev-VfR2kkLFssw@public.gmane.org To: "Richardson, Bruce" , Stephen Hemminger Return-path: Content-Disposition: inline In-Reply-To: <20140613102440.19537123-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" To keep from confusing users, cap max VFs at 7, despite PCI SR-IOV config space showing a max of 8. This reserves a queue pair for the PF. This issue was cited here: http://dpdk.org/ml/archives/dev/2014-April/001832.html Cc: Bruce Richardson Cc: Stephen Hemminger Signed-off-by: Chris Wright --- This is what Linux kernel driver does. I have only compile tested it. Stephen sending to you and Bruce in case you want to Ack and add to your current queue. lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c index 6fa7396..d5db97a 100644 --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c @@ -139,6 +139,12 @@ store_max_vfs(struct device *dev, struct device_attribute *attr, if (0 != strict_strtoul(buf, 0, &max_vfs)) return -EINVAL; + /* reserve a queue pair for PF */ + if (max_vfs > 7) { + dev_warn(dev, "Maxixum of 7 VFs per PF, using max\n"); + max_vfs = 7; + } + if (0 == max_vfs) pci_disable_sriov(pdev); else if (0 == local_pci_num_vf(pdev))