lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 16 Sep 2013 16:47:52 +0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	fengguang.wu@...el.com, Vlastimil Babka <vbabka@...e.cz>
Cc:	linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: [munlock] BUG: Bad page map in process killall5 pte:53425553
 pmd:075f4067

Greetings,

I got the below dmesg and the first bad commit is

commit 7a8010cd36273ff5f6fea5201ef9232f30cebbd9
Author: Vlastimil Babka <vbabka@...e.cz>
Date:   Wed Sep 11 14:22:35 2013 -0700

    mm: munlock: manual pte walk in fast path instead of follow_page_mask()
    
    Currently munlock_vma_pages_range() calls follow_page_mask() to obtain
    each individual struct page.  This entails repeated full page table
    translations and page table lock taken for each page separately.
    
    This patch avoids the costly follow_page_mask() where possible, by
    iterating over ptes within single pmd under single page table lock.  The
    first pte is obtained by get_locked_pte() for non-THP page acquired by the
    initial follow_page_mask().  The rest of the on-stack pagevec for munlock
    is filled up using pte_walk as long as pte_present() and vm_normal_page()
    are sufficient to obtain the struct page.
    
    After this patch, a 14% speedup was measured for munlocking a 56GB large
    memory area with THP disabled.
    
    Signed-off-by: Vlastimil Babka <vbabka@...e.cz>
    Cc: Jörn Engel <joern@...fs.org>
    Cc: Mel Gorman <mgorman@...e.de>
    Cc: Michel Lespinasse <walken@...gle.com>
    Cc: Hugh Dickins <hughd@...gle.com>
    Cc: Rik van Riel <riel@...hat.com>
    Cc: Johannes Weiner <hannes@...xchg.org>
    Cc: Michal Hocko <mhocko@...e.cz>
    Cc: Vlastimil Babka <vbabka@...e.cz>
    Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@...ux-foundation.org>


[   56.020577] BUG: Bad page map in process killall5  pte:53425553 pmd:075f4067
[   56.022578] addr:08800000 vm_flags:00100073 anon_vma:7f5f6f00 mapping:  (null) index:8800
[   56.025276] CPU: 0 PID: 101 Comm: killall5 Not tainted 3.11.0-09272-g666a584 #52

git bisect start 666a584d3a765a914642f80deef7a33fb309df5d v3.11 --
git bisect good a09e9a7a4b907f2dfa9bdb2b98a1828ab4b340b2  # 22:15   1080+  Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
git bisect good 8e73e367f7dc50f1d1bc22a63e5764bb4eea9b48  # 22:43   1080+  Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
git bisect good 64c353864e3f7ccba0ade1bd6f562f9a3bc7e68d  # 00:14   1080+  Merge branch 'for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping
git bisect good 640414171818c6293c23e74a28d1c69b2a1a7fe5  # 00:23   1080+  Merge tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
git bisect good fa1586a7e43760f0e25e72b2e3f97ee18b2be967  # 01:08   1080+  Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
git bisect good bc4b4448dba660afc8df3790564320302d9709a1  # 01:43   1080+  mm: move pgtable related functions to right place
git bisect  bad 325c4ef5c4b17372c3222d896040d7848e67fbdb  # 02:08    133-  mm/madvise.c:madvise_hwpoison(): remove local `ret'
git bisect good e76b63f80d938a1319eb5fb0ae7ea69bddfbae38  # 02:27   1340+  memblock, numa: binary search node id
git bisect  bad 762216ab4e175f49d17bc7ad778c57b9028184e6  # 02:51    708-  mm/vmalloc: use wrapper function get_vm_area_size to caculate size of vm area
git bisect good 586a32ac1d33ce7a7548a27e4087e98842c3a06f  # 03:40   3517+  mm: munlock: remove unnecessary call to lru_add_drain()
git bisect good 5b40998ae35cf64561868370e6c9f3d3e94b6bf7  # 04:23   3517+  mm: munlock: remove redundant get_page/put_page pair on the fast path
git bisect  bad 6e543d5780e36ff5ee56c44d7e2e30db3457a7ed  # 04:53    148-  mm: vmscan: fix do_try_to_free_pages() livelock
git bisect  bad 7a8010cd36273ff5f6fea5201ef9232f30cebbd9  # 05:03     69-  mm: munlock: manual pte walk in fast path instead of follow_page_mask()
git bisect good 5b40998ae35cf64561868370e6c9f3d3e94b6bf7  # 09:42  10000+  mm: munlock: remove redundant get_page/put_page pair on the fast path
git bisect  bad d5d04bb48f0eb89c14e76779bb46212494de0bec  # 10:08    128-  Bye, bye, WfW flag
git bisect good 14f83d4c02fa126fd699570429a0bb888e12ddf7  # 16:20  10000+  Revert "mm: munlock: manual pte walk in fast path instead of follow_page_mask()"
git bisect  bad d8efd82eece89f8a5790b0febf17522affe9e1f1  # 16:34     45-  Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus

Thanks,
Fengguang

View attachment "dmesg-quantal-ant-14:20130912234102:3.11.0-09272-g666a584:52" of type "text/plain" (49240 bytes)

Download attachment "bisect-666a584d3a765a914642f80deef7a33fb309df5d-i386-randconfig-i002-0912-BUG:-Bad-page-map-in-process-22004.log" of type "application/octet-stream" (29208 bytes)

View attachment "config-3.11.0-09272-g666a584" of type "text/plain" (69841 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ