From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754806AbaELIhU (ORCPT ); Mon, 12 May 2014 04:37:20 -0400 Received: from cantor2.suse.de ([195.135.220.15]:51458 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754520AbaELIhS (ORCPT ); Mon, 12 May 2014 04:37:18 -0400 Message-ID: <5370883C.5080105@suse.cz> Date: Mon, 12 May 2014 10:37:16 +0200 From: Vlastimil Babka User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Greg Thelen , Andrew Morton CC: David Rientjes , Mel Gorman , Rik van Riel , Joonsoo Kim , Hugh Dickins , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [patch v3 2/6] mm, compaction: return failed migration target pages back to freelist References: <20140507141534.d4def933b3a9999e7826df5c@linux-foundation.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/07/2014 11:39 PM, Greg Thelen wrote: > > On Wed, May 07 2014, Andrew Morton wrote: > >> On Tue, 6 May 2014 19:22:43 -0700 (PDT) David Rientjes wrote: >> >>> Memory compaction works by having a "freeing scanner" scan from one end of a >>> zone which isolates pages as migration targets while another "migrating scanner" >>> scans from the other end of the same zone which isolates pages for migration. >>> >>> When page migration fails for an isolated page, the target page is returned to >>> the system rather than the freelist built by the freeing scanner. This may >>> require the freeing scanner to continue scanning memory after suitable migration >>> targets have already been returned to the system needlessly. >>> >>> This patch returns destination pages to the freeing scanner freelist when page >>> migration fails. This prevents unnecessary work done by the freeing scanner but >>> also encourages memory to be as compacted as possible at the end of the zone. >>> >>> Reported-by: Greg Thelen >> >> What did Greg actually report? IOW, what if any observable problem is >> being fixed here? > > I detected the problem at runtime seeing that ext4 metadata pages (esp > the ones read by "sbi->s_group_desc[i] = sb_bread(sb, block)") were > constantly visited by compaction calls of migrate_pages(). These pages > had a non-zero b_count which caused fallback_migrate_page() -> > try_to_release_page() -> try_to_free_buffers() to fail. That sounds like something the "mm, compaction: add per-zone migration pfn cache for async compaction" patch would fix, not this one, though. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ee0-f43.google.com (mail-ee0-f43.google.com [74.125.83.43]) by kanga.kvack.org (Postfix) with ESMTP id ECE296B0035 for ; Mon, 12 May 2014 04:37:18 -0400 (EDT) Received: by mail-ee0-f43.google.com with SMTP id d17so4361443eek.16 for ; Mon, 12 May 2014 01:37:18 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id t3si9937072eeg.211.2014.05.12.01.37.17 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 12 May 2014 01:37:17 -0700 (PDT) Message-ID: <5370883C.5080105@suse.cz> Date: Mon, 12 May 2014 10:37:16 +0200 From: Vlastimil Babka MIME-Version: 1.0 Subject: Re: [patch v3 2/6] mm, compaction: return failed migration target pages back to freelist References: <20140507141534.d4def933b3a9999e7826df5c@linux-foundation.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Greg Thelen , Andrew Morton Cc: David Rientjes , Mel Gorman , Rik van Riel , Joonsoo Kim , Hugh Dickins , linux-kernel@vger.kernel.org, linux-mm@kvack.org On 05/07/2014 11:39 PM, Greg Thelen wrote: > > On Wed, May 07 2014, Andrew Morton wrote: > >> On Tue, 6 May 2014 19:22:43 -0700 (PDT) David Rientjes wrote: >> >>> Memory compaction works by having a "freeing scanner" scan from one end of a >>> zone which isolates pages as migration targets while another "migrating scanner" >>> scans from the other end of the same zone which isolates pages for migration. >>> >>> When page migration fails for an isolated page, the target page is returned to >>> the system rather than the freelist built by the freeing scanner. This may >>> require the freeing scanner to continue scanning memory after suitable migration >>> targets have already been returned to the system needlessly. >>> >>> This patch returns destination pages to the freeing scanner freelist when page >>> migration fails. This prevents unnecessary work done by the freeing scanner but >>> also encourages memory to be as compacted as possible at the end of the zone. >>> >>> Reported-by: Greg Thelen >> >> What did Greg actually report? IOW, what if any observable problem is >> being fixed here? > > I detected the problem at runtime seeing that ext4 metadata pages (esp > the ones read by "sbi->s_group_desc[i] = sb_bread(sb, block)") were > constantly visited by compaction calls of migrate_pages(). These pages > had a non-zero b_count which caused fallback_migrate_page() -> > try_to_release_page() -> try_to_free_buffers() to fail. That sounds like something the "mm, compaction: add per-zone migration pfn cache for async compaction" patch would fix, not this one, though. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org