El Wed, 19 May 2010 16:29:21 +0200 Sergio Lopez <s...@sinrega.org> escribió: > - 01defpager-mutex.patch: Properly unlock the mutex before returning > NO_BLOCK in pager_read_offset. > > - 02defpager-extread.patch: Add an "external" attribute to > dstruct structure. In default_read, if the object is external, > resolve a read request with a zero filled page. > > - 03defpager-synclock.patch: Remove user reference count logic, to > avoid setting an arbitrary limit to the number of requests > processed by an object. Don't request completion notification for > m_o_lock_request. I think is worth noting that the original > problem which makes default_pager get stuck waiting for a seqno that > never arrives in S_default_pager_object_set_size, was just that > reply_port and seqno arguments were in wrong order. > > - 04defpager-objectsize.patch: In S_default_pager_object_create, > reject values for "size" other than "vm_page_size", since internal > logic doesn't properly support it (though object size limit can be > increased by sucesive calls to S_default_pager_set_size).
After applying these patches, you'll also need this one to be able to compile proxy-defpager (which still doesn't work, but that's another question...).
diff -dur a/trans/proxy-defpager.c b/trans/proxy-defpager.c --- a/trans/proxy-defpager.c 2010-05-21 08:22:12.000000000 +0000 +++ b/trans/proxy-defpager.c 2010-05-21 08:22:25.000000000 +0000 @@ -107,7 +107,6 @@ kern_return_t S_default_pager_object_set_size (mach_port_t memory_object, - mach_port_t reply_port, mach_port_seqno_t seqno, vm_size_t object_size_limit) {