Re: [PATCH] xfs: remove kmem_zalloc_greedy

2017-03-07 Thread Michal Hocko
On Mon 06-03-17 10:41:09, Darrick J. Wong wrote: > The sole remaining caller of kmem_zalloc_greedy is bulkstat, which uses > it to grab 1-4 pages for staging of inobt records. The infinite loop in > the greedy allocation function is causing hangs[1] in generic/269, so > just get rid of the greedy

Re: [PATCH] xfs: remove kmem_zalloc_greedy

2017-03-06 Thread Christoph Hellwig
On Tue, Mar 07, 2017 at 11:54:20AM +1100, Dave Chinner wrote: > > Or maybe I've misunderstood, and you're asking if we should try > > kmem_zalloc(4 pages), then kmem_zalloc(1 page), and only then switch to > > the __vmalloc calls? > > Just call kmem_zalloc_large() for 4 pages without a fallback on

Re: [PATCH] xfs: remove kmem_zalloc_greedy

2017-03-06 Thread Darrick J. Wong
On Tue, Mar 07, 2017 at 01:07:54AM +0100, Christoph Hellwig wrote: > I like killing it, but shouldn't we just try a normal kmem_zalloc? > At least for the fallback it's the right thing, and even for an > order 2 allocation it seems like a useful first try. I'm confused -- kmem_zalloc_large tries k

Re: [PATCH] xfs: remove kmem_zalloc_greedy

2017-03-06 Thread Dave Chinner
On Mon, Mar 06, 2017 at 04:13:28PM -0800, Darrick J. Wong wrote: > On Tue, Mar 07, 2017 at 01:07:54AM +0100, Christoph Hellwig wrote: > > I like killing it, but shouldn't we just try a normal kmem_zalloc? > > At least for the fallback it's the right thing, and even for an > > order 2 allocation it

Re: [PATCH] xfs: remove kmem_zalloc_greedy

2017-03-06 Thread Christoph Hellwig
I like killing it, but shouldn't we just try a normal kmem_zalloc? At least for the fallback it's the right thing, and even for an order 2 allocation it seems like a useful first try.

[PATCH] xfs: remove kmem_zalloc_greedy

2017-03-06 Thread Darrick J. Wong
The sole remaining caller of kmem_zalloc_greedy is bulkstat, which uses it to grab 1-4 pages for staging of inobt records. The infinite loop in the greedy allocation function is causing hangs[1] in generic/269, so just get rid of the greedy allocator in favor of kmem_zalloc_large. This makes bulks