lkml.org 
[lkml]   [2005]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: question on symbol exports
Benjamin Herrenschmidt wrote:
>>It turns out that to call ptep_clear_flush_dirty() on ppc64 from a
>>module I needed to export the following symbols:
>>
>>__flush_tlb_pending
>>ppc64_tlb_batch
>>hpte_update
>
>
> Any reason why you need to call that from a module ? Is the module
> GPL'd ?

I explained this at the beginning of the thread, but I'll do so again.
The module will be released under the GPL.

The basic idea is that we want to be able to track pages dirtied by a
userspace process. The system has no swap, so we use the dirty bit for
this. On demand we look up the page tables for an address range
specified by the caller, store the addresses of any dirty pages, then
mark them clean so that the next write causes them to get marked dirty
again. It is this act of marking them clean that requires the
additional exports.

I've included the current code below. If there is any way to accomplish
this without the additional exports, I'd love to hear about it.

Chris








Note: this code is run while holding &mm->mmap_sem and &mm->page_table_lock.


for(addr=start&PAGE_MASK; addr<=end; addr+=PAGE_SIZE) {
pte_t *ptep=0;

ptep = va_to_ptep_map(mm, addr);
if (!ptep)
goto unmap_continue;

if (!pte_dirty(*ptep))
goto unmap_continue;

/* We have a user readable dirty page. Count it.*/
dirty_count++;

if (dirty_count <= entries) {
__put_user(addr, buf);
buf++;
ptep_clear_flush_dirty(find_vma(mm, addr), addr, ptep);

/* Handle option to stop early. */
if ((dirty_count == entries) &&
(options & STOP_WHEN_BUF_FULL))
addr=end+1;
}

unmap_continue:
if (ptep)
pte_unmap(ptep);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:10    [W:0.080 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site