Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1669272pxa; Thu, 6 Aug 2020 12:58:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxe/8D9UYqXIPc8rSkkRG3q0YONM2uEXXEASKgxbBQJOj7OWsnG+hRfXpLVL1I8xjVkgZjz X-Received: by 2002:a17:906:36c2:: with SMTP id b2mr5637358ejc.238.1596743912458; Thu, 06 Aug 2020 12:58:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596743912; cv=none; d=google.com; s=arc-20160816; b=vYmNZ9bKJcG28xgdg72KHUyHwPwYdHKJnpAezMjFh+A7Ic9jCjuqwDTxlE83qJIDYV AaBIijNcI690L0VihTiA/v2QG30C8Af8wbOWiWiEEkqYsSWGqMkehtxY4UebJQC0Dwp7 6zop58GGuwY7lg1CIv8K98jX8HFptLfet+yXHo3bW5nKze6ndVFvfgqdNEbwmD58giZP 4488HUNLVpFutvQI+RzZ5ZMzMHt46EFpRv1bKzaTBDBx1mAI6SX9r8PHajfvr6Lq/LRG SuB1mRheGSPQdqv9I79zfYyidQOFh7+OYat7nVMAIEb5HNmi6l3A4hShmBEDPm2IWosG zf4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=FCOZIRhvd3ECxrtGqId1ZP0YOYmVDIm1/Jxa7nxwJQE=; b=T6hHu2GDjegHy3BeOcOgow3wSKd81kUOglRpgLXNHhCOcI8flV8bvEAATAN7FsOrCg g7oeoO/QbjPF3q0Gl0Z78q27WmyXpSiy+cVnP+QRuGV+ZAS5oTQNUBQee50EbujLjgwy qvTRi+cFiesFWb6bUPP4ygfawmoun5m4K4r6+IyI1dGLdIvcVducTMsn1fmH71ZmAn04 +gi8ptRQnqk4beMPFe4y5BSKlWRMBGWTBIley1jdD9BYxaQU1EwRZBbqunlon3nlB3Jp AtmpB1ETJtzF5Fj0Hd5pHqVVEEPiU30F2cPANg3YMPKnsDpD1R+WIXYfYrtBaKU6gP8b VLvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=kmKAxtd0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w1si3714853eds.83.2020.08.06.12.58.09; Thu, 06 Aug 2020 12:58:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=kmKAxtd0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726398AbgHFT5a (ORCPT + 99 others); Thu, 6 Aug 2020 15:57:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725875AbgHFT52 (ORCPT ); Thu, 6 Aug 2020 15:57:28 -0400 Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B897CC061574 for ; Thu, 6 Aug 2020 12:57:28 -0700 (PDT) Received: by mail-qt1-x843.google.com with SMTP id v22so31405275qtq.8 for ; Thu, 06 Aug 2020 12:57:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=FCOZIRhvd3ECxrtGqId1ZP0YOYmVDIm1/Jxa7nxwJQE=; b=kmKAxtd0R5xtd5UrJA4nBn3Y3xBU0sEQNaIeK846VSdEuH/EVHCsgWQ7m8P0p2ndBq 681i8D+ofQEmE8WtQCMQeT2uJRF13V9skph1L+7NH05h/v6EplObdgpBI7GZGEyczYdP OLxiHhGfszlB36ydgn2ODdwb1THR/DGSQayGdpl7Af0A+5/yiGJF6WpGa6WUeuSNcymn jaOILBebxiySjSPned545p1+5uEnvY/1o3qCDltq0cQG0T0GDapp+zQ0nc5lnFunMK1d PFNwUtsogJ5XOv+iCAuTz80DdqeBte71GAv4GXujTazfMa8vE0OLc9YdEd1loNNbWEK+ X02A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=FCOZIRhvd3ECxrtGqId1ZP0YOYmVDIm1/Jxa7nxwJQE=; b=A2Qx/uwcx79Q76O7zB7J24O8vDGadMOVJKFGvXZym7LfEBkj2WtcOHhyolnRdWpI8m ziluvD7nAxFBrMQtS8GbXhX70L78zRSVg/HoWLK1fSIo4qgV1Tr7Bs+TjpHhouKiUx2p DfUMK+yp0EmIXZHi3Fx3Xkqbo2NjwX+y4GCUvyMWzeCgLfLoOWm/B1n41utZ7YRhMtvZ xQTMUAoSwyXD6pyRFjC4Ie0/7DZG1s97UT9L55z9FcuRChdUmqqlpzPBxwJotTMCX3OA BIJ9Xldf5sxugy1jI4YNuF7TQ4VEtbNIuYe4quZM7Scppo7u2pEdy9HABLafryu1Y5A3 skcw== X-Gm-Message-State: AOAM531iOT9ndZxlkB87QIadu9pvz/h5PfI6xE9nxIaxmRCfwlKwEMXY 8pSjKFIfIs5DbnBibQFQqYE= X-Received: by 2002:aed:2f02:: with SMTP id l2mr10786981qtd.48.1596743847866; Thu, 06 Aug 2020 12:57:27 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::1:2e8b]) by smtp.gmail.com with ESMTPSA id s30sm5693189qtc.87.2020.08.06.12.57.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2020 12:57:27 -0700 (PDT) Date: Thu, 6 Aug 2020 15:57:26 -0400 From: Tejun Heo To: Linus Torvalds Cc: Joerg Roedel , Ingo Molnar , "Jason A. Donenfeld" , Linux Kernel Mailing List , Thomas Gleixner , Borislav Petkov , Peter Zijlstra , Andrew Morton Subject: Re: [GIT PULL] x86/mm changes for v5.9 Message-ID: <20200806195726.GI4520@mtj.thefacebook.com> References: <20200803190354.GA1293087@gmail.com> <20200805110348.GA108872@zx2c4.com> <20200806131034.GA2067370@gmail.com> <20200806185723.GA24304@suse.de> <20200806192333.GB24304@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 06, 2020 at 12:42:23PM -0700, Linus Torvalds wrote: > that admittedly odd sequence is get_work_pwq(work) > > And then the faulting instruction is: > > > 2a:* 49 8b 46 08 mov 0x8(%r14),%rax <-- trapping instruction > > and this is the "->wq" dereference. > > So it's the pwq->wq that traps, with 'pwq' being the trapping base > pointer, and clearly being in the vmalloc space. > > I think pwq may a percpu allocation, so not _directly_ vmalloc(). > Adding Tejun to the cc in case he can clarify ("No, silly Linus, it's > allocated here.."). Hey, silly Linus, yeap, they're per-cpu allocations and will be in vmalloc address space for per-cpu workqueues. For unbound workqueues, they're regular kmallocs. The per-cpu allocation happens in alloc_and_link_pwqs(): static int alloc_and_link_pwqs(struct workqueue_struct *wq) { bool highpri = wq->flags & WQ_HIGHPRI; int cpu, ret; if (!(wq->flags & WQ_UNBOUND)) { wq->cpu_pwqs = alloc_percpu(struct pool_workqueue); if (!wq->cpu_pwqs) return -ENOMEM; Thanks. -- tejun