From: Tianyu Lan <ltykernel@gmail•com>
To: Michael Kelley <mikelley@microsoft•com>,
KY Srinivasan <kys@microsoft•com>,
Haiyang Zhang <haiyangz@microsoft•com>,
Stephen Hemminger <sthemmin@microsoft•com>,
"wei.liu@kernel•org" <wei.liu@kernel•org>,
Dexuan Cui <decui@microsoft•com>,
"catalin.marinas@arm•com" <catalin.marinas@arm•com>,
"will@kernel•org" <will@kernel•org>,
"tglx@linutronix•de" <tglx@linutronix•de>,
"mingo@redhat•com" <mingo@redhat•com>,
"bp@alien8•de" <bp@alien8•de>, "x86@kernel•org" <x86@kernel•org>,
"hpa@zytor•com" <hpa@zytor•com>,
"dave.hansen@linux•intel.com" <dave.hansen@linux•intel.com>,
"luto@kernel•org" <luto@kernel•org>,
"peterz@infradead•org" <peterz@infradead•org>,
"konrad.wilk@oracle•com" <konrad.wilk@oracle•com>,
"boris.ostrovsky@oracle•com" <boris.ostrovsky@oracle•com>,
"jgross@suse•com" <jgross@suse•com>,
"sstabellini@kernel•org" <sstabellini@kernel•org>,
"joro@8bytes•org" <joro@8bytes•org>,
"davem@davemloft•net" <davem@davemloft•net>,
"kuba@kernel•org" <kuba@kernel•org>,
"jejb@linux•ibm.com" <jejb@linux•ibm.com>,
"martin.petersen@oracle•com" <martin.petersen@oracle•com>,
"gregkh@linuxfoundation•org" <gregkh@linuxfoundation•org>,
"arnd@arndb•de" <arnd@arndb•de>, "hch@lst•de" <hch@lst•de>,
"m.szyprowski@samsung•com" <m.szyprowski@samsung•com>,
"robin.murphy@arm•com" <robin.murphy@arm•com>,
"brijesh.singh@amd•com" <brijesh.singh@amd•com>,
"thomas.lendacky@amd•com" <thomas.lendacky@amd•com>,
Tianyu Lan <Tianyu.Lan@microsoft•com>,
"pgonda@google•com" <pgonda@google•com>,
"martin.b.radev@gmail•com" <martin.b.radev@gmail•com>,
"akpm@linux-foundation•org" <akpm@linux-foundation•org>,
"kirill.shutemov@linux•intel.com"
<kirill.shutemov@linux•intel.com>,
"rppt@kernel•org" <rppt@kernel•org>,
"hannes@cmpxchg•org" <hannes@cmpxchg•org>,
"aneesh.kumar@linux•ibm.com" <aneesh.kumar@linux•ibm.com>,
"krish.sadhukhan@oracle•com" <krish.sadhukhan@oracle•com>,
"saravanand@fb•com" <saravanand@fb•com>,
"linux-arm-kernel@lists•infradead.org"
<linux-arm-kernel@lists•infradead.org>,
"xen-devel@lists•xenproject.org" <xen-devel@lists•xenproject.org>,
"rientjes@google•com" <rientjes@google•com>,
"ardb@kernel•org" <ardb@kernel•org>
Cc: "iommu@lists•linux-foundation.org"
<iommu@lists•linux-foundation.org>,
"linux-arch@vger•kernel.org" <linux-arch@vger•kernel.org>,
"linux-hyperv@vger•kernel.org" <linux-hyperv@vger•kernel.org>,
"linux-kernel@vger•kernel.org" <linux-kernel@vger•kernel.org>,
"linux-scsi@vger•kernel.org" <linux-scsi@vger•kernel.org>,
"netdev@vger•kernel.org" <netdev@vger•kernel.org>,
vkuznets <vkuznets@redhat•com>,
"parri.andrea@gmail•com" <parri.andrea@gmail•com>,
"dave.hansen@intel•com" <dave.hansen@intel•com>
Subject: Re: [PATCH V4 08/13] hyperv/vmbus: Initialize VMbus ring buffer for Isolation VM
Date: Thu, 2 Sep 2021 21:35:48 +0800 [thread overview]
Message-ID: <e864b95d-ecb7-074b-ff0b-85cc451bad52@gmail.com> (raw)
In-Reply-To: <MWHPR21MB1593B416ED91CD454FC036E5D7CE9@MWHPR21MB1593.namprd21.prod.outlook.com>
On 9/2/2021 8:23 AM, Michael Kelley wrote:
>> + } else {
>> + pages_wraparound = kcalloc(page_cnt * 2 - 1,
>> + sizeof(struct page *),
>> + GFP_KERNEL);
>> +
>> + pages_wraparound[0] = pages;
>> + for (i = 0; i < 2 * (page_cnt - 1); i++)
>> + pages_wraparound[i + 1] =
>> + &pages[i % (page_cnt - 1) + 1];
>> +
>> + ring_info->ring_buffer = (struct hv_ring_buffer *)
>> + vmap(pages_wraparound, page_cnt * 2 - 1, VM_MAP,
>> + PAGE_KERNEL);
>> +
>> + kfree(pages_wraparound);
>> + if (!ring_info->ring_buffer)
>> + return -ENOMEM;
>> + }
> With this patch, the code is a big "if" statement with two halves -- one
> when SNP isolation is in effect, and the other when not. The SNP isolation
> case does the work using PFNs with the shared_gpa_boundary added,
> while the other case does the same work but using struct page. Perhaps
> I'm missing something, but can both halves be combined and always
> do the work using PFNs? The only difference is whether to add the
> shared_gpa_boundary, and whether to zero the memory when done.
> So get the starting PFN, then have an "if" statement for whether to
> add the shared_gpa_boundary. Then everything else is the same.
> At the end, use an "if" statement to decide whether to zero the
> memory. It would really be better to have the logic in this algorithm
> coded only once.
>
Hi Michael:
I have tried this before. But vmap_pfn() only works for those pfns out
of normal memory. Please see vmap_pfn_apply() for detail and
return error when the PFN is valid.
next prev parent reply other threads:[~2021-09-02 13:36 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-27 17:20 [PATCH V4 00/13] x86/Hyper-V: Add Hyper-V Isolation VM support Tianyu Lan
2021-08-27 17:20 ` [PATCH V4 01/13] x86/hyperv: Initialize GHCB page in Isolation VM Tianyu Lan
2021-09-02 0:15 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 02/13] x86/hyperv: Initialize shared memory boundary in the " Tianyu Lan
2021-09-02 0:15 ` Michael Kelley
2021-09-02 6:35 ` Tianyu Lan
2021-08-27 17:21 ` [PATCH V4 03/13] x86/hyperv: Add new hvcall guest address host visibility support Tianyu Lan
2021-09-02 0:16 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 04/13] hyperv: Mark vmbus ring buffer visible to host in Isolation VM Tianyu Lan
2021-08-27 17:41 ` Greg KH
2021-08-27 17:44 ` Tianyu Lan
2021-09-02 0:17 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 05/13] hyperv: Add Write/Read MSR registers via ghcb page Tianyu Lan
2021-08-27 17:41 ` Greg KH
2021-08-27 17:46 ` Tianyu Lan
2021-09-02 3:32 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 06/13] hyperv: Add ghcb hvcall support for SNP VM Tianyu Lan
2021-09-02 0:20 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 07/13] hyperv/Vmbus: Add SNP support for VMbus channel initiate message Tianyu Lan
2021-09-02 0:21 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 08/13] hyperv/vmbus: Initialize VMbus ring buffer for Isolation VM Tianyu Lan
2021-09-02 0:23 ` Michael Kelley
2021-09-02 13:35 ` Tianyu Lan [this message]
2021-09-02 16:14 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 09/13] DMA: Add dma_map_decrypted/dma_unmap_encrypted() function Tianyu Lan
2021-08-27 17:21 ` [PATCH V4 10/13] x86/Swiotlb: Add Swiotlb bounce buffer remap function for HV IVM Tianyu Lan
2021-08-27 17:21 ` [PATCH V4 11/13] hyperv/IOMMU: Enable swiotlb bounce buffer for Isolation VM Tianyu Lan
2021-09-02 1:27 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 12/13] hv_netvsc: Add Isolation VM support for netvsc driver Tianyu Lan
2021-09-02 2:34 ` Michael Kelley
2021-09-02 4:56 ` Michael Kelley
2021-08-27 17:21 ` [PATCH V4 13/13] hv_storvsc: Add Isolation VM support for storvsc driver Tianyu Lan
2021-09-02 2:08 ` Michael Kelley
2021-08-30 12:00 ` [PATCH V4 00/13] x86/Hyper-V: Add Hyper-V Isolation VM support Christoph Hellwig
2021-08-31 15:20 ` Tianyu Lan
2021-09-02 7:51 ` Christoph Hellwig
2021-08-31 17:16 ` Michael Kelley
2021-09-02 7:59 ` Christoph Hellwig
2021-09-02 11:21 ` Tianyu Lan
2021-09-02 15:57 ` Michael Kelley
2021-09-14 14:41 ` Tianyu Lan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e864b95d-ecb7-074b-ff0b-85cc451bad52@gmail.com \
--to=ltykernel@gmail$(echo .)com \
--cc=Tianyu.Lan@microsoft$(echo .)com \
--cc=akpm@linux-foundation$(echo .)org \
--cc=aneesh.kumar@linux$(echo .)ibm.com \
--cc=ardb@kernel$(echo .)org \
--cc=arnd@arndb$(echo .)de \
--cc=boris.ostrovsky@oracle$(echo .)com \
--cc=bp@alien8$(echo .)de \
--cc=brijesh.singh@amd$(echo .)com \
--cc=catalin.marinas@arm$(echo .)com \
--cc=dave.hansen@intel$(echo .)com \
--cc=dave.hansen@linux$(echo .)intel.com \
--cc=davem@davemloft$(echo .)net \
--cc=decui@microsoft$(echo .)com \
--cc=gregkh@linuxfoundation$(echo .)org \
--cc=haiyangz@microsoft$(echo .)com \
--cc=hannes@cmpxchg$(echo .)org \
--cc=hch@lst$(echo .)de \
--cc=hpa@zytor$(echo .)com \
--cc=iommu@lists$(echo .)linux-foundation.org \
--cc=jejb@linux$(echo .)ibm.com \
--cc=jgross@suse$(echo .)com \
--cc=joro@8bytes$(echo .)org \
--cc=kirill.shutemov@linux$(echo .)intel.com \
--cc=konrad.wilk@oracle$(echo .)com \
--cc=krish.sadhukhan@oracle$(echo .)com \
--cc=kuba@kernel$(echo .)org \
--cc=kys@microsoft$(echo .)com \
--cc=linux-arch@vger$(echo .)kernel.org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-hyperv@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-scsi@vger$(echo .)kernel.org \
--cc=luto@kernel$(echo .)org \
--cc=m.szyprowski@samsung$(echo .)com \
--cc=martin.b.radev@gmail$(echo .)com \
--cc=martin.petersen@oracle$(echo .)com \
--cc=mikelley@microsoft$(echo .)com \
--cc=mingo@redhat$(echo .)com \
--cc=netdev@vger$(echo .)kernel.org \
--cc=parri.andrea@gmail$(echo .)com \
--cc=peterz@infradead$(echo .)org \
--cc=pgonda@google$(echo .)com \
--cc=rientjes@google$(echo .)com \
--cc=robin.murphy@arm$(echo .)com \
--cc=rppt@kernel$(echo .)org \
--cc=saravanand@fb$(echo .)com \
--cc=sstabellini@kernel$(echo .)org \
--cc=sthemmin@microsoft$(echo .)com \
--cc=tglx@linutronix$(echo .)de \
--cc=thomas.lendacky@amd$(echo .)com \
--cc=vkuznets@redhat$(echo .)com \
--cc=wei.liu@kernel$(echo .)org \
--cc=will@kernel$(echo .)org \
--cc=x86@kernel$(echo .)org \
--cc=xen-devel@lists$(echo .)xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox