[lkml]   [2006]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subjectmmaping a kernel buffer to user space
    Hi all,

    I recently run with the following situation while developing a PCI
    driver. The driver allocates memory for a PCI device using
    pci_alloc_consistent as this memory is going to be used to perform DMA
    transfers. To pass the data from/to the user application, I mmap the
    buffer into userspace. However, if I try to use remap_pfn_range
    (>=2.6.10) or the older remap_page_range(<=2.6.9) for mmaping, it ends
    up creating a new buffer, because they do not support RAM mapping, then
    pagefaulting to the VMA and by default allocating new pages. Therefore,
    I had to implement the nopage method and mmap one page at a time as they

    However, to my point of view, this is unnecessary. The memory is already
    allocated, the memory is locked because it is consistent, and it may be
    a (very small) performance and stability issue to do them one-by-one.
    Why can't I simply mmap it all at once? am I missing some function? More
    important, why can't remap_{pfn/page}_range handle it?

    Best wishes,
    Guillermo Marcus

    Note: I am using kernel 2.6.9 for these tests, as it is required by my
    current setup. Maybe this issue has already been addressed in newer
    kernel. If that is the case, please let me know.
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-10-31 10:21    [W:0.025 / U:2.696 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site