All of lore.kernel.org
 help / color / mirror / Atom feed
* [added to the 3.18 stable tree] sched, numa: Do not hint for NUMA balancing on VM_MIXEDMAP mappings
@ 2015-06-22  4:12 Sasha Levin
  2015-06-22  4:12 ` [added to the 3.18 stable tree] Drivers: hv: vmbus: Add support for VMBus panic notifier handler Sasha Levin
                   ` (63 more replies)
  0 siblings, 64 replies; 74+ messages in thread
From: Sasha Levin @ 2015-06-22  4:12 UTC (permalink / raw)
  To: stable, stable-commits
  Cc: Mel Gorman, Ingo Molnar, Peter Zijlstra, Andrew Morton,
	Linus Torvalds, Jovi Zhangwei, Sasha Levin

From: Mel Gorman <mgorman@suse.de>

commit 8e76d4eecf7afeec9328e21cd5880e281838d0d6 upstream.

Jovi Zhangwei reported the following problem

  Below kernel vm bug can be triggered by tcpdump which mmaped a lot of pages
  with GFP_COMP flag.

  [Mon May 25 05:29:33 2015] page:ffffea0015414000 count:66 mapcount:1 mapping:          (null) index:0x0
  [Mon May 25 05:29:33 2015] flags: 0x20047580004000(head)
  [Mon May 25 05:29:33 2015] page dumped because: VM_BUG_ON_PAGE(compound_order(page) && !PageTransHuge(page))
  [Mon May 25 05:29:33 2015] ------------[ cut here ]------------
  [Mon May 25 05:29:33 2015] kernel BUG at mm/migrate.c:1661!
  [Mon May 25 05:29:33 2015] invalid opcode: 0000 [#1] SMP

In this case it was triggered by running tcpdump but it's not necessary
reproducible on all systems.

  sudo tcpdump -i bond0.100 'tcp port 4242' -c 100000000000 -w 4242.pcap

Compound pages cannot be migrated and it was not expected that such pages
be marked for NUMA balancing.  This did not take into account that drivers
such as net/packet/af_packet.c may insert compound pages into userspace
with vm_insert_page.  This patch tells the NUMA balancing protection
scanner to skip all VM_MIXEDMAP mappings which avoids the possibility that
compound pages are marked for migration.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Reported-by: Jovi Zhangwei <jovi@cloudflare.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[jovi: Backported to 3.18: adjust context]
Signed-off-by: Jovi Zhangwei <jovi@cloudflare.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
 kernel/sched/fair.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index ef2b104..2246a36 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -1979,8 +1979,10 @@ void task_numa_work(struct callback_head *work)
 		vma = mm->mmap;
 	}
 	for (; vma; vma = vma->vm_next) {
-		if (!vma_migratable(vma) || !vma_policy_mof(vma))
+		if (!vma_migratable(vma) || !vma_policy_mof(vma) ||
+		    is_vm_hugetlb_page(vma) || (vma->vm_flags & VM_MIXEDMAP)) {
 			continue;
+		}
 
 		/*
 		 * Shared library pages mapped by multiple processes are not
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe stable" in

^ permalink raw reply related	[flat|nested] 74+ messages in thread

end of thread, other threads:[~2015-06-23 19:24 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-22  4:12 [added to the 3.18 stable tree] sched, numa: Do not hint for NUMA balancing on VM_MIXEDMAP mappings Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] Drivers: hv: vmbus: Add support for VMBus panic notifier handler Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] ARM: shmobile: r8a7791: add USBDMAC{0,1} clocks to device tree Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] ARM: shmobile: r8a7791: Correct SDHI clock labels and output-names Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] xtensa: xtfpga: fix hardware lockup caused by LCD driver Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] serial: imx: Enable UCR4_OREN in startup interface Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] serial: imx: Fix clearing of receiver overrun flag Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] pinctrl: remove maxpin from documentation Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] ARM: shmobile: r8a7790: Correct SYSCIER value Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] ARM: shmobile: r8a7791: " Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] arm64: kill off the libgcc dependency Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] arm64: Adjust EFI libstub object include logic Sasha Levin
2015-06-22 15:47   ` Kevin Hilman
2015-06-22 15:47     ` Kevin Hilman
2015-06-22  4:12 ` [added to the 3.18 stable tree] pinctrl: remove enable/disable callbacks from documentation Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] pinctrl: remove doc mention of the enable/disable API Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] pinctrl: fix example .get_group_pins implementation signature Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: kye: Fix report descriptor for Genius PenSketch M912 Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: uclogic: Set quirks from inside the driver Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: saitek: add USB ID for older R.A.T. 7 Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: microsoft: Add ID for NE7K wireless keyboard Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: Introduce hidpp, a module to handle Logitech hid++ devices Sasha Levin
2015-06-22 14:16   ` Benjamin Tissoires
2015-06-23 14:24     ` Sasha Levin
2015-06-23 19:24       ` Benjamin Tissoires
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: add ALWAYS_POLL quirk for a Logitech 0xc007 Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: add HP OEM mouse to quirk ALWAYS_POLL Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: add quirk for PIXART OEM mouse used by HP Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: usbhid: more mice with ALWAYS_POLL Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: usbhid: yet another mouse " Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: usbhid: Add a quirk for raphnet multi-gamepad adapters Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: sjoy: support Super Joy Box 4 Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] HID: usbhid: Add HID_QUIRK_NOGET for Aten DVI KVM switch Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] iommu/vt-d: Allow RMRR on graphics devices too Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] ACPI: Add support for device specific properties Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] Driver core: Unified device properties interface for platform firmware Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] serial: 8250: add support for ACPI-probed serial port for X-Gene platform Sasha Levin
2015-06-22  4:12 ` [added to the 3.18 stable tree] serial: 8250_dw: add support for AMD SOC Carrizo Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] stable_kernel_rules: Add clause about specification of kernel versions to patch Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] xprtrdma: Take struct ib_device_attr off the stack Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] xprtrdma: Prevent infinite loop in rpcrdma_ep_create() Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] inet: add TCP_NEW_SYN_RECV state Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] net: add sk_fullsock() helper Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] netfilter: x_tables: fix cgroup matching on non-full sks Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] ext4: fix bh leak on error paths in ext4_rename() and ext4_cross_rename() Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] jhash: Update jhash_[321]words functions to use correct initval Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] vti6: fix uninit when using x-netns Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] usb: dwc2: hcd: use new USB_RESUME_TIMEOUT Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] [media] Add and use IS_REACHABLE macro Sasha Levin
2015-06-23 10:11   ` Arnd Bergmann
2015-06-23 14:26     ` Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] RDS: Documentation: Document AF_RDS, PF_RDS and SOL_RDS correctly Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] selinux/nlmsg: add XFRM_MSG_NEWSPDINFO Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] selinux/nlmsg: add XFRM_MSG_GETSPDINFO Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] selinux/nlmsg: add XFRM_MSG_[NEW|GET]SADINFO Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] x86/iommu: Fix header comments regarding standard and _FINISH macros Sasha Levin
2015-06-22  7:09   ` Borislav Petkov
2015-06-22  4:13 ` [added to the 3.18 stable tree] mnt: Fix the error check in __detach_mounts Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] MIPS: unaligned: Fix regular load/store instruction emulation for EVA Sasha Levin
2015-06-22  4:13   ` Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] selinux/nlmsg: add XFRM_MSG_REPORT Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] selinux/nlmsg: add XFRM_MSG_MIGRATE Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] selinux/nlmsg: add XFRM_MSG_MAPPING Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] mlx5: wrong page mask if CONFIG_ARCH_DMA_ADDR_T_64BIT enabled for 32Bit architectures Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] firmware/ihex2fw.c: restore missing default in switch statement Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] efivarfs: Ensure VariableName is NUL-terminated Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] tcp: tcp_get_info() should fetch socket fields once Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] dmaengine: shdmac: avoid unused variable warnings Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] spi: bitbang: Make setup_transfer() callback optional Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] x86: Clean up cr4 manipulation Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] x86: Store a per-cpu shadow copy of CR4 Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] KVM: VMX: Preserve host CR4.MCE value while in guest mode Sasha Levin
2015-06-22  4:13 ` [added to the 3.18 stable tree] kernel: make READ_ONCE() valid on const arguments Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.