Are those hacks still valid on powerpc kernel ?
Christophe LEROY
christophe.leroy at c-s.fr
Wed Jan 24 21:17:08 AEDT 2018
Below comments are very old.
Aren't new glibc and binutils now able to go without this ?
Note that the code inside the #if 0 is wrong as we have no vma defined
in the function.
Or does it just have no performance impact anyway ?
From /arch/powerpc/mm/mem.c:
void clear_user_page(void *page, unsigned long vaddr, struct page *pg)
{
clear_page(page);
/*
* We shouldn't have to do this, but some versions of glibc
* require it (ld.so assumes zero filled pages are icache clean)
* - Anton
*/
flush_dcache_page(pg);
}
EXPORT_SYMBOL(clear_user_page);
void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
struct page *pg)
{
copy_page(vto, vfrom);
/*
* We should be able to use the following optimisation, however
* there are two problems.
* Firstly a bug in some versions of binutils meant PLT sections
* were not marked executable.
* Secondly the first word in the GOT section is blrl, used
* to establish the GOT address. Until recently the GOT was
* not marked executable.
* - Anton
*/
#if 0
if (!vma->vm_file && ((vma->vm_flags & VM_EXEC) == 0))
return;
#endif
flush_dcache_page(pg);
}
Christophe
More information about the Linuxppc-dev
mailing list