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-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121113114344.GA26305@gmail.com>
Date:	Tue, 13 Nov 2012 12:43:44 +0100
From:	Ingo Molnar <mingo@...nel.org>
To:	Mel Gorman <mgorman@...e.de>
Cc:	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Andrea Arcangeli <aarcange@...hat.com>,
	Rik van Riel <riel@...hat.com>,
	Johannes Weiner <hannes@...xchg.org>,
	Hugh Dickins <hughd@...gle.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Linux-MM <linux-mm@...ck.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 12/19] mm: migrate: Introduce migrate_misplaced_page()


* Ingo Molnar <mingo@...nel.org> wrote:

> 
> * Mel Gorman <mgorman@...e.de> wrote:
> 
> > From: Peter Zijlstra <a.p.zijlstra@...llo.nl>
> > 
> > Note: This was originally based on Peter's patch "mm/migrate: Introduce
> > 	migrate_misplaced_page()" but borrows extremely heavily from Andrea's
> > 	"autonuma: memory follows CPU algorithm and task/mm_autonuma stats
> > 	collection". The end result is barely recognisable so signed-offs
> > 	had to be dropped. If original authors are ok with it, I'll
> > 	re-add the signed-off-bys.
> > 
> > Add migrate_misplaced_page() which deals with migrating pages from
> > faults.
> > 
> > Based-on-work-by: Lee Schermerhorn <Lee.Schermerhorn@...com>
> > Based-on-work-by: Peter Zijlstra <a.p.zijlstra@...llo.nl>
> > Based-on-work-by: Andrea Arcangeli <aarcange@...hat.com>
> > Signed-off-by: Mel Gorman <mgorman@...e.de>
> > ---
> >  include/linux/migrate.h |    8 ++++
> >  mm/migrate.c            |  104 ++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 110 insertions(+), 2 deletions(-)
> 
> That's a nice patch - the TASK_NUMA_FAULT approach in the 
> original patch was not very elegant.
> 
> I've started testing it to see how well your version works.

Hm, I'm seeing some instability - see the boot crash below. If I 
undo your patch it goes away.

( To help debugging this I've attached migration.patch which 
  applies your patch on top of Peter's latest queue of patches. 
  If I revert this patch then the crash goes away. )

I've gone back to the well-tested page migration code from Peter 
for the time being.

Thanks,

	Ingo

[    7.999147] Freeing unused kernel memory: 148k freed
[    8.004841] Freeing unused kernel memory: 44k freed
[    8.028683] BUG: Bad page state in process init  pfn:815ae6
[    8.034462] page:ffffea002056b980 count:0 mapcount:1 mapping:ffff8804175c3218 index:0x14

[    8.042835] page flags: 0xc080000000001c(referenced|uptodate|dirty)
[    8.049884] Modules linked in:
[    8.053164] Pid: 1, comm: init Not tainted 3.7.0-rc5-01482-g324e8d9-dirty #349
[    8.060626] Call Trace:
[    8.063246]  [<ffffffff819bcd9d>] bad_page+0xe6/0xfb
[    8.068358]  [<ffffffff8118d4e4>] free_pages_prepare+0x104/0x110
[    8.074510]  [<ffffffff8118d530>] free_hot_cold_page+0x40/0x160
[    8.080576]  [<ffffffff81192237>] __put_single_page+0x27/0x30
[    8.084612] usb 3-1: New USB device found, idVendor=1241, idProduct=1503
[    8.084615] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    8.084618] usb 3-1: Product: USB Keyboard
[    8.084620] usb 3-1: Manufacturer:  
[    8.098878] input:   USB Keyboard as /devices/pci0000:00/0000:00:12.0/usb3/3-1/3-1:1.0/input/input5
[    8.099128] hid-generic 0003:1241:1503.0003: input,hidraw2: USB HID v1.10 Keyboard [  USB Keyboard] on usb-0000:00:12.0-1/input0
[    8.121649] input:   USB Keyboard as /devices/pci0000:00/0000:00:12.0/usb3/3-1/3-1:1.1/input/input6
[    8.121896] hid-generic 0003:1241:1503.0004: input,hidraw3: USB HID v1.10 Device [  USB Keyboard] on usb-0000:00:12.0-1/input1
[    8.150442]  [<ffffffff81192915>] put_page+0x35/0x50
[    8.155563]  [<ffffffff811ad950>] handle_pte_fault+0x3c0/0xbb0
[    8.161544]  [<ffffffff81098cee>] ? native_flush_tlb_others+0x2e/0x30
[    8.168137]  [<ffffffff811aef08>] handle_mm_fault+0x278/0x340
[    8.174030]  [<ffffffff819cd0c2>] __do_page_fault+0x172/0x4e0
[    8.179933]  [<ffffffff810e947e>] ? task_numa_work+0x21e/0x2f0
[    8.185935]  [<ffffffff810cbc4c>] ? task_work_run+0xac/0xe0
[    8.191657]  [<ffffffff819cd43e>] do_page_fault+0xe/0x10
[    8.197126]  [<ffffffff819c9a58>] page_fault+0x28/0x30
[    8.202411] Disabling lock debugging due to kernel taint
[    8.208057] ------------[ cut here ]------------
[    8.212843] kernel BUG at include/linux/mm.h:419!
[    8.217688] invalid opcode: 0000 [#1] SMP 
[    8.222075] Modules linked in:
[    8.225345] CPU 8 
[    8.227256] Pid: 1, comm: init Tainted: G    B        3.7.0-rc5-01482-g324e8d9-dirty #349 Supermicro H8DG6/H8DGi/H8DG6/H8DGi
[    8.239018] RIP: 0010:[<ffffffff819bd455>]  [<ffffffff819bd455>] get_page.part.44+0x4/0x6
[    8.247489] RSP: 0000:ffff880415c67d08  EFLAGS: 00010246
[    8.252940] RAX: 0000000000000000 RBX: ffff8808161bc5e0 RCX: 000000002056b980
[    8.260210] RDX: 0000000815ae6100 RSI: 00007f006f4bc915 RDI: 0000000815ae6100
[    8.267488] RBP: ffff880415c67d08 R08: ffff88081499e2c0 R09: 0000000000000028
[    8.274763] R10: 00007fffcaf301a0 R11: 00007fffcaf302b0 R12: ffffea002056b980
[    8.282042] R13: 0000000815ae6100 R14: ffff88081499e2c0 R15: ffffea0020586f30
[    8.289318] FS:  00007f006f6c3740(0000) GS:ffff880817c00000(0000) knlGS:0000000000000000
[    8.297626] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[    8.303537] CR2: 00007f006f4bc915 CR3: 00000008161b1000 CR4: 00000000000407e0
[    8.310813] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    8.318091] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[    8.325369] Process init (pid: 1, threadinfo ffff880415c66000, task ffff880415c68000)
[    8.333416] Stack:
[    8.335570]  ffff880415c67dc8 ffffffff811ae135 ffff8808149a02b8 00000000004da000
[    8.343505]  0000000000400000 00000000004da000 ffff880415c67d68 ffffffff81098cee
[    8.351475]  ffff880415c67d68 ffffffff00000028 ffff8808149a02b8 ffff8808149a0000
[    8.359384] Call Trace:
[    8.361977]  [<ffffffff811ae135>] handle_pte_fault+0xba5/0xbb0
[    8.367957]  [<ffffffff81098cee>] ? native_flush_tlb_others+0x2e/0x30
[    8.374538]  [<ffffffff81098f4e>] ? flush_tlb_mm_range+0x1ee/0x230
[    8.380856]  [<ffffffff811aef08>] handle_mm_fault+0x278/0x340
[    8.386740]  [<ffffffff819cd0c2>] __do_page_fault+0x172/0x4e0
[    8.392625]  [<ffffffff8105d5d1>] ? __switch_to+0x181/0x4a0
[    8.398343]  [<ffffffff810e947e>] ? task_numa_work+0x21e/0x2f0
[    8.404315]  [<ffffffff810cbc4c>] ? task_work_run+0xac/0xe0
[    8.410026]  [<ffffffff819cd43e>] do_page_fault+0xe/0x10
[    8.415478]  [<ffffffff819c9a58>] page_fault+0x28/0x30
[    8.420753] Code: 99 ff ff ff 85 c0 74 0c 4c 89 e0 48 c1 e0 06 48 29 d8 eb 02 31 c0 5b 41 5c 5d c3 55 48 89 e5 0f 0b 55 48 89 e5 0f 0b 55 48 89 e5 <0f> 0b 55 48 8b 07 31 c9 48 89 e5 f6 c4 40 74 03 8b 4f 68 bf 00 
[    8.444972] RIP  [<ffffffff819bd455>] get_page.part.44+0x4/0x6
[    8.451021]  RSP <ffff880415c67d08>
[    8.454674] ---[ end trace 871518523836e5de ]---
[   32.668913] BUG: soft lockup - CPU#8 stuck for 22s! [init:1]


View attachment "config" of type "text/plain" (92019 bytes)

View attachment "migration.patch" of type "text/plain" (6989 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ