From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754181AbcDKJdd (ORCPT ); Mon, 11 Apr 2016 05:33:33 -0400 Received: from mail-lf0-f45.google.com ([209.85.215.45]:36304 "EHLO mail-lf0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754039AbcDKJcL (ORCPT ); Mon, 11 Apr 2016 05:32:11 -0400 Subject: Re: x86: bad pte in pageattr_test To: Dmitry Vyukov References: <570B65DC.6090404@gmail.com> Cc: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , "x86@kernel.org" , LKML , Konstantin Khlebnikov , syzkaller , Kostya Serebryany , Alexander Potapenko , Sasha Levin From: Andrey Ryabinin Message-ID: <570B6F2E.8070109@gmail.com> Date: Mon, 11 Apr 2016 12:32:30 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/11/2016 12:03 PM, Dmitry Vyukov wrote: > On Mon, Apr 11, 2016 at 10:52 AM, Andrey Ryabinin > wrote: >> >> >> On 04/11/2016 11:28 AM, Dmitry Vyukov wrote: >>> Hello, >>> >>> I've got the following WARNING while running syzkaller fuzzer: >>> >>> CPA ffff880054118000: bad pte after revert 8000000054118363 >>> ------------[ cut here ]------------ >>> WARNING: CPU: 2 PID: 1503 at arch/x86/mm/pageattr-test.c:226 >>> pageattr_test+0xa6c/0xd10 >>> NOT PASSED. Please report. >>> Modules linked in: >>> CPU: 2 PID: 1503 Comm: pageattr-test Not tainted 4.6.0-rc2+ #346 >>> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 >>> ffffffff87eb25c0 ffff88003b627a70 ffffffff82c8b17f ffffffff81490b58 >>> fffffbfff0fd64b8 ffff88003b627ae8 0000000000000000 ffffffff86a77e00 >>> ffffffff8129487c 0000000000000009 ffff88003b627ab8 ffffffff8136639f >>> Call Trace: >>> [< inline >] __dump_stack lib/dump_stack.c:15 >>> [] dump_stack+0x12e/0x18f lib/dump_stack.c:51 >>> [] __warn+0x19f/0x1e0 kernel/panic.c:512 >>> [] warn_slowpath_fmt+0xac/0xd0 kernel/panic.c:527 >>> [] pageattr_test+0xa6c/0xd10 arch/x86/mm/pageattr-test.c:226 >>> [] do_pageattr_test+0x1b/0x60 arch/x86/mm/pageattr-test.c:240 >>> [] kthread+0x23f/0x2d0 drivers/block/aoe/aoecmd.c:1303 >> >> It seems, that your script is buggy. It should be kthread() from kernel/kthread.c here. > > > I probably used a non-matching vmlinux for symbolization. No, it's a bug in your script. To find out source location, it uses 'function_name + offset' instead of absolute address. We have 2 kthread() functions in kernel and this confuses you script. E.g. my vmlinux : $ addr2line -i -e vmlinux ffffffff811b5290 /home/andrew/linux/kernel/kthread.c:178 $ addr2line -i -e kasan_conf/vmlinux ffffffff825c7240 /home/andrew/linux/drivers/block/aoe/aoecmd.c:1289 $ echo '[] kthread+0x00/0x00' | python kasan_symbolize.py vmlinux [] kthread+0x00/0x00 drivers/block/aoe/aoecmd.c:462 $ echo '[] kthread+0x00/0x00' | python kasan_symbolize.py vmlinux [] kthread+0x00/0x00 drivers/block/aoe/aoecmd.c:462 > Please > check the raw report below if the symbolized one does not make sense. > > \/\/\/\/\/\/\/\/ > >>> For the repcord, full syzkaller log: >>> https://gist.githubusercontent.com/dvyukov/323ff7275c5ac38156cb40caeacac057/raw/0836f8dd81024e441f81caebdcb73ca1221aef97/gistfile1.txt