[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 14/27] x86/percpu: Adapt percpu for PIE support
On Tue, May 29, 2018 at 3:46 PM Christopher Lameter <cl@xxxxxxxxx> wrote: > On Tue, 29 May 2018, Thomas Garnier wrote: > > Perpcu uses a clever design where the .percu ELF section has a virtual > > address of zero and the relocation code avoid relocating specific > > symbols. It makes the code simple and easily adaptable with or without > > SMP support. > > > > This design is incompatible with PIE because generated code always try to > > access the zero virtual address relative to the default mapping address. > We always access relative to the "segment register". > You can already change the segment register to relocate the per cpu > sections arbitrarily since all per cpu "addresses" are offsets relative to > the segment register. I am not sure what exactly you are trying to > accomplish here? When building with PIE, the compiler wants the code to be relocatable anywhere in the 64-bit VA space. Instead of taking the segment register as an immediate value, it takes it as VA that need to be relocated relative to where the kernel is mapped. The per-cpu section VA is zero to create the proper offset to the different variable. The kernel could be at the top of the 64-bit VA space. PIE will try to create the delta between any VA and zero and fail because segment register based operations do not have full 64-bit VA range. Does it make sense? For PIE only, this change will remove the per-cpu section VA of zero. Now the distance between the per-cpu symbol and the kernel base VA can fit in the generated instructions. > Maybe you need to explain it better? I will try do explain it better on the next patch set. -- Thomas _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |