mbox series

[kmods,0/3] windows/virt2phys: fix paging issue

Message ID 20210501171837.13282-1-dmitry.kozliuk@gmail.com (mailing list archive)
Headers
Series windows/virt2phys: fix paging issue |

Message

Dmitry Kozlyuk May 1, 2021, 5:18 p.m. UTC
  Physical addresses exposed by virt2phys driver could become pageable.
This presents stability and security issues that prevent Microsoft
from signing virt2phys, because a signed driver would be trusted
by all end-user machines.

Ensure that memory for which physical addresses are exposed by
virt2phys is non-pageable at least for the lifetime of the process.
As virt2phys code grows, make its development and debugging easier.

There are other known issues that come from using PA and accessing DMA
from userspace. They are not related to virt2phys par se. It is planned
to address them later by enabling the use of IOMMU for DPDK on Windows.

Dmitry Kozlyuk (3):
  windows/virt2phys: use local time for signing
  windows/virt2phys: do not expose pageable physical addresses
  windows/virt2phys: add tracing

 windows/virt2phys/virt2phys.c               |  89 ++++--
 windows/virt2phys/virt2phys.vcxproj         |   8 +-
 windows/virt2phys/virt2phys.vcxproj.filters |  11 +-
 windows/virt2phys/virt2phys_logic.c         | 312 ++++++++++++++++++++
 windows/virt2phys/virt2phys_logic.h         |  32 ++
 windows/virt2phys/virt2phys_trace.h         |  49 +++
 6 files changed, 472 insertions(+), 29 deletions(-)
 create mode 100644 windows/virt2phys/virt2phys_logic.c
 create mode 100644 windows/virt2phys/virt2phys_logic.h
 create mode 100644 windows/virt2phys/virt2phys_trace.h
  

Comments

Menon, Ranjit June 29, 2021, 5:16 a.m. UTC | #1
On 5/1/2021 10:18 AM, Dmitry Kozlyuk wrote:
> Physical addresses exposed by virt2phys driver could become pageable.
> This presents stability and security issues that prevent Microsoft
> from signing virt2phys, because a signed driver would be trusted
> by all end-user machines.
>
> Ensure that memory for which physical addresses are exposed by
> virt2phys is non-pageable at least for the lifetime of the process.
> As virt2phys code grows, make its development and debugging easier.
>
> There are other known issues that come from using PA and accessing DMA
> from userspace. They are not related to virt2phys par se. It is planned
> to address them later by enabling the use of IOMMU for DPDK on Windows.
>
> Dmitry Kozlyuk (3):
>    windows/virt2phys: use local time for signing
>    windows/virt2phys: do not expose pageable physical addresses
>    windows/virt2phys: add tracing
>
>   windows/virt2phys/virt2phys.c               |  89 ++++--
>   windows/virt2phys/virt2phys.vcxproj         |   8 +-
>   windows/virt2phys/virt2phys.vcxproj.filters |  11 +-
>   windows/virt2phys/virt2phys_logic.c         | 312 ++++++++++++++++++++
>   windows/virt2phys/virt2phys_logic.h         |  32 ++
>   windows/virt2phys/virt2phys_trace.h         |  49 +++
>   6 files changed, 472 insertions(+), 29 deletions(-)
>   create mode 100644 windows/virt2phys/virt2phys_logic.c
>   create mode 100644 windows/virt2phys/virt2phys_logic.h
>   create mode 100644 windows/virt2phys/virt2phys_trace.h

Acked-by: Ranjit Menon <ranjit.menon@intel.com>