I think the uebayasi-xip branch is ready to be merged. This branch implements a preliminary support of eXecute-In-Place; execute programs directly from memory-mappable devices without copying files into RAM. This benefits mainly resource restricted embedded systems to save RAM consumption.
My approach to achieve XIP is to implement a generic XIP vnode pager which is neutral to underlying filesystem formats. The result is a minimal code impact + sharing the generic fault handler. * I asked Chuck Silvers to review the branch. I believe I've addressed most of his questions except a few ones. The most controversial part might be the separate genfs_{get,put}pages_xip() functions and PQ_FIXED. I intend to merge genfs_*_xip() into the non-_xip(), but that'd need a bit of surgery of genfs functions, so I want to finish this part later. For PQ_FIXED, I think I can make this look less hackish by teaching uvm_fault() the handling of cdev's device pages - pages that are not backed by vm_page. This'll lead us to kill device pager. * I'll mege the branch within this week if no objections. Masao -- Masao Uebayashi / Tombi Inc. / Tel: +81-90-9141-4635