Messages in this thread | | | Date | Tue, 12 Sep 2006 16:04:25 -0500 | From | Matt Mackall <> | Subject | Re: kernel BUGs when removing largish files with the SLOB allocator |
| |
On Tue, Sep 12, 2006 at 09:56:46PM +0100, David Howells wrote: > Matt Mackall <mpm@selenic.com> wrote: > > > > > You just broke the bit that shrinks the arena. > > > > > > How? This is only called once when things are being initialised. There can > > > be no SLOB objects allocated prior to that point. > > > > It's on a timer. > > So what then? The timer is still initialised: > > void kmem_cache_init(void) > { > +#if 0 > void *p = slob_alloc(PAGE_SIZE, 0, PAGE_SIZE-1); > > if (p) > free_page((unsigned long)p); > +#endif > > mod_timer(&slob_timer, jiffies + HZ); > }
"allocate a page from the slob arena" "if successful, release it to the page allocator" "re-arm timer"
The only tricky part is the timer points back to _this very function_.
-- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |