Re: idle pool page gc

2015-01-18 Thread David Gwynne
On Sun, Jan 18, 2015 at 11:12:47PM -0500, Ted Unangst wrote: > On Mon, Jan 19, 2015 at 11:28, David Gwynne wrote: > > >> if you're interested in seeing the effect of freeing at different > >> intervals, you could try the diff below. it adds kern.pool.wait_free > >> and kern.pool.wait_gc tunables s

Re: idle pool page gc

2015-01-18 Thread Ted Unangst
On Mon, Jan 19, 2015 at 11:28, David Gwynne wrote: >> if you're interested in seeing the effect of freeing at different >> intervals, you could try the diff below. it adds kern.pool.wait_free >> and kern.pool.wait_gc tunables so you can set how long a page has >> to be idle before a pool_put and t

Re: idle pool page gc

2015-01-18 Thread David Gwynne
> On 23 Dec 2014, at 11:38, David Gwynne wrote: > > On Mon, Dec 22, 2014 at 10:54:16AM -0500, Ted Unangst wrote: >> On Mon, Dec 22, 2014 at 14:59, Mike Belopuhov wrote: >>> 1) how is it different from what we have now? >>> >>> 2) why can't you do it when you pool_put? >> >> Right now, if you a

Re: idle pool page gc

2014-12-22 Thread David Gwynne
On Mon, Dec 22, 2014 at 10:54:16AM -0500, Ted Unangst wrote: > On Mon, Dec 22, 2014 at 14:59, Mike Belopuhov wrote: > > 1) how is it different from what we have now? > > > > 2) why can't you do it when you pool_put? > > Right now, if you allocate a bunch of things, then free them, the > pages won

Re: idle pool page gc

2014-12-22 Thread Ted Unangst
On Mon, Dec 22, 2014 at 14:59, Mike Belopuhov wrote: > 1) how is it different from what we have now? > > 2) why can't you do it when you pool_put? Right now, if you allocate a bunch of things, then free them, the pages won't be freed because the timestamp is new. But you've already freed everythi

Re: idle pool page gc

2014-12-22 Thread Mike Belopuhov
On 22 December 2014 at 06:43, David Gwynne wrote: > this introduces a global gc task that loops over all the pools > looking for pages that havent been used for a very long time so > they can be freed. > > this is the simplest way of doing this without introducing per pool > timeouts/tasks which i

idle pool page gc

2014-12-21 Thread David Gwynne
this introduces a global gc task that loops over all the pools looking for pages that havent been used for a very long time so they can be freed. this is the simplest way of doing this without introducing per pool timeouts/tasks which in turn could introduce races with pool_destroy, or more shared