From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752547AbcADQII (ORCPT ); Mon, 4 Jan 2016 11:08:08 -0500 Received: from userp1040.oracle.com ([156.151.31.81]:40920 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752283AbcADQIG (ORCPT ); Mon, 4 Jan 2016 11:08:06 -0500 Subject: Re: [PATCH RFC 2/3] x86/xen/time: setup vcpu 0 time info page To: Joao Martins , linux-kernel@vger.kernel.org, xen-devel@lists.xen.org References: <1451339557-24473-1-git-send-email-joao.m.martins@oracle.com> <1451339557-24473-3-git-send-email-joao.m.martins@oracle.com> Cc: Konrad Rzeszutek Wilk , David Vrabel , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org From: Boris Ostrovsky Message-ID: <568A98D9.9090501@oracle.com> Date: Mon, 4 Jan 2016 11:07:53 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <1451339557-24473-3-git-send-email-joao.m.martins@oracle.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/28/2015 04:52 PM, Joao Martins wrote: > + > +static int xen_setup_vsyscall_time_info(int cpu) > +{ > + struct pvclock_vsyscall_time_info *ti; > + struct vcpu_register_time_memory_area t; > + struct pvclock_vcpu_time_info *pvti; > + unsigned long mem; > + int ret, size; > + u8 flags; > + > + ret = HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_time_memory_area, > + cpu, NULL); > + if (ret == -ENOSYS) { > + pr_debug("xen: vcpu_time_info placement not supported\n"); > + return -ENOTSUPP; > + } I don't think this is necessary. > + > + 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?). -boris