Frank Hofmann wrote:
How would this work with network I/O? Do the IOMMUs support 64k pages?
AFAIK yes
Yes.
I remember I/O (both the ingraindness of MAXBSIZE in segmap and the
segmap needs to die a slow, miserable death.
exposure of PAGESIZE via VOP_GETPAGE) was a big killer argument against
The VM/FS interfaces need a good rewhacking anyway.
the 64kB pagesize project back in its time. Even these days, I/O sizes
are often "few kB", especially on networks even with jumbo frames, but
also still on disks/filesystems :(
IMO 8K (or smaller) blocks still need to be supported for I/O. The fact
that the I/O subsystem relies on assumptions of PAGESIZE throughout is
unfortunate, and will make an effort such as this difficult. In due time
the plan is for the VM2 work to slowly remove these restrictions but it
isn't going to happen overnight.
Depends a lot on your average "I/O chunk size".
Which is certainly well below 64K for files and ethernet.
Most of the "interesting" code in the 64K prototype was to fix UFS'
assumption of MAXBSIZE <= PAGESIZE, and to hack around the PAGESIZE
exposure to FS via VOP_GETPAGE(). There was also some code to synthesize
8K TTEs in the ITLB miss handler for CPUs which don't support 64K in the
ITLB (Cheetah this means you).
Cleaning up this code and bringing it forward to Nevada so it can be
CDDL'ed is a very nontrivial piece of work since there is no one expert
in all of the areas touched (it would require many engineers to bring it
up to date I think). Instead I would think it would be more productive
to think about ways to get a prototype working without these hacks: pick
a FS, modify it to use a PAGESIZE-agnostic set of VFS interfaces,....
- Eric
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org