From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f66.google.com (mail-lf0-f66.google.com [209.85.215.66]) by dpdk.org (Postfix) with ESMTP id 7C4842C37 for ; Fri, 6 May 2016 22:08:23 +0200 (CEST) Received: by mail-lf0-f66.google.com with SMTP id u64so14446048lff.2 for ; Fri, 06 May 2016 13:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=2pfXKw92PmeHL7u1eBpGLhpxE+PWF902FFZzuyUTG0E=; b=aFk6Oqw19F7FChJT0KCM0VuNaqs4aT7x9gUrwLT6PKvokG3KMuCxjS9lmDbsBVnckb jiDxZseF35Q0uZK1s1CBur73sG6MPYigxu7ifOF3FqkODyAs0t/SQbZRJXZYf1zQks5v 6jQdlyIF9Y+10PD/6nQFHdbnuszXwP8XYmZgJ+ORMfLTGDSG0k9uI6qfaJoYE/3am+z5 qkkl9urW4LgZnznA5MHpdNA0nm2BU1E/EH2qTH5+o2fci9S3lMM0Icz2gapX5krocinh KSZUawE28+5ERVr0ESuwmpdx9/6Yjm0sRH00DALloe/bufddHaJZ/WUz0SwG9woYl4QC trdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=2pfXKw92PmeHL7u1eBpGLhpxE+PWF902FFZzuyUTG0E=; b=kfj/lxEOVLO2dEW7QZxrZ/cqMHQMZ6XJ9npYgqJkEnCa+hdzW+TqhSHDtNTCT/GLCG B62CU012Nq5RSOO6lQ0oRXLS6Apo90Ue0djc56kht8uysEwWFh+mMkS8mmLqRRqWLjhe CkqeLWpEILyJbSLKwBzQxWShpxC4uNlF02dbDSKt3T/7zXEaRerkNue+PnxIAPeComuT SRDt53GJXs1rmeUhRsaJXOrlUrtfOrUDnIf9AIJrP8OKeSuQr/XxRbKY+a7eiWwodLRk xk/gytXn+tJZYA+KSNCL8dmAi0VeR0lv5UMn6SR/EN+nxVb0tSL+6jhxHJ+SvUyJ10uP 4Fmw== X-Gm-Message-State: AOPr4FWbRgFcVC7HNrJyIXfrCH67S5dsNGU06i2eU6i96HkIMga7crAh5PcIxDDOXU7MEFyXZ1OQ8PgqoXcv2Q== MIME-Version: 1.0 X-Received: by 10.25.23.86 with SMTP id n83mr10825774lfi.159.1462565303099; Fri, 06 May 2016 13:08:23 -0700 (PDT) Received: by 10.25.15.207 with HTTP; Fri, 6 May 2016 13:08:23 -0700 (PDT) In-Reply-To: References: Date: Fri, 6 May 2016 13:08:23 -0700 Message-ID: From: Vincent Li To: "Xie, Huawei" Cc: "dev@dpdk.org" , Thomas Monjalon Content-Type: text/plain; charset=UTF-8 Subject: Re: [dpdk-dev] virtio still blindly take over virtio device managed by kernel X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2016 20:08:23 -0000 yes, above changes fixes my issue. On Fri, May 6, 2016 at 1:30 AM, Xie, Huawei wrote: > On 5/5/2016 12:21 AM, Vincent Li wrote: >> Hi, >> >> I am running the dpdk git repo which already had commit ac5e1d838dc >> (virtio: skip error when probing kernel managed device), but in my >> test, it seems still taking control of the kernel managed virtio >> device and segmentation fault, here is the example: >> >> # ./tools/dpdk_nic_bind.py --status >> >> Network devices using DPDK-compatible driver >> ============================================ >> 0000:00:07.0 'Virtio network device' drv=igb_uio unused= >> 0000:00:08.0 'Virtio network device' drv=igb_uio unused= >> >> Network devices using kernel driver >> =================================== >> 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio >> >> #./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -- -i >> EAL: Detected 4 lcore(s) >> EAL: Probing VFIO support... >> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >> unreliable clock cycles ! >> EAL: PCI device 0000:00:03.0 on NUMA socket -1 >> EAL: probe driver: 1af4:1000 rte_virtio_pmd >> PMD: vtpci_init(): trying with legacy virtio pci. >> Segmentation fault (core dumped) > > Hi Vincent: > Could you try this? > Weird. I had tested by binding the virtio nic with different kernel > drivers including unbinding any drivers when submitting patches. But i > find that it doesn't work even with that commit. > So dev->devargs could be NULL. > > If it works for you, i will submit the fix. > > diff --git a/drivers/net/virtio/virtio_pci.c > b/drivers/net/virtio/virtio_pci.c > index 45edecc..8aeb44a 100644 > --- a/drivers/net/virtio/virtio_pci.c > +++ b/drivers/net/virtio/virtio_pci.c > @@ -650,7 +650,8 @@ vtpci_init(struct rte_pci_device *dev, struct > virtio_hw *hw) > PMD_INIT_LOG(INFO, "trying with legacy virtio pci."); > if (legacy_virtio_resource_init(dev, hw) < 0) { > if (dev->kdrv == RTE_KDRV_UNKNOWN && > - dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI) { > + (!dev->devargs || > + dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI)){ > PMD_INIT_LOG(INFO, > "skip kernel managed virtio device."); > return 1; > > >> >> if I blacklist 0000:00:03.0 from testpmd, testpmd works: >> >> # ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -b 0000:00:03.0 -- -i >> EAL: Detected 4 lcore(s) >> EAL: Probing VFIO support... >> EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using >> unreliable clock cycles ! >> EAL: PCI device 0000:00:03.0 on NUMA socket -1 >> EAL: PCI device 0000:00:07.0 on NUMA socket -1 >> EAL: probe driver: 1af4:1000 rte_virtio_pmd >> PMD: virtio_read_caps(): no modern virtio pci device found. >> PMD: vtpci_init(): trying with legacy virtio pci. >> EAL: PCI device 0000:00:08.0 on NUMA socket -1 >> EAL: probe driver: 1af4:1000 rte_virtio_pmd >> PMD: virtio_read_caps(): no modern virtio pci device found. >> PMD: vtpci_init(): trying with legacy virtio pci. >> Interactive-mode selected >> Configuring Port 0 (socket 0) >> rte_eth_dev_config_restore: port 0: MAC address array not supported >> Port 0: 52:54:00:EA:6E:3E >> Configuring Port 1 (socket 0) >> rte_eth_dev_config_restore: port 1: MAC address array not supported >> Port 1: 52:54:00:24:06:DB >> Checking link statuses... >> Port 0 Link Up - speed 10000 Mbps - full-duplex >> Port 1 Link Up - speed 10000 Mbps - full-duplex >> Done >> testpmd> >> >