Re: multi page memory object operations

2017-07-31 Thread Brent W. Baccala
On Mon, Jul 31, 2017 at 5:21 AM, Richard Braun  wrote:

> On Sun, Jul 30, 2017 at 10:20:55PM -0400, Brent W. Baccala wrote:
>
> > Does anybody know the history of multi page requests?  Was it ever
> > implemented in the kernel?
>
> Maksym Planeta worked on it as part of the 2012 GSoC. I tried to review
> it for merging, but was never satisfied with some details, too afraid
> of what it would break (in both the API and ABI), and didn't consider
> the gain worth at the time (I always thought improving the page cache
> internally first, without involving the external pagers, would yield
> much better results, and it did). Both Maksym and I went on to do other
> things and the work just lingered, as is often the case. It could make
> sense to revive the work now that paging was globally improved, but
> you'll likely get conflicts, and the work isn't trivial, IOW it really
> needs careful review.


I'm designing the new libpager to handle multi page requests, so I'll just
leave it at that.  If the kernel work gets revived, the filesystem
translators will be able to handle it.

agape
brent


Re: multi page memory object operations

2017-07-31 Thread Richard Braun
On Sun, Jul 30, 2017 at 10:20:55PM -0400, Brent W. Baccala wrote:
> It seems that the current libpager's data-request and data-unlock routines
> only handle single page requests, while the Mach documentation suggests
> that the kernel can make multi page requests using these routines.

No, the kernel can't, even if the interface seems to allow it.

> Looking at the gnumach code, it sure seems that the kernel only makes
> single page requests.
> 
> Does anybody know the history of multi page requests?  Was it ever
> implemented in the kernel?

Maksym Planeta worked on it as part of the 2012 GSoC. I tried to review
it for merging, but was never satisfied with some details, too afraid
of what it would break (in both the API and ABI), and didn't consider
the gain worth at the time (I always thought improving the page cache
internally first, without involving the external pagers, would yield
much better results, and it did). Both Maksym and I went on to do other
things and the work just lingered, as is often the case. It could make
sense to revive the work now that paging was globally improved, but
you'll likely get conflicts, and the work isn't trivial, IOW it really
needs careful review.

-- 
Richard Braun



multi page memory object operations

2017-07-30 Thread Brent W. Baccala
Hi -

I've found something puzzling while working on the libpager code.

It seems that the current libpager's data-request and data-unlock routines
only handle single page requests, while the Mach documentation suggests
that the kernel can make multi page requests using these routines.

Looking at the gnumach code, it sure seems that the kernel only makes
single page requests.

Does anybody know the history of multi page requests?  Was it ever
implemented in the kernel?

agape
brent