All of lore.kernel.org
 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 [dpdk-dev] Windows Draft Build 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.