Hello, i have written a function warp_page_range that does a work similar to copy_page_range, but copies the page range at an arbitrary address in the destination mm_struct, and i have reimplemented copy_page_range calling warp_page_range (for esting) as a special case with the 2 equal start addresses (i was originally implementing memory passing between processes, and this is needed for passing a private map). The my function works well on (uniprocessor) i386 and amd64, by i have commented the pte_unmap_nested/pte_unmap calls in the original copy_page_range, and i would like to better understand what they are for. Looks like they are involved with preemption, what does it happen if i don't call them? do (pte_offset_map_nested-pte_unmap_nested) have to be called nested in (pte_alloc_map-pte_unmap)? Thanx Maurizio The function is quite simple compared to the default copy_page_rage, If you would like to give a look at my code the patch at 2.6.10-rc3 is attached.
Attachment:
mymempatch2
Description: Binary data