From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 28673A0C54; Fri, 27 Aug 2021 02:18:59 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA0184067C; Fri, 27 Aug 2021 02:18:58 +0200 (CEST) Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) by mails.dpdk.org (Postfix) with ESMTP id BAC2140140 for ; Fri, 27 Aug 2021 02:18:56 +0200 (CEST) Received: by mail-lf1-f51.google.com with SMTP id l2so2508004lfp.2 for ; Thu, 26 Aug 2021 17:18:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:mime-version :content-transfer-encoding; bh=wYfOKHxICr2vcd710N/leNB7jNeeB+FWdB//5oMLcHU=; b=ibU6Y+mztIvgNaqyS08k+hXgezwWdIVJhax0/p4t5g53R0ZeCVioE458M24eiTfeKa nWw6IlFfNA5c+3vtSzYKllcciYARz6zb6WZve0eoqZkUmztCmRUBJ+018C0iYWOp2dQE 3J3J7GPduFb34WLC4CqWWOIRz5xnOkag9QgJsP5CmRfeVhjaawJ09NVGG5bn2kBCgt2P r60dv4OpUudU2UaJsWL65NAK2uh97TsabtPC1loFicY7JM49RDbWDRAAhIGMwG5YSPb/ RgqePsCQJR+PiN+pzBldoyV5r+aQnUG0a4Sob0lbE2HCXYI+JbM0iy8ioIwr4R5hdr1z Nh8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-transfer-encoding; bh=wYfOKHxICr2vcd710N/leNB7jNeeB+FWdB//5oMLcHU=; b=udcSzDm75lpChQotcvP953jqCQhQ+MH8p48t6jjRtlKbIJN0jDQbZy0NYyWNPp5nwL nAx23rDFYKBpw3yasIMBg8KJXE0GDeVpV/uutCbNlMaNldSPZcmGfeoXyDII/LLB0XA9 giSLLwz1XteRmES/jT70nkBeaEwycVMyKy6TsLFXxoRUeRM2hUPxcqNgcWczU1J6WBXG hs4JKj2R2A3Hlcj1M/mwTYdzkMZ31VElmhDnbhVI2RD/GUtdVphPGJ9rXhOubRldau8l xdXrrwqLUci12WbjUnueDmitZKpZsgMDkKdcWSAT/g1l6QwTLSa9sBSaEt1fdVWkDktt 0QKQ== X-Gm-Message-State: AOAM532bwp9VgrkUdM473K63CJnqFEmJEYlXP3ieVG3V68uymQvcvvs6 1ZERyivxsdNtUDgvcDMitjbutpZwyp8= X-Google-Smtp-Source: ABdhPJx7+lWro6NwvFDcYcDQC44ktAx6zRv8242WwC/Td1q8oJVj0TeeJeb75Kf3OpoHRAafH+VqEQ== X-Received: by 2002:a05:6512:22c6:: with SMTP id g6mr4650393lfu.569.1630023535698; Thu, 26 Aug 2021 17:18:55 -0700 (PDT) Received: from sovereign (broadband-37-110-65-23.ip.moscow.rt.ru. [37.110.65.23]) by smtp.gmail.com with ESMTPSA id u12sm440236lfm.59.2021.08.26.17.18.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Aug 2021 17:18:54 -0700 (PDT) Date: Fri, 27 Aug 2021 03:18:53 +0300 From: Dmitry Kozlyuk To: dev@dpdk.org Message-ID: <20210827031853.214ca205@sovereign> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [dpdk-dev] DPDK 21.11+ Windows Roadmap X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This roadmap has been discussed on Windows community calls Aug 5 and Aug 19 and it met no principal objections. It extends beyond the nearest release, but it is useful to have a comprehensive backlog in one place. In 21.11 it looks realistic to have: * static build of DPDK installed and consumed without issues (1.1) - the new threading API will be the top priority (1.1.4, 1.1.5) * interrupt support for netuio (2) * virtio PMD (3.1) * vmxnet3 on VMWare hypervisor (3.2) * unit tests (4.3) * internal refactoring done (4.1, 4.2) It is expected to at least make some progress: * supporting cross-DLL variables, including thread-local (1.2.1) * establishing a process to provide kernel-mode driver builds (1.3) --- 1. General Availability of DPDK on Windows Anyone who tries to build, install, and consume DPDK on Windows hits more or less manageable issues. The goal is to make the process friction-less. 1.1. Level 1: static userspace libraries The last Unix-specific bits must be removed from public headers. The hardest part is to replace pthread shim with the new threading API. 1.1.1. Remove sys/queue.h [sysq] (William Tu). 1.1.2. Remove sched.h (Dmitry Kozlyuk). 1.1.3. Fix missing exports (DmitryK). 1.1.4. New threading API [thread1, thread2] (Narcisa Ana Maria Vasile). 1.1.5. Meson < 0.59.1 cannot consume libdpdk.pc [meson1] (solved). 1.1.6. Meson >= 0.58 cannot build DPDK [meson2] (DmitryK to track). 1.1.7. Try to make Npcap ship a pkg-config file [npcap] (DmitryK, optional). 1.1.8. Rename `min`, `max`, `s_addr` [deprecation] (DmitryK, required). 1.2. Level 2: shared userspace libraries Dynamic build is required for DPDK to become a shared Windows component. GCC and clang take very different approach to implementing thread-local storage; there's a risk that only clang can be supported for now. 1.2.1. Support cross-DLL variables, including thread-local (Tyler Retzlaff). 1.2.2. Reconsider embedding getopt into EAL, unsuitable for shared build. 1.3. Level 3: kernel-mode drivers Currently netuio and virt2phys must be built manually, which requires environment setup, and driver signature check must be disabled to load them, which is unsuitable for production environment. The goal is to have a contiguous process to publish latest driver builds (unsigned) and to sign and publish selected stable versions. There is a large organizational part in this task. Microsoft will drive the effort, Yan Vugenfirer has volunteered to help. virt2phys must undergo a security hardening to be signed [virt2phys]. 2. Interrupt support (DmitryK - development, Intel - help with testing) Goal: to enable usage of DPDK for burst-oriented tasks (Boulder Imaging case) and CPU-constrained environment (no cores to dedicate for polling). Intel repeatedly expressed interest, Microsoft will need this eventually. 3. NIC support 3.1. Enable net/virtio (and net/ena?) Windows guests will be able to use the most widespread paravirtual devices on Linux hosts (William Tu). 3.2. Fix netuio for net/vmxnet3 on VMWare hypervisor The netuio kernel driver fails to load for vmxnet3 devices in VMWare hypervisor, while it works in QEMU. Microsoft will investigate the cause that is traced to be in Windows kernel outside of netuio. 3.3. Make Npcap provide a pkg-config file Npcap does not provide a pkg-config file, while modern libpcap does. DmitryK will work with Npcap developers to add it [npcap]. 4. Miscellaneous 4.1. Refactor bus/pci (DmitryK) Currently netuio maps BARs at PCI bus scan. This is against DPDK model and can break certain scenarios, like running apps with different sets of available PMDs. PCI bus driver code must be refactored. 4.2. Move from Setup API to cfgmgr32 API in EAL and bus/pci (DmitryK) Setup API is deprecated, also Tyler indicated it causes layering violation warnings by Microsoft internal tools. To make DPDK a good Windows citizen, cfgmgr32 should be used to work with devices and driver interfaces. 4.3. Enable unit tests [unit] (Jie Zhou) 4.5. Add WPP(?) tracing to netuio Debugging netuio loading issues in VMWare case appeared to be impossible until adding debug prints to pinpoint the place of failure. Tracing all errors at least would help. virt2phys is also getting tracing in the recent patch series. End-users can collect traces and attach them to bug reports, this should be added to DPDK user documentation. It is unclear who will do this and when, but Microsoft approves the idea and can provide guidance on tracing technologies. 4.6. Find a way to install netuio without GUI. Currently in requires Device Manager GUI, which is absent in WS Core, it is also inconvenient to lack commands for copy&paste. Investigate [devmgr]. References: [sysq]: http://patchwork.dpdk.org/project/dpdk/list/?series=18438 [thread1]: http://patchwork.dpdk.org/project/dpdk/list/?series=18360 [thread2]: http://patchwork.dpdk.org/project/dpdk/list/?series=18338 [meson1]: https://github.com/mesonbuild/meson/issues/9091 [meson2]: https://github.com/mesonbuild/meson/issues/8981 [npcap]: https://github.com/nmap/npcap/issues/299 [deprecation]: http://git.dpdk.org/dpdk/commit/?id=c4379ee599ef2f6feea914566bd494f66f7e8ad0 [unit]: http://patchwork.dpdk.org/project/dpdk/list/?series=18337 [devmgr]: https://stackoverflow.com/a/56848828/3398329