Re: [PATCH RFC 2/3] x86/xen/time: setup vcpu 0 time info page

From: Joao Martins
Date: Tue Jan 05 2016 - 07:20:40 EST




On 01/04/2016 09:34 PM, Boris Ostrovsky wrote:
> 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(..);
>
Ah, forgot about that option. Thanks! We can't register it explicitly as NULL as
the hypercall would return -EFAULT but having a valid argument with NULL as the
address works nicely.

> -boris
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/