From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751556AbcGRE7c (ORCPT ); Mon, 18 Jul 2016 00:59:32 -0400 Received: from szxga02-in.huawei.com ([119.145.14.65]:14696 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751445AbcGRE7a (ORCPT ); Mon, 18 Jul 2016 00:59:30 -0400 From: Xie XiuQi Subject: [BUG] kernel BUG at arch/x86/mm/pageattr.c:216! To: "linux-kernel@vger.kernel.org" CC: Qiu Xishi Message-ID: <578C6220.6050507@huawei.com> Date: Mon, 18 Jul 2016 12:59:12 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.19.210] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A0C0201.578C622A.0097,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: a5f52676c763f690c7ccbbfc823847ac Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all, I'm getting BUG_ON occurred in a panic at arch/x86/mm/pageattr.c:216! on 3.10.0-327.el7 (RHEL 7.2) I want to do a test, to expect system will reboot immediately after panic. But, in drm_fb_helper_panic, may trigger a BUG_ON at arch/x86/mm/pageattr.c:216! Does anyone has good idea to fix it? The code is like bellow: 210 static void cpa_flush_array(unsigned long *start, int numpages, int cache, 211 int in_flags, struct page **pages) 212 { 213 unsigned int i, level; 214 unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */ 215 216 BUG_ON(irqs_disabled()); 217 218 on_each_cpu(__cpa_flush_all, (void *) do_wbinvd, 1); 219 220 if (!cache || do_wbinvd) 221 return; 222 223 /* 224 * We only need to flush on one CPU, 225 * clflush is a MESI-coherent instruction that 226 * will cause all other CPUs to flush the same 227 * cachelines: 228 */ 229 for (i = 0; i < numpages; i++) { 230 unsigned long addr; 231 pte_t *pte; 232 233 if (in_flags & CPA_PAGES_ARRAY) 234 addr = (unsigned long)page_address(pages[i]); 235 else 236 addr = start[i]; 237 238 pte = lookup_address(addr, &level); 239 240 /* 241 * Only flush present addresses: 242 */ 243 if (pte && (pte_val(*pte) & _PAGE_PRESENT)) 244 clflush_cache_range((void *)addr, PAGE_SIZE); 245 } 246 } --- crash messages --- [ 1336.567485] test_module: call panic() function in process context 3 times. [ 1336.567542] Kernel panic - not syncing: call panic() function in process context. [ 1336.567607] CPU: 0 PID: 9566 Comm: bash Tainted: G OE ----V------- 3.10.0-327.el7.x86_64 [ 1336.567699] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014 [ 1336.567789] ffffffff8116f900 00000000035a0a10 ffff88007adc7e00 ffffffff81638844 [ 1336.567848] ffff88007adc7e80 ffffffff81632097 0000000000000008 ffff88007adc7e90 [ 1336.567943] ffff88007adc7e30 00000000035a0a10 8000000000000008 ffff88007ec0d6c8 [ 1336.567992] Call Trace: [ 1336.567992] [] ? clear_zonelist_oom+0xa0/0xa0 [ 1336.567992] [] dump_stack+0x19/0x1b [ 1336.567992] [] panic+0xd8/0x20f [ 1336.567992] [] ? clear_zonelist_oom+0xa0/0xa0 [ 1336.567992] [] dev_wr_actions+0x6d9/0xf60 [test_module] [ 1336.567992] [] dev_wr_handler+0xa6/0x120 [test_module] [ 1336.567992] [] vfs_write+0xbd/0x1e0 [ 1336.567992] [] ? trace_do_page_fault+0x43/0x110 [ 1336.567992] [] SyS_write+0x7f/0xe0 [ 1336.567992] [] system_call_fastpath+0x16/0x1b [ 1336.567992] drm_kms_helper: panic occurred, switching back to text console [ 1336.567992] ------------[ cut here ]------------ [ 1336.567992] kernel BUG at arch/x86/mm/pageattr.c:216! [ 1336.567992] invalid opcode: 0000 [#1] SMP [ 1336.567992] Modules linked in: test_module(O) ip6t_rpfilter ip6t_REJECT ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter ip_tables signo_catch(OV) cirrus ppdev parport_pc parport syscopyarea sysfillrect sysimgblt ttm drm_kms_helper drm serio_raw virtio_balloon i2c_piix4 i2c_core pcspkr xfs libcrc32c sd_mod sr_mod crc_t10dif cdrom crct10dif_common ata_generic pata_acpi virtio_console virtio_scsi ata_piix virtio_pci e1000 libata virtio_ring virtio floppy dm_mirror dm_region_hash dm_log dm_mod [ 1336.567992] CPU: 0 PID: 9566 Comm: bash Tainted: G O ------------ 3.10.0-327.el7.x86_64 [ 1336.567992] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014 [ 1336.567992] task: ffff88007afef300 ti: ffff88007adc4000 task.ti: ffff88007adc4000 [ 1336.567992] RIP: 0010:[] [] change_page_attr_set_clr+0x4c8/0x4d0 [ 1336.567992] RSP: 0018:ffff88007adc7538 EFLAGS: 00010046 [ 1336.567992] RAX: 0000000000000046 RBX: 0000000000000000 RCX: 0000000000000004 [ 1336.567992] RDX: 0000000000002200 RSI: 0000000000000000 RDI: 0000000080000000 [ 1336.567992] RBP: ffff88007adc75d0 R08: 0000000000000010 R09: ffff880000000000 [ 1336.567992] R10: 0000000000003688 R11: ffffffff811a738f R12: 0000000000000010 [ 1336.567992] R13: 0000000000000000 R14: 0000000000000200 R15: 0000000000000005 [ 1336.567992] FS: 00007fee378b1740(0000) GS:ffff88007ec00000(0000) knlGS:0000000000000000 [ 1336.567992] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1336.567992] CR2: 00007fee378b9000 CR3: 0000000078fe6000 CR4: 00000000000006f0 [ 1336.567992] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1336.567992] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 1336.567992] Stack: [ 1336.567992] 000000047efbb000 0000000000000000 0000000000000000 ffff8800360aa000 [ 1336.567992] ffff88007afef300 0000000000000000 0000000000000000 0000000000000010 [ 1336.567992] 0000000000000000 0000000500000001 000000000007aa2f 0000020000000000 [ 1336.567992] Call Trace: [ 1336.567992] [] _set_pages_array+0xe6/0x130 [ 1336.567992] [] set_pages_array_wc+0x13/0x20 [ 1336.567992] [] ttm_set_pages_caching+0x2f/0x70 [ttm] [ 1336.567992] [] ttm_alloc_new_pages.isra.6+0xb4/0x180 [ttm] [ 1336.567992] [] ttm_pool_populate+0x3e3/0x500 [ttm] [ 1336.567992] [] cirrus_ttm_tt_populate+0xe/0x10 [cirrus] [ 1336.567992] [] ttm_bo_move_memcpy+0x655/0x6d0 [ttm] [ 1336.567992] [] ? map_vm_area+0x2e/0x40 [ 1336.567992] [] ? ttm_tt_init+0x69/0xb0 [ttm] [ 1336.567992] [] cirrus_bo_move+0x18/0x20 [cirrus] [ 1336.567992] [] ttm_bo_handle_move_mem+0x265/0x5b0 [ttm] [ 1336.567992] [] ? ttm_bo_mem_space+0xe7/0x350 [ttm] [ 1336.567992] [] ttm_bo_validate+0x20d/0x230 [ttm] [ 1336.567992] [] cirrus_bo_push_sysram+0x93/0xe0 [cirrus] [ 1336.567992] [] cirrus_crtc_do_set_base.isra.9.constprop.11+0x84/0x410 [cirrus] [ 1336.567992] [] cirrus_crtc_mode_set+0x455/0x4e0 [cirrus] [ 1336.567992] [] drm_crtc_helper_set_mode+0x319/0x550 [drm_kms_helper] [ 1336.567992] [] drm_crtc_helper_set_config+0x892/0xab0 [drm_kms_helper] [ 1336.567992] [] drm_mode_set_config_internal+0x67/0x100 [drm] [ 1336.567992] [] restore_fbdev_mode+0xc8/0xf0 [drm_kms_helper] [ 1336.567992] [] drm_fb_helper_force_kernel_mode+0x75/0xb0 [drm_kms_helper] [ 1336.567992] [] drm_fb_helper_panic+0x3d/0x50 [drm_kms_helper] [ 1336.567992] [] notifier_call_chain+0x4c/0x70 [ 1336.567992] [] ? clear_zonelist_oom+0xa0/0xa0 [ 1336.567992] [] atomic_notifier_call_chain+0x1a/0x20 [ 1336.567992] [] panic+0x10f/0x20f [ 1336.567992] [] ? clear_zonelist_oom+0xa0/0xa0 [ 1336.567992] [] dev_wr_actions+0x6d9/0xf60 [test_module] [ 1336.567992] [] dev_wr_handler+0xa6/0x120 [test_module] [ 1336.567992] [] vfs_write+0xbd/0x1e0 [ 1336.567992] [] ? trace_do_page_fault+0x43/0x110 [ 1336.567992] [] SyS_write+0x7f/0xe0 [ 1336.567992] [] system_call_fastpath+0x16/0x1b [ 1336.567992] Code: ba 00 00 00 48 c7 c7 82 7d a0 81 44 89 85 78 ff ff ff 89 4d 80 e8 69 8e 01 00 44 8b 85 78 ff ff ff 8b 4d 80 e9 c0 fd ff ff 0f 0b <0f> 0b 0f 0b 0f 1f 40 00 0f 1f 44 00 00 55 31 c0 48 89 e5 48 83 [ 1336.567992] RIP [] change_page_attr_set_clr+0x4c8/0x4d0 [ 1336.567992] RSP [ 1336.567992] ---[ end trace 19cbe62f0bfc1b34 ]--- _______________________________________________ kernel.openeuler mailing list kernel.openeuler@huawei.com http://rnd-openeuler.huawei.com/mailman/listinfo/kernel.openeuler .