From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 10898A04B5; Fri, 2 Oct 2020 20:22:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5D1191D523; Fri, 2 Oct 2020 20:21:59 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 05D7C1C20D for ; Fri, 2 Oct 2020 20:21:57 +0200 (CEST) IronPort-SDR: XxyUALoUqyolaoQ5LqRTHr6OSws7L6lbwKH7oIz1kSJdu+EjyLaK3Awdg8dZ0k28h/p3sA9cp7 Gj9AgF6wJs3w== X-IronPort-AV: E=McAfee;i="6000,8403,9762"; a="181172032" X-IronPort-AV: E=Sophos;i="5.77,328,1596524400"; d="scan'208";a="181172032" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2020 11:21:55 -0700 IronPort-SDR: krSxGPqnbQYlhDT6tYEoF48IVVSFHOp3xWiaaT3drsw8wpu/iUKpxo9pHDY3PKnuN/a19yB+Zd 4VjaQLIpe78Q== X-IronPort-AV: E=Sophos;i="5.77,328,1596524400"; d="scan'208";a="416504211" Received: from rmenon-desk.amr.corp.intel.com (HELO [10.166.30.253]) ([10.166.30.253]) by fmsmga001-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2020 11:21:55 -0700 To: Narcisa Ana Maria Vasile , dev@dpdk.org, thomas@monjalon.net, ocardona@microsoft.com, haramakr@linux.microsoft.com, pallavi.kadam@intel.com, dmitry.kozliuk@gmail.com Cc: dmitrym@microsoft.com, Narcisa Vasile , Harini Ramakrishnan References: <1600483953-28579-1-git-send-email-navasile@linux.microsoft.com> <1601592908-11262-1-git-send-email-navasile@linux.microsoft.com> From: Ranjit Menon Message-ID: <7f5f4978-f967-66e8-5152-5446198bfd42@intel.com> Date: Fri, 2 Oct 2020 11:21:54 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <1601592908-11262-1-git-send-email-navasile@linux.microsoft.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Subject: Re: [dpdk-dev] [PATCH v5] windows/netuio: add Windows NetUIO kernel driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" On 10/1/2020 3:55 PM, Narcisa Ana Maria Vasile wrote: > From: Narcisa Vasile > > The Windows netuio kernel driver provides the DPDK userspace application > with direct access to hardware, by mapping the HW registers in userspace > and allowing read/write operations from/to the device > configuration space. > > Two IOCTLs are defined by the netuio interface: > * IOCTL_NETUIO_MAP_HW_INTO_USERSPACE > - used for mapping the device registers into userspace > * IOCTL_NETUIO_PCI_CONFIG_IO > - used to read/write from/into the device configuration space > > Note: > Requests to map the device BARs into userspace need to be processed > in the thread context of the process that initiated the mapping request. > Otherwise, the BARs might end up mapped into an arbitrary process > address space. > EvtIoInCallerContext is used to ensure the requests are handled > in the right user thread context. Other requests (PCI config) > are sent back to the framework and processed by the EvtIoDeviceControl > callback. > > Cc: Harini Ramakrishnan > Cc: Omar Cardona > Cc: Dmitry Malloy > Signed-off-by: Narcisa Vasile > --- > > v5: > * Changed the name of the IOCTL for clarity > > windows/.gitattributes | 4 + > windows/.gitignore | 2 + > windows/netuio/README.rst | 58 +++++ > windows/netuio/netuio.inf | 77 ++++++ > windows/netuio/netuio.sln | 24 ++ > windows/netuio/netuio.vcxproj | 113 +++++++++ > windows/netuio/netuio.vcxproj.filters | 54 +++++ > windows/netuio/netuio_dev.c | 273 +++++++++++++++++++++ > windows/netuio/netuio_dev.h | 66 +++++ > windows/netuio/netuio_drv.c | 131 ++++++++++ > windows/netuio/netuio_drv.h | 30 +++ > windows/netuio/netuio_interface.h | 88 +++++++ > windows/netuio/netuio_queue.c | 334 ++++++++++++++++++++++++++ > windows/netuio/netuio_queue.h | 21 ++ > 14 files changed, 1275 insertions(+) > create mode 100644 windows/.gitattributes > create mode 100644 windows/.gitignore > create mode 100644 windows/netuio/README.rst > create mode 100644 windows/netuio/netuio.inf > create mode 100644 windows/netuio/netuio.sln > create mode 100644 windows/netuio/netuio.vcxproj > create mode 100644 windows/netuio/netuio.vcxproj.filters > create mode 100644 windows/netuio/netuio_dev.c > create mode 100644 windows/netuio/netuio_dev.h > create mode 100644 windows/netuio/netuio_drv.c > create mode 100644 windows/netuio/netuio_drv.h > create mode 100644 windows/netuio/netuio_interface.h > create mode 100644 windows/netuio/netuio_queue.c > create mode 100644 windows/netuio/netuio_queue.h We'll need to do a code-style cleanup at some point, but for now: Reviewed-by: Ranjit Menon Acked-by: Ranjit Menon