简体   繁体   English

客户操作系统中的非分页 memory 可以在 Windows Hyper-V 中分页吗?

[英]Can nonpaged memory in guest OS be paged out in Windows Hyper-V?

Say I am writing a kernel driver and it is running in Windows in a Hyper-V child partition, there are some buffers from non-paged pool.假设我正在编写 kernel 驱动程序,它在 Hyper-V 子分区的 Windows 中运行,有一些来自非分页池的缓冲区。 Is this buffer guaranteed to be locked in physical memory of the host?这个缓冲区是否保证被锁定在主机的物理 memory 中?

The background is that I would like to initiate DMA involving this buffer and I don't want the host to page it out.背景是我想启动涉及此缓冲区的 DMA,并且我不希望主机将其分页。

Answering my own question.回答我自己的问题。 Based on an answer I got from someone on the Hyper-V team, he said the following:根据我从 Hyper-V 团队中的某个人那里得到的答案,他说:

Generally speaking, memory that is non-paged from a guest's perspective can be paged out by the host.一般来说,从客人的角度来看,没有分页的memory可以被主机分页。 However, if the guest has access to a physical device, the host will not page guest memory to avoid causing a DMA fault at the IOMMU.但是,如果客户机可以访问物理设备,主机将不会分页客户机 memory 以避免在 IOMMU 上导致 DMA 故障。 Whether the guest is Windows or Linux (or something else) is not a factor in this behavior.来宾是 Windows 还是 Linux(或其他)不是此行为的一个因素。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM