Re: [patch - 2.6.11-rc5-mm1] genalloc - general purpose allocator

2005-03-07 Thread David Mosberger
> On 03 Mar 2005 03:21:56 -0500, Jes Sorensen <[EMAIL PROTECTED]> said:

  Jes> mempool on the other hand will first try and call the user
  Jes> provided allocation function and only if that fails try and
  Jes> take memory from the pool, this will force us to convert pages
  Jes> from cached to uncached if we don't have to.

Ah, that's a good point.

  Jes> [snip...]

  Jes> One could probably do this via mempool, but it would basically
  Jes> require one to put another object allocator below mempool which
  Jes> really makes the whole exercise pointless as this could just as
  Jes> well be done standalone ... ie. genalloc.

It does sound that way, yes.

Thanks,

--david
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [patch - 2.6.11-rc5-mm1] genalloc - general purpose allocator

2005-03-07 Thread David Mosberger
 On 03 Mar 2005 03:21:56 -0500, Jes Sorensen [EMAIL PROTECTED] said:

  Jes mempool on the other hand will first try and call the user
  Jes provided allocation function and only if that fails try and
  Jes take memory from the pool, this will force us to convert pages
  Jes from cached to uncached if we don't have to.

Ah, that's a good point.

  Jes [snip...]

  Jes One could probably do this via mempool, but it would basically
  Jes require one to put another object allocator below mempool which
  Jes really makes the whole exercise pointless as this could just as
  Jes well be done standalone ... ie. genalloc.

It does sound that way, yes.

Thanks,

--david
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [patch - 2.6.11-rc5-mm1] genalloc - general purpose allocator

2005-03-03 Thread Jes Sorensen
> "David" == David Mosberger <[EMAIL PROTECTED]> writes:

David> At the risk of asking the obvious: what's preventing genalloc
David> to be implemented in terms of mempool?

David,

Taking another look at mempool, there's several reasons why mempool
isn't well suited for this job.

Basically for the uncached page case we want to first pull out all the
spill pages in the lower granules[1] and only after those have been
used, do we want to start converting pages from cached to uncached.

mempool on the other hand will first try and call the user provided
allocation function and only if that fails try and take memory from
the pool, this will force us to convert pages from cached to uncached
if we don't have to.

The other issue is that mempool isn't designed to handle the case
where you do not want to hand the memory back to the system using the
user provided free() function, somehing which we can't even do for the
spill pages and converting the normal pages back is a nightmare since
you have to wait for a full granule to reappear.

Last, mempool interacts quite a lot with the vm, kicking bdflush if it
is unable to allocate memory which will not have any effect for these
kinds of pages anyway.

One could probably do this via mempool, but it would basically require
one to put another object allocator below mempool which really makes
the whole exercise pointless as this could just as well be done
standalone ... ie. genalloc.

Cheers,
Jes

[1]: For those who are interested, on ia64 one has to convert a full
granule, 16MB, at a time in order to avoid data corruption due to the
CPU might be doing speculative loads within a full granule.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [patch - 2.6.11-rc5-mm1] genalloc - general purpose allocator

2005-03-03 Thread Jes Sorensen
 David == David Mosberger [EMAIL PROTECTED] writes:

David At the risk of asking the obvious: what's preventing genalloc
David to be implemented in terms of mempool?

David,

Taking another look at mempool, there's several reasons why mempool
isn't well suited for this job.

Basically for the uncached page case we want to first pull out all the
spill pages in the lower granules[1] and only after those have been
used, do we want to start converting pages from cached to uncached.

mempool on the other hand will first try and call the user provided
allocation function and only if that fails try and take memory from
the pool, this will force us to convert pages from cached to uncached
if we don't have to.

The other issue is that mempool isn't designed to handle the case
where you do not want to hand the memory back to the system using the
user provided free() function, somehing which we can't even do for the
spill pages and converting the normal pages back is a nightmare since
you have to wait for a full granule to reappear.

Last, mempool interacts quite a lot with the vm, kicking bdflush if it
is unable to allocate memory which will not have any effect for these
kinds of pages anyway.

One could probably do this via mempool, but it would basically require
one to put another object allocator below mempool which really makes
the whole exercise pointless as this could just as well be done
standalone ... ie. genalloc.

Cheers,
Jes

[1]: For those who are interested, on ia64 one has to convert a full
granule, 16MB, at a time in order to avoid data corruption due to the
CPU might be doing speculative loads within a full granule.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [patch - 2.6.11-rc5-mm1] genalloc - general purpose allocator

2005-03-02 Thread David Mosberger
At the risk of asking the obvious: what's preventing genalloc to be
implemented in terms of mempool?

--david
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [patch - 2.6.11-rc5-mm1] genalloc - general purpose allocator

2005-03-02 Thread David Mosberger
At the risk of asking the obvious: what's preventing genalloc to be
implemented in terms of mempool?

--david
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/