Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S942298AbcJZMwE (ORCPT ); Wed, 26 Oct 2016 08:52:04 -0400 Received: from mail-ua0-f177.google.com ([209.85.217.177]:40873 "EHLO mail-ua0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932611AbcJZMv7 (ORCPT ); Wed, 26 Oct 2016 08:51:59 -0400 MIME-Version: 1.0 From: Andreas Gruenbacher Date: Wed, 26 Oct 2016 14:51:57 +0200 Message-ID: Subject: CONFIG_VMAP_STACK, on-stack struct, and wake_up_bit To: Andy Lutomirski Cc: LKML , Bob Peterson , Steven Whitehouse Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 850 Lines: 36 Hi, CONFIG_VMAP_STACK has broken gfs2 and I'm trying to figure out what's going on. What I'm seeing is the following: on a fresh gfs2 filesystem created with: mkfs.gfs2 -p lock_nolock $DEVICE I get the following BUG with 4.9-rc2, CONFIG_VMAP_STACK and CONFIG_DEBUG_VIRTUAL turned on: kernel BUG at arch/x86/mm/physaddr.c:26! Stack of kernel thread: __phys_addr(x) bit_waitqueue(word, bit) wake_up_bit(word = &gh->gh_iflags, bit = HIF_WAIT) gfs2_holder_wake(gh) The gh here is on the stack of another kernel thread: static int fill_super(struct super_block *sb, struct gfs2_args *args, int silent) { struct gfs2_holder mount_gh; } Which is waiting on the bit with: wait_on_bit(&gh->gh_iflags, HIF_WAIT, TASK_UNINTERRUPTIBLE) Is accessing a struct on another kernel thread's stack no longer working? Thanks, Andreas