DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ranjit Menon <ranjit.menon@intel.com>
To: Dmitry Kozlyuk <dmitry.kozliuk@gmail.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: Tue, 18 Feb 2020 13:44:30 -0800	[thread overview]
Message-ID: <13c23300-f41f-4e9a-c830-a81ace3593c8@intel.com> (raw)
In-Reply-To: <20200217041424.22afb6dc@Sovereign>

On 2/16/2020 5:14 PM, Dmitry Kozlyuk wrote:
> 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.
>
Oh boy! If DriverEntry() is not being called, the loader is finding something wrong and is unable to load the driver.

@Harini: Can Jeffrey (@MS) help here?

thanks,

Ranjit



  reply	other threads:[~2020-02-18 21:44 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
2020-02-18 21:44       ` Ranjit Menon [this message]
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=13c23300-f41f-4e9a-c830-a81ace3593c8@intel.com \
    --to=ranjit.menon@intel.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=harini.ramakrishnan@microsoft.com \
    --cc=pallavi.kadam@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).