[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 16/20] xen/arm: mm: Protect Xen page-table update with a spinlock
On 03/05/2019 16:59, Andrii Anisov wrote: Hello Julien, Hi, On 22.04.19 19:49, Julien Grall wrote:The function create_xen_entries may be concurrently called. So we need to protect with a spinlock to avoid corruption the page-tables.The question from me is why didn't we step into this issue before? TLDR; because xen page-tables are not that often modified after boot. Yet it is still possible to race. At the moment, create_xen_entries() can only modify the VA range 0 - 2GB. In that range, we can modify at runtime the VMAP area. One potential issue is a vmap issued at the same time.While the range allocation is protected by a lock (see vm_alloc), the mapping is not. So it would be possible to end up modifying the page-table at the same. That could blow up if for instance, the second-level entry is invalid as we would need to allocate memory (only one can win that race). In general, it is a saner approach to try to serialize the modifications in the page-tables. So you can safely read an entry, check it and then update it. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |