Re: page_waitqueue() considered harmful

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 27, 2016 at 12:11:17PM +0300, Kirill A. Shutemov wrote:
> On Tue, Sep 27, 2016 at 09:54:12AM +0100, Mel Gorman wrote:
> > On Tue, Sep 27, 2016 at 09:30:55AM +0200, Peter Zijlstra wrote:
> > > > Also, if those bitlock ops had a different bit that showed contention,
> > > > we could actually skip *all* of this, and just see that "oh, nobody is
> > > > waiting on this page anyway, so there's no point in looking up those
> > > > wait queues". We don't have that many "__wait_on_bit()" users, maybe
> > > > we could say that the bitlocks do have to haev *two* bits: one for the
> > > > lock bit itself, and one for "there is contention".
> > > 
> > > That would be fairly simple to implement, the difficulty would be
> > > actually getting a page-flag to use for this. We're running pretty low
> > > in available bits :/
> > 
> > Simple is relative unless I drastically overcomplicated things and it
> > wouldn't be the first time. 64-bit only side-steps the page flag issue
> > as long as we can live with that.
> 
> Looks like we don't ever lock slab pages. Unless I miss something.
> 

I don't think we do but direct PageSlab checks might be problematic if
it was a false-positive due to a locked page and we'd have to be very
careful about any races due to two bits being used.

While we shouldn't rule it out, I think it's important to first look at
that original patch and see if it's remotely acceptable and makes enough
difference to a real workload to matter. If so, then we could consider
additional complexity on top to make it work on 32-bit -- maybe separated
by one release as it took a long time to flush out subtle bugs with the
PG_waiters approach.

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]