From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <huawei.xie@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id BCB2B5AB7
 for <dev@dpdk.org>; Fri, 26 Feb 2016 18:47:43 +0100 (CET)
Received: from orsmga002.jf.intel.com ([10.7.209.21])
 by fmsmga103.fm.intel.com with ESMTP; 26 Feb 2016 09:47:42 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.22,498,1449561600"; d="scan'208";a="921875444"
Received: from dpdk15.sh.intel.com ([10.239.129.25])
 by orsmga002.jf.intel.com with ESMTP; 26 Feb 2016 09:47:39 -0800
From: Huawei Xie <huawei.xie@intel.com>
To: dev@dpdk.org
Date: Fri, 26 Feb 2016 09:53:52 +0800
Message-Id: <1456451636-118476-1-git-send-email-huawei.xie@intel.com>
X-Mailer: git-send-email 1.8.1.4
In-Reply-To: <20151222035041.GA7532@pxdev.xzpeter.org>
References: <20151222035041.GA7532@pxdev.xzpeter.org>
Cc: nikita.troitsky@intel.com
Subject: [dpdk-dev] [PATCH v4 0/4] fix the issue that DPDK takes over virtio
	device blindly
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Feb 2016 17:47:44 -0000

v4 changes:
 Rebase as IO port map is moved to EAL.
 Reword some commit messages.
 Don't fall back to PORT IO if VFIO/UIO fails.

v3 changes:
 Change log message to tell user that the virtio device is skipped
due to it is managed by kernel driver, instead of asking user to unbind
it from kernel driver.

v2 changes:
 Remove unnecessary assignment of NULL to dev->data->mac_addrs
 Ajust one comment's position
 change LOG level from ERR to INFO

virtio PMD doesn't set RTE_PCI_DRV_NEED_MAPPING in drv_flags of its
eth_driver. It will try igb_uio and PORT IO in turn to configure
virtio device. Even user in guest VM doesn't want to use virtio for
DPDK, virtio PMD will take over the device blindly.

The more serious problem is kernel driver is still managing the device,
which causes driver conflict.

This patch checks if there is kernel driver(other than UIO/VFIO)
managing the virtio device before virtio PMD uses port IO to configure
the device.

Huawei Xie (4):
  eal: make the comment more accurate
  eal: set kdrv to RTE_KDRV_NONE if kernel driver isn't managing the device.
  eal: call pci_ioport_map when kernel driver isn't managing the device
  virtio: return 1 to tell the upper layer we don't take over this device

 drivers/net/virtio/virtio_ethdev.c     |  9 +++++++--
 drivers/net/virtio/virtio_pci.c        | 15 ++++++++++++++-
 lib/librte_eal/common/eal_common_pci.c |  8 ++++----
 lib/librte_eal/linuxapp/eal/eal_pci.c  | 16 +++++++---------
 4 files changed, 32 insertions(+), 16 deletions(-)

-- 
1.8.1.4