Eliminating bounce buffers
Larry Woodman
woodman en missioncriticallinux.com
Vie Ene 28 15:04:02 CST 2000
I have a patch for 2.3.40 which eliminates the whole idea of bounce
buffers
and prepare_highmem_swapout()/replace_with_highmem() for big memory
Intel systems. The way it works is rather than copying high memory
pages to and
from low memory pages before scheduling IO, I map highmem pages into
virtual
addresses up in the vmalloc address space (via get_vm_area) and put this
virtual
address in the b_data field of the buffer_head for the duration of the
IO operation.
Once the IO operation completes I unmap the highmem physical address
from
the virtual address so that it can be used by any other IO operation for
a highmem page.
I also changed virt_to_phys() and phys_to_virt() to that it properly
deals with mapped
highmem pages. This all seems to work OK on my 4GB Intel box as long
as the
b_data field of the buffer_head contains a valid address. I notice
there is no more copying
between low and hignmem pages, although I am still testing everything.
This seems to be cleaner than doing IO to lower physical address pages
and copying
to and from highmem pages, or am I missing something here??? There is
still a fair amount of work and cleanup for SMP and non-intel
architectures,
is this worth doing???
Larry Woodman
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: woodman.vcf
Type: text/x-vcard
Size: 242 bytes
Desc: Card for Larry Woodman
URL: <https://lists.srvr.mx/pipermail/ayuda/attachments/20000129/b8efc714/attachment.vcf>
Más información sobre la lista de distribución Ayuda