Message ID | 20211005170252.7-1-u9012063@gmail.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F2184A0C4C; Tue, 5 Oct 2021 19:03:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7C099413ED; Tue, 5 Oct 2021 19:03:21 +0200 (CEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mails.dpdk.org (Postfix) with ESMTP id 26D9B413DD for <dev@dpdk.org>; Tue, 5 Oct 2021 19:03:20 +0200 (CEST) Received: by mail-pl1-f171.google.com with SMTP id w14so2749665pll.2 for <dev@dpdk.org>; Tue, 05 Oct 2021 10:03:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XNjY8oJultXSIIZTZnU8YiRIkTQ2GeDrCv7BvJfNw7o=; b=aeIzmU7V8q8gu/FDPEYR7+PADav+JSCkkWcZSC3cW7Lnq7oVMsXEpSUYzAAD6B2RMd eoktndSNDlWngSfylkVFlSG79/VyqQlxFRa3qQV16UZUG7Sd13lqyPM1Frt0JRndVkyy trlG1F/iN0t5f+B+e/EKA1woogySjiL+BApPygjxjtUH5tZmbOUOcygec63fd8hIOOUD SF+6rgLauVyCp7uU2pRYgEXc8ZxsJC4nrlr0/BdrrKw4j2pOXKrJVb2FbTb6JnZz49Tg eO+rkuqJ80QxnTVQ6+jNcM17wHdarnXfe769sXUnDUrVI4OTXjS648nQVKr1AI1qV3z9 xPGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XNjY8oJultXSIIZTZnU8YiRIkTQ2GeDrCv7BvJfNw7o=; b=ItCWoVgB6ENGkBFN0GpMvmpJHzLaT+VQDejdsPFU6a4V8XpeNpFUVamviz5jZkLlDj T/w7IlXM03MKhf7LghZgV6M2jh0Xiu0wPCx70RxFUTMXJOc//v+S+OqXuJGqtiz4o8GW quEy0vV4ogR+Gv/uxfbUDgL9hPB89KdZPJuvMdeWfJUYZFPqD7iQHVZFQ+rv6h3M2jqL zkAu3LYKPH+M9YvsWvmjHLdeXbn1oLFARI87HZsWTgnoWFYmiKvD302M7S/YA8XU++Az DzOK60y1sZ1h9Q4p02SxShc45PNI0KnVXnUnWfymIfpg4bt9CkcF7Evc1MUyMDM+bZP4 IFzw== X-Gm-Message-State: AOAM531uiNj8spkuUWToRZm2ND9QxGNK+wfh1f86R4DoA0NqoU3wvAOb d0km447Cw86a0JaSH2vC94idir2nxCE= X-Google-Smtp-Source: ABdhPJyrj6LQIE6QuJ58s+rM8Xw/wPiHKkIek/vm5iA7qALy/jk8GsXrCeYemmlWhiSqRR7BZwR3SQ== X-Received: by 2002:a17:90a:a78f:: with SMTP id f15mr5123878pjq.106.1633453398695; Tue, 05 Oct 2021 10:03:18 -0700 (PDT) Received: from localhost.localdomain (ec2-44-237-21-18.us-west-2.compute.amazonaws.com. [44.237.21.18]) by smtp.gmail.com with ESMTPSA id p18sm17987861pgk.28.2021.10.05.10.03.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Oct 2021 10:03:17 -0700 (PDT) From: William Tu <u9012063@gmail.com> To: dev@dpdk.org Cc: Dmitry.Kozliuk@gmail.com Date: Tue, 5 Oct 2021 17:02:48 +0000 Message-Id: <20211005170252.7-1-u9012063@gmail.com> X-Mailer: git-send-email 2.33.0.windows.2 In-Reply-To: <20211002003344.594-1-u9012063@gmail.com> References: <20211002003344.594-1-u9012063@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v4 0/4] net/ixgbe: build on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
net/ixgbe: build on Windows
|
|
Message
William Tu
Oct. 5, 2021, 5:02 p.m. UTC
This patch enables building the ixgbe driver for Windows. It also enables its dependencies on security and cryptodev. I tested on AWS using ixgbe VF device, using dpdk-testpmd. Tal Shnaiderman (3): security: use the net library for IP structs security: build on Windows cryptodev: build on Windows William Tu (1): net/ixgbe: build on Windows --- v4: * fix mingw build by defining the IPPROTO_SCTP if needed * simplify the meson file * change patch title, rebase to main v3: * I include Tal's patch series due to some fixes. * apply on master, after commit f1f6ebc0eaf6 ("eal: remove sys/queue.h from public headers") ixgbe needs to add "include <sys/queue.h>" * For "cryptodev: build on Windows", need to add "include <sys/queue.h>" * For "security: build on Windows", remove unresolved external symbols, reported by Pallavi at: http://inbox.dpdk.org/dev/CALDO+SZ-iL4jhcSZPZZKkbY+dTa1OP+dGKZs86iRE6b2pUsvBw@mail.gmail.com/T/#m0160fb800fe8e8d83624f3bdb39a01b7ef9b5f35 v2: * add dependencies on cryptodev and security * add #include <rte_ip.h>, instead of doing #ifndef RTE_EXEC_ENV_WINDOWS #include <netinet/in.h> #else #include <Ws2tcpip.h> #endif however, including rte_ip.h requires including another set of dependent headers, see the drivers/net/ixgbe/base/meson.build drivers/net/ixgbe/base/ixgbe_hv_vf.c | 1 + drivers/net/ixgbe/base/ixgbe_osdep.h | 9 +++++++++ drivers/net/ixgbe/base/meson.build | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 1 + drivers/net/ixgbe/ixgbe_flow.c | 2 +- drivers/net/ixgbe/ixgbe_tm.c | 2 +- drivers/net/ixgbe/meson.build | 6 ------ lib/cryptodev/cryptodev_pmd.c | 2 ++ lib/cryptodev/rte_cryptodev.c | 1 - lib/cryptodev/version.map | 2 -- lib/meson.build | 2 ++ lib/net/rte_ip.h | 1 + lib/security/meson.build | 2 +- lib/security/rte_security.h | 5 +---- lib/security/version.map | 3 --- 16 files changed, 22 insertions(+), 21 deletions(-)
Comments
Hello William, On Tue, Oct 5, 2021 at 7:03 PM William Tu <u9012063@gmail.com> wrote: > > This patch enables building the ixgbe driver for Windows. > It also enables its dependencies on security and cryptodev. > I tested on AWS using ixgbe VF device, using dpdk-testpmd. > > Tal Shnaiderman (3): > security: use the net library for IP structs > security: build on Windows > cryptodev: build on Windows > > William Tu (1): > net/ixgbe: build on Windows > --- > v4: > * fix mingw build by defining the IPPROTO_SCTP if needed > * simplify the meson file > * change patch title, rebase to main > In case you did not notice, mingw build is broken with this series. https://lab.dpdk.org/results/dashboard/patchsets/19183/ [412/464] Compiling C object drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_82599_bypass.c.obj [413/464] Compiling C object drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_ethdev.c.obj FAILED: drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_ethdev.c.obj "gcc" "-Idrivers\libtmp_rte_net_ixgbe.a.p" "-Idrivers" "-I..\drivers" "-Idrivers\net\ixgbe" "-I..\drivers\net\ixgbe" "-Idrivers\net\ixgbe\base" "-I..\drivers\net\ixgbe\base" "-Ilib\ethdev" "-I..\lib\ethdev" "-I." "-I.." "-Iconfig" "-I..\config" "-Ilib\eal\include" "-I..\lib\eal\include" "-Ilib\eal\windows\include" "-I..\lib\eal\windows\include" "-Ilib\eal\x86\include" "-I..\lib\eal\x86\include" "-Ilib\eal\common" "-I..\lib\eal\common" "-Ilib\eal" "-I..\lib\eal" "-Ilib\kvargs" "-I..\lib\kvargs" "-Ilib\net" "-I..\lib\net" "-Ilib\mbuf" "-I..\lib\mbuf" "-Ilib\mempool" "-I..\lib\mempool" "-Ilib\ring" "-I..\lib\ring" "-Ilib\meter" "-I..\lib\meter" "-Ilib\metrics" "-I..\lib\metrics" "-Ilib\telemetry" "-I..\lib\telemetry" "-Idrivers\bus\pci" "-I..\drivers\bus\pci" "-I..\drivers\bus\pci\windows" "-Ilib\pci" "-I..\lib\pci" "-Idrivers\bus\vdev" "-I..\drivers\bus\vdev" "-Ilib\hash" "-I..\lib\hash" "-Ilib\rcu" "-I..\lib\rcu" "-Ilib\security" "-I..\lib\security" "-Ilib\cryptodev" "-I..\lib\cryptodev" "-fdiagnostics-color=always" "-pipe" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-Werror" "-O3" "-include" "rte_config.h" "-Wextra" "-Wcast-qual" "-Wdeprecated" "-Wformat" "-Wformat-nonliteral" "-Wformat-security" "-Wmissing-declarations" "-Wmissing-prototypes" "-Wnested-externs" "-Wold-style-definition" "-Wpointer-arith" "-Wsign-compare" "-Wstrict-prototypes" "-Wundef" "-Wwrite-strings" "-Wno-packed-not-aligned" "-Wno-missing-field-initializers" "-D_GNU_SOURCE" "-D_WIN32_WINNT=0x0A00" "-D__USE_MINGW_ANSI_STDIO" "-march=native" "-DALLOW_EXPERIMENTAL_API" "-DALLOW_INTERNAL_API" "-Wno-format-truncation" "-DRTE_LIBRTE_IXGBE_BYPASS" "-DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.ixgbe" -MD -MQ drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_ethdev.c.obj -MF "drivers\libtmp_rte_net_ixgbe.a.p\net_ixgbe_ixgbe_ethdev.c.obj.d" -o drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_ethdev.c.obj "-c" ../drivers/net/ixgbe/ixgbe_ethdev.c {standard input}: Assembler messages: {standard input}:7067: Error: invalid register for .seh_savexmm {standard input}:7069: Error: invalid register for .seh_savexmm {standard input}:7071: Error: invalid register for .seh_savexmm {standard input}:7073: Error: invalid register for .seh_savexmm [414/464] Compiling C object drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_bypass.c.obj You may want to look at: https://git.dpdk.org/dpdk/commit/?id=419c6e9af69e
Hi David, Thank you for pointing this out. On Wed, Oct 6, 2021 at 5:10 AM David Marchand <david.marchand@redhat.com> wrote: > > Hello William, > > {standard input}: Assembler messages: > {standard input}:7067: Error: invalid register for .seh_savexmm > {standard input}:7069: Error: invalid register for .seh_savexmm > {standard input}:7071: Error: invalid register for .seh_savexmm > {standard input}:7073: Error: invalid register for .seh_savexmm > [414/464] Compiling C object > drivers/libtmp_rte_net_ixgbe.a.p/net_ixgbe_ixgbe_bypass.c.obj I should add "cflags += ['-fno-asynchronous-unwind-tables']" I will send a newer version. William
This patch enables building the ixgbe driver for Windows. It also enables its dependencies on security and cryptodev. I tested on AWS using ixgbe VF device, using dpdk-testpmd. Tal Shnaiderman (3): security: use the net library for IP structs security: build on Windows cryptodev: build on Windows William Tu (1): net/ixgbe: build on Windows --- v5: * fix error due to "invalid register for .seh_savexmm" However, I'm not able to reproduce the error on my mingw. I will check the DPDK CI... * add release notes and documentation suggested by Pallavi v4: * fix mingw build by defining the IPPROTO_SCTP if needed * simplify the meson file * change patch title, rebase to main v3: * I include Tal's patch series due to some fixes. * apply on master, after commit f1f6ebc0eaf6 ("eal: remove sys/queue.h from public headers") ixgbe needs to add "include <sys/queue.h>" * For "cryptodev: build on Windows", need to add "include <sys/queue.h>" * For "security: build on Windows", remove unresolved external symbols, reported by Pallavi at: http://inbox.dpdk.org/dev/CALDO+SZ-iL4jhcSZPZZKkbY+dTa1OP+dGKZs86iRE6b2pUsvBw@mail.gmail.com/T/#m0160fb800fe8e8d83624f3bdb39a01b7ef9b5f35 v2: * add dependencies on cryptodev and security * add #include <rte_ip.h>, instead of doing #ifndef RTE_EXEC_ENV_WINDOWS #include <netinet/in.h> #else #include <Ws2tcpip.h> #endif however, including rte_ip.h requires including another set of dependent headers, see the drivers/net/ixgbe/base/meson.build doc/guides/nics/features/ixgbe.ini | 1 + doc/guides/nics/features/ixgbe_vf.ini | 1 + doc/guides/nics/ixgbe.rst | 19 +++++++++++++++++-- doc/guides/rel_notes/release_21_11.rst | 4 ++++ drivers/net/ixgbe/base/ixgbe_hv_vf.c | 1 + drivers/net/ixgbe/base/ixgbe_osdep.h | 9 +++++++++ drivers/net/ixgbe/base/meson.build | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.h | 1 + drivers/net/ixgbe/ixgbe_flow.c | 2 +- drivers/net/ixgbe/ixgbe_tm.c | 2 +- drivers/net/ixgbe/meson.build | 9 +++------ lib/cryptodev/cryptodev_pmd.c | 2 ++ lib/cryptodev/rte_cryptodev.c | 1 - lib/cryptodev/version.map | 2 -- lib/meson.build | 2 ++ lib/net/rte_ip.h | 1 + lib/security/meson.build | 2 +- lib/security/rte_security.h | 5 +---- lib/security/version.map | 3 --- 20 files changed, 48 insertions(+), 23 deletions(-)
07/10/2021 00:35, William Tu: > This patch enables building the ixgbe driver for Windows. > It also enables its dependencies on security and cryptodev. > I tested on AWS using ixgbe VF device, using dpdk-testpmd. > > Tal Shnaiderman (3): > security: use the net library for IP structs > security: build on Windows > cryptodev: build on Windows > > William Tu (1): > net/ixgbe: build on Windows Building security lib depends on cryptodev lib, so I had to swap the commits. Fixed other small stuff as commented in the thread, and applied, thanks.