ptrace on linux 2.6.12 causes oops

Anton Wöllert a.woellert at gmail.com
Fri Jul 15 19:42:27 EST 2005


> 
> Yep, just that now its the ptraceing process which is faulting in the 
> page,
> instead of the (ptraced) process itself.
> 
> So Anton, can you move the _tlbie() call up to
> 
> && !test_bit(PG_arch_1, &page->flags)) {
> <---------- HERE
> if (vma->vm_mm == current->active_mm)
> __flush_dcache_icache((void *) address);
> else
> flush_dcache_icache_page(page);
> set_bit(PG_arch_1, &page->flags);
> 
> So that it covers both cases instead of just (vma->vm_mm == 
> current->active_mm) ?
> 
> Its safe to do it because the address space ID is ignored by tlbie 
> accordingly
> to the manual page:
> 
> The ASID value in the entry is ignored for the purpose of
> matching an invalidate address, thus multiple entries can be invalidated
> if they have the same effective address and different ASID values.



Well, unfortunately, that doesn't work :(. If i'm right, the 
__flush_dcache_icache((void *) address) should avoid that the cache says 
faulting address again.
The flush_dcache_icache_page(page) should flush the cache, where stands, 
page not mapped. but the flush_dcache_icache_page(page) oopses on my system. 
but instead of this call, the call __flush_dcache_icache(page_address(page)) 
works. for me, that also makes more sence. and also, the 
flush_dcache_icache_page(page) calls the flush_dcache_icache_phys, which 
turns off the data virtual address mapping. i found that a bit strange. any 
comments?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050715/5a6ed5a4/attachment.htm 


More information about the Linuxppc-embedded mailing list