Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753714Ab3JCAwD (ORCPT ); Wed, 2 Oct 2013 20:52:03 -0400 Received: from mail-pd0-f181.google.com ([209.85.192.181]:63998 "EHLO mail-pd0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753114Ab3JCAwA (ORCPT ); Wed, 2 Oct 2013 20:52:00 -0400 From: John Stultz To: LKML Cc: John Stultz , Andrew Morton , Android Kernel Team , Robert Love , Mel Gorman , Hugh Dickins , Dave Hansen , Rik van Riel , Dmitry Adamushko , Dave Chinner , Neil Brown , Andrea Righi , Andrea Arcangeli , "Aneesh Kumar K.V" , Mike Hommey , Taras Glek , Dhaval Giani , Jan Kara , KOSAKI Motohiro , Michel Lespinasse , Rob Clark , Minchan Kim , "linux-mm@kvack.org" Subject: [PATCH 00/14] Volatile Ranges v9 Date: Wed, 2 Oct 2013 17:51:29 -0700 Message-Id: <1380761503-14509-1-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 1.8.1.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4987 Lines: 125 So its been awhile since the last release of the volatile ranges patches, and while Minchan and I have been busy with other things, we have been slowly chipping away at issues and differences trying to get a patchset that we both agree on. There's still a few smaller issues, but we figured any further polishing of the patch series in private would be unproductive and it would be much better to send the patches out for review and comment and get some wider opinions. Whats new in v9: * Updated to v3.11 * Added vrange purging logic to purge anonymous pages on swapless systems * Added logic to allocate the vroot structure dynamically to avoid added overhead to mm and address_space structures * Lots of minor tweaks, changes and cleanups Still TODO: * Sort out better solution for clearing volatility on new mmaps - Minchan has a different approach here * Sort out apparent shrinker livelock that occasionally crops up under severe pressure Feedback or thoughts here would be particularly helpful! As is apparent from the author list, Minchan has really been the one doing the heavy lifting here, and I've only been finding and fixing a few bugs, refactoring the code for readability, and trying to clarify commit messages. So many many thanks to Minchan here for all his great work, and putting up with my sometimes misguided "editing". Also, thanks to Dhaval for his maintaining and vastly improving the volatile ranges test suite, which can be found here: https://github.com/volatile-ranges-test/vranges-test These patches can also be pulled from git here: git://git.linaro.org/people/jstultz/android-dev.git dev/vrange-v9 We'd really welcome any feedback and comments on the patch series. thanks -john Cc: Andrew Morton Cc: Android Kernel Team Cc: Robert Love Cc: Mel Gorman Cc: Hugh Dickins Cc: Dave Hansen Cc: Rik van Riel Cc: Dmitry Adamushko Cc: Dave Chinner Cc: Neil Brown Cc: Andrea Righi Cc: Andrea Arcangeli Cc: Aneesh Kumar K.V Cc: Mike Hommey Cc: Taras Glek Cc: Dhaval Giani Cc: Jan Kara Cc: KOSAKI Motohiro Cc: Michel Lespinasse Cc: Rob Clark Cc: Minchan Kim Cc: linux-mm@kvack.org John Stultz (2): vrange: Clear volatility on new mmaps vrange: Add support for volatile ranges on file mappings Minchan Kim (12): vrange: Add basic data structure and functions vrange: Add vrange support to mm_structs vrange: Add new vrange(2) system call vrange: Add basic functions to purge volatile pages vrange: Purge volatile pages when memory is tight vrange: Send SIGBUS when user try to access purged page vrange: Add vrange LRU list for purging vrange: Add core shrinking logic for swapless system vrange: Purging vrange-anon pages from shrinker vrange: Support background purging for vrange-file vrange: Allocate vroot dynamically vrange: Add vmstat counter about purged page arch/x86/syscalls/syscall_64.tbl | 1 + fs/inode.c | 4 + include/linux/fs.h | 4 + include/linux/mm_types.h | 4 + include/linux/rmap.h | 11 +- include/linux/swap.h | 6 +- include/linux/syscalls.h | 2 + include/linux/vm_event_item.h | 2 + include/linux/vrange.h | 84 +++ include/linux/vrange_types.h | 28 + include/uapi/asm-generic/mman-common.h | 3 + kernel/fork.c | 12 + kernel/sys_ni.c | 1 + lib/Makefile | 2 +- mm/Makefile | 2 +- mm/internal.h | 2 - mm/ksm.c | 2 +- mm/memory.c | 27 + mm/mincore.c | 5 +- mm/mmap.c | 5 + mm/rmap.c | 28 +- mm/vmscan.c | 17 +- mm/vmstat.c | 2 + mm/vrange.c | 1196 ++++++++++++++++++++++++++++++++ 24 files changed, 1429 insertions(+), 21 deletions(-) create mode 100644 include/linux/vrange.h create mode 100644 include/linux/vrange_types.h create mode 100644 mm/vrange.c -- 1.8.1.2 -- 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/