From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH RFC 2/3] x86/xen/time: setup vcpu 0 time info page Date: Mon, 4 Jan 2016 16:34:11 -0500 Message-ID: <568AE553.5030303__43702.3495942869$1451943351$gmane$org@oracle.com> References: <1451339557-24473-1-git-send-email-joao.m.martins@oracle.com> <1451339557-24473-3-git-send-email-joao.m.martins@oracle.com> <568A98D9.9090501@oracle.com> <568AD8F3.2050600@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <568AD8F3.2050600@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Joao Martins , linux-kernel@vger.kernel.org, xen-devel@lists.xen.org Cc: x86@kernel.org, Ingo Molnar , David Vrabel , "H. Peter Anvin" , Thomas Gleixner List-Id: xen-devel@lists.xenproject.org On 01/04/2016 03:41 PM, Joao Martins wrote: > > On 01/04/2016 04:07 PM, Boris Ostrovsky wrote: >> On 12/28/2015 04:52 PM, Joao Martins wrote: >> >>> + >>> + size = PAGE_ALIGN(sizeof(struct pvclock_vsyscall_time_info)); >>> + mem = memblock_alloc(size, PAGE_SIZE); >>> + if (!mem) >>> + return -ENOMEM; >>> + >>> + ti = __va(mem); >>> + memset(ti, 0, size); >> Can you just use get_zeroed_page()? (struct pvclock_vsyscall_time_info >> is always less than a page, isn't it?). > Yeah, I can use get_zeroed_page() (struct pvclock_vsyscall_time_info is always > less than a page). > > Additionally perhaps this region shouldn't be freed if PVCLOCK_TSC_STABLE_BIT > isn't supported, because otherwise I would end up corrupting data elsewhere > since the pvti would still be periodically updated by Xen, right? You could try setting it back to NULL. e.g. if (!HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_time_memory_area, cpu, NULL)) free_page(..); -boris