lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 2 Aug 2021 14:58:26 +0200 From: Joerg Roedel <joro@...tes.org> To: Tianyu Lan <ltykernel@...il.com> Cc: kys@...rosoft.com, haiyangz@...rosoft.com, sthemmin@...rosoft.com, wei.liu@...nel.org, decui@...rosoft.com, tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, x86@...nel.org, hpa@...or.com, dave.hansen@...ux.intel.com, luto@...nel.org, peterz@...radead.org, konrad.wilk@...cle.com, boris.ostrovsky@...cle.com, jgross@...e.com, sstabellini@...nel.org, will@...nel.org, davem@...emloft.net, kuba@...nel.org, jejb@...ux.ibm.com, martin.petersen@...cle.com, arnd@...db.de, hch@....de, m.szyprowski@...sung.com, robin.murphy@....com, thomas.lendacky@....com, brijesh.singh@....com, ardb@...nel.org, Tianyu.Lan@...rosoft.com, rientjes@...gle.com, martin.b.radev@...il.com, akpm@...ux-foundation.org, rppt@...nel.org, kirill.shutemov@...ux.intel.com, aneesh.kumar@...ux.ibm.com, krish.sadhukhan@...cle.com, saravanand@...com, xen-devel@...ts.xenproject.org, pgonda@...gle.com, david@...hat.com, keescook@...omium.org, hannes@...xchg.org, sfr@...b.auug.org.au, michael.h.kelley@...rosoft.com, iommu@...ts.linux-foundation.org, linux-arch@...r.kernel.org, linux-hyperv@...r.kernel.org, linux-kernel@...r.kernel.org, linux-scsi@...r.kernel.org, netdev@...r.kernel.org, vkuznets@...hat.com, anparri@...rosoft.com Subject: Re: [PATCH 07/13] HV/Vmbus: Add SNP support for VMbus channel initiate message On Wed, Jul 28, 2021 at 10:52:22AM -0400, Tianyu Lan wrote: > + if (hv_is_isolation_supported()) { > + vmbus_connection.monitor_pages_va[0] > + = vmbus_connection.monitor_pages[0]; > + vmbus_connection.monitor_pages[0] > + = memremap(msg->monitor_page1, HV_HYP_PAGE_SIZE, > + MEMREMAP_WB); > + if (!vmbus_connection.monitor_pages[0]) > + return -ENOMEM; > + > + vmbus_connection.monitor_pages_va[1] > + = vmbus_connection.monitor_pages[1]; > + vmbus_connection.monitor_pages[1] > + = memremap(msg->monitor_page2, HV_HYP_PAGE_SIZE, > + MEMREMAP_WB); > + if (!vmbus_connection.monitor_pages[1]) { > + memunmap(vmbus_connection.monitor_pages[0]); > + return -ENOMEM; > + } > + > + memset(vmbus_connection.monitor_pages[0], 0x00, > + HV_HYP_PAGE_SIZE); > + memset(vmbus_connection.monitor_pages[1], 0x00, > + HV_HYP_PAGE_SIZE); > + } Okay, let me see if I got this right. In Hyper-V Isolation VMs, when the guest wants to make memory shared, it does": - Call to the Hypervisor the mark the pages shared. The Hypervisor will do the RMP update and remap the pages at (VTOM + pa) - The guest maps the memory again into its page-table, so that the entries point to the correct GPA (which is above VTOM now). Or in other words, Hyper-V implements a hardware-independent and configurable c-bit position, as the VTOM value is always power-of-two aligned. Is that correct? This would at least explain why there is no separate allocation/dealloction of memory for the shared range. Thanks, Joerg
Powered by blists - more mailing lists