DPDK patches and discussions
 help / color / mirror / Atom feed
From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
To: Ranjit Menon <ranjit.menon@intel.com>
Cc: Pallavi Kadam <pallavi.kadam@intel.com>,
	Harini Ramakrishnan <harini.ramakrishnan@microsoft.com>,
	dev@dpdk.org
Subject: Re: [dpdk-dev] Windows Draft Build
Date: Mon, 17 Feb 2020 04:14:24 +0300	[thread overview]
Message-ID: <20200217041424.22afb6dc@Sovereign> (raw)
In-Reply-To: <20200210091426.17b215db@Sovereign>

Hi,

> "Dpdk.sln" builds OK, will try launching sample apps
> a bit later.

Netuio driver consistently fails to install on Windows 10 in QEMU with
virtio-net (modern interface). Described below is my attempt to install the
driver from clean "windpdk-v18.08-clang" branch of "dpdk-draft-windows" repo.
The only change is hardware ID in INF file. What am I doing wrong here?

1. QEMU version: 4.2.0

QEMU command line:

    qemu-system-x86_64 \
        -enable-kvm \
        -cpu host -smp 'cores=4,sockets=1,threads=1' \
        -m 6G \
        -drive "file=$disk,format=qcow2" \
        -nic "user,id=winnet,model=e1000,smb=$HOME/src/dpdk" \
        -netdev 'socket,listen=:10000,id=dp0' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp0' \
        -netdev 'socket,listen=:10001,id=dp1' -device 'virtio-net-pci,disable-modern=off,disable-legacy=on,netdev=dp1' \
        \
        -vga qxl


2. Loading unsigned drivers is enabled as follows:

     Microsoft Windows [Version 10.0.18363.418]
     (c) 2019 Microsoft Corporation. All rights reserved.

     Z:\>bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS
     The operation completed successfully.

     Z:\>bcdedit.exe -set TESTSIGNING ON
     The operation completed successfully.

     Z:\>shutdown -r -t 0

After that, the desktop message shows:

     Test Mode
     Windows 10 Pro
     Build 18362.19h1_release.190318-1202

Including this step FTR, it works for other drivers.


3. Device status (no conflicting drivers):

     The drivers for this device are not installed. (Code 28)

     There are no compatible drivers for this device.


     To find a driver for this device, click Update Driver.

Device event log (note the hardware ID part):

     Device PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01\3&13c0b0c5&0&20
     requires further installation.


4. INF file is modified to include corresponding hardware ID:

diff --git a/kernel/windows/netuio/netuio.inf b/kernel/windows/netuio/netuio.inf
index b1696cc50..b6fd2c798 100644
--- a/kernel/windows/netuio/netuio.inf
+++ b/kernel/windows/netuio/netuio.inf
@@ -55,6 +55,7 @@ DriverVer=
 %F158B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_158B   ; I40E_DEV_ID_25G_SFP28
 %F37D0.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_37D0
 %F153B.netuio.Description%=netuio_Device, PCI\VEN_8086&DEV_153B
+%virtio.netuio.Description%=netuio_Device, PCI\VEN_1AF4&DEV_1041&SUBSYS_11001AF4&REV_01
 
 [netuio_Device.NT]
 CopyFiles=Drivers_Dir
@@ -121,5 +122,6 @@ F158A.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XX
 F158B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Network Adapter XXV710-DA1"
 F37D0.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection X722"
 F153B.netuio.Description = "DPDK netUIO for Intel(R) Ethernet Connection I217-V"
+virtio.netuio.Description = "DPDK netUIO for virtio-net (modern)"
 netuio.DeviceDesc = "netuio Device"
 netuio.SVCDESC = "netuio Service"


5. Installation command fails after waiting for several minutes:

     Z:\>pnputil /add-driver Z:\windows\x64\Debug\netuio\netuio\netuio.inf /install
     Microsoft PnP Utility

     Adding driver package:  netuio.inf
     Driver package added successfully.
     Published Name:         oem2.inf
     Unable to install driver package: This operation returned because the timeout period expired.

     Total driver packages:  1
     Added driver packages:  0

     Z:\>

Please find "C:\Windows\INF\setupapi.dev.log" attached as "clean_setupapi.dev.log".
Using devcon.exe from DDK yields similar result and log.

I also tried to add event tracing to the driver, but the driver doesn't even
get loaded, that is, DriverEntry is never called, so the cause shouldn't be
in driver code.


> I'm planning to use QEMU and virtio PMD (modern interface,
> because legacy uses PIO, which is not implemented by netuio) by adding a
> project similar to existing "librte_pmd_i40e".

Also tried doing this, attaching patches. Got the same result.

I start every new attempt to install a driver variant from clean system
restored from disk snapshot. "Userpci" driver from my port installs and binds
OK, so this is not an QEMU/Windows incompatibility issue.

-- 
Dmitry Kozlyuk

  reply	other threads:[~2020-02-17  1:14 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-08  8:45 Dmitry Kozlyuk
2020-02-10  5:03 ` Ranjit Menon
2020-02-10  6:14   ` Dmitry Kozlyuk
2020-02-17  1:14     ` Dmitry Kozlyuk [this message]
2020-02-18 21:44       ` Ranjit Menon
2020-02-25  2:37         ` Dmitry Kozlyuk
2020-02-25  9:06           ` Ranjit Menon
2020-02-26  6:22             ` Dmitry Kozlyuk
2020-02-27  4:11               ` Dmitry Kozlyuk
2020-02-27 15:25                 ` William Tu
2020-02-27 15:42                   ` David Marchand
2020-02-28  6:07                 ` [dpdk-dev] [RFC PATCH 0/5] virtio-net support for Windows draft Dmitry Kozlyuk
2020-02-28  6:07                   ` [dpdk-dev] [RFC PATCH 1/5] pci/windows: add stubs for port IO Dmitry Kozlyuk
2020-02-28  6:07                   ` [dpdk-dev] [RFC PATCH 2/5] net: add stub for RARP packet generation on Windows Dmitry Kozlyuk
2020-02-28  6:07                   ` [dpdk-dev] [RFC PATCH 3/5] pci/windows: split config I/O into series of fixed-size operations Dmitry Kozlyuk
2020-02-28  6:07                   ` [dpdk-dev] [RFC PATCH 4/5] netuio: change class for Net to custom Dmitry Kozlyuk
2020-02-28  6:07                   ` [dpdk-dev] [RFC PATCH 5/5] mk/windows: add virtio-net PMD Dmitry Kozlyuk
2021-08-14 15:55                     ` William Tu
2021-08-14 17:00                       ` Dmitry Kozlyuk
2021-08-15 14:28                         ` William Tu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200217041424.22afb6dc@Sovereign \
    --to=dmitry.kozliuk@gmail.com \
    --cc=dev@dpdk.org \
    --cc=harini.ramakrishnan@microsoft.com \
    --cc=pallavi.kadam@intel.com \
    --cc=ranjit.menon@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).