cvs commit: src/sys/kern kern_msfbuf.c src/sys/sys msfbuf.h

看板DFBSD_commit作者時間21年前 (2005/03/04 09:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
dillon 2005/03/03 16:44:49 PST DragonFly src repository Modified files: sys/kern kern_msfbuf.c sys/sys msfbuf.h sys/vfs/nfs nfs_bio.c sys/vm vm_page.h Log: This is a major revamping of our MSFBUF API. MSFBUFs are used to map things into kernel memory so the kernel and device drivers which require such mappings can easily get them. MSFBUFs will soon replace the buffer cache's KVA mapping code, be used in the journaling code, get and put pages, reverse-map local kernel buffers, as well as other things. The eventual goal is to make KVA mappings completely optional and pass XIOs down the I/O chain, and if a device driver needs a mapping it would then be able to use an MSFBUF to get it. This in turn will allow the buffer cache to manage much larger data sets and remove the absurdly low dirty data buffer limitations we currently have. * Replace the hash table with a simple hint in the vm_page structure. Currently we do not avoid the overhead of populating an XIO structure or regenerating the page list, but the use of qenter2 does avoid the invltlb overhead. The API and internal structure is designed to allow far better optimizations of XIO mappings in the future. * Remove MSFBUF sharing. Sharing does not occur very often and not doing it allows an msfbuf to inherit certain context-sensitive information such as a supplied XIO pointer, cpu affinity (for NUMA), easier SMP operation, etc. * Take advantage of the recent XIO changes. * Add API routines to generate MSFBUFs from various sources, including page lists, XIO's, user bufs, kernel bufs, and soon UIO's. Submitted-by: Collaboration between Hiten Pandya and Matt Dillon Revision Changes Path 1.10 +219 -116 src/sys/kern/kern_msfbuf.c 1.8 +32 -12 src/sys/sys/msfbuf.h 1.19 +4 -2 src/sys/vfs/nfs/nfs_bio.c 1.18 +4 -0 src/sys/vm/vm_page.h http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_msfbuf.c.diff?r1=1.9&r2=1.10&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/msfbuf.h.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_bio.c.diff?r1=1.18&r2=1.19&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_page.h.diff?r1=1.17&r2=1.18&f=u
文章代碼(AID): #129xDO00 (DFBSD_commit)
文章代碼(AID): #129xDO00 (DFBSD_commit)