Linux kernel -stable discussions
 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; 72+ 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] 72+ messages in thread

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

Thread overview: 72+ 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  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 ` [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox