From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <peterx@redhat.com>
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
 by dpdk.org (Postfix) with ESMTP id C21565A4F
 for <dev@dpdk.org>; Tue, 22 Dec 2015 04:50:47 +0100 (CET)
Received: from int-mx14.intmail.prod.int.phx2.redhat.com
 (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27])
 by mx1.redhat.com (Postfix) with ESMTPS id CA609E708C
 for <dev@dpdk.org>; Tue, 22 Dec 2015 03:50:46 +0000 (UTC)
Received: from pxdev.xzpeter.org (vpn1-6-183.pek2.redhat.com [10.72.6.183])
 by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id
 tBM3ogCY006587
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Mon, 21 Dec 2015 22:50:44 -0500
Date: Tue, 22 Dec 2015 11:50:41 +0800
From: Peter Xu <peterx@redhat.com>
To: DPDK Dev <dev@dpdk.org>
Message-ID: <20151222035041.GA7532@pxdev.xzpeter.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27
Subject: [dpdk-dev] [Question] How pmd virtio works without UIO?
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: Tue, 22 Dec 2015 03:50:48 -0000

Hi,

I got a question related to how virtio pmd driver work without
UIO layer.

I see that in virtio PMD driver, DPDK will first try to init the
device using UIO interfaces. If it fails, it will try to init by
manipulating IO ports directly (see virtio_resource_init()).

For the ioport case, is it okay to do it like this? E.g., in
eth_virtio_dev_init(), we are resetting the virtio device, however,
this device should still be owned by virtio-pci driver in the
kernel.

How is that working? Did I miss anything?

Thanks in advance.
Peter