son goku wrote:
Hi hackers, I have some experience with other UNIX kernels but none with FreeBSD. FreeBSD interests me for a potential project I might be involved in , and therefore I started researching it. Browsing through the I/O layer code, I stumbled upon something that looked strange, and perhaps you guys can help me with it. Mainly, when reading the physio path, when the I/O buffer is from user-mode, physio calls vmapbuf. The comments says that vmapbuf actually maps the user-buffer into kernel address space. From my experience, such mapping is needed only for very old devices that use PIO.
yes, though to some of us that is relatively recent, and in fact we still need PIO mode for quite a few devices in the embedded space.
(I have a soekris machine with a flash card that I need to use PIO mode to reach). We have been saying for some time (me personally for about 18 years) that we need to handle unmapped IO better. I don't believe that it has been done yet (*), but you certainly sound like the right person to take on that project :-) (*) I last looked at physio a few years ago so if someone snuck in unmapped IO in the mean-while, please excuse me.
Newer device just use DMA for data copy, and therefore don't need the mapping, instead they just need to pin the memory. Checking out vmapbuf only confused me further, I couldn't find where such kernel mapping was taken place, nevertheless I did saw that the buf->b_data was updated according to buf->b_saveaddr in some weird offset calculation. Adding to this confusion, there is a buf field called b_kvabase which supposedly stores the kernel virtual address which wasn't touched at all!! Any help with understanding the flow and the usage of those fields/variables will be greatly appreciated!! _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"
_______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"