Received: by 10.213.65.68 with SMTP id h4csp35323imn; Wed, 21 Mar 2018 11:43:56 -0700 (PDT) X-Google-Smtp-Source: AG47ELtht3mypgR0oAPWkkmq5InSUrVTAHDE+BAI5nOFb9sY+LvNgKSdiAO6iOLzxj5DiITM93mT X-Received: by 10.101.78.15 with SMTP id r15mr10245357pgt.283.1521657836192; Wed, 21 Mar 2018 11:43:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521657836; cv=none; d=google.com; s=arc-20160816; b=UDT61pBV52mnj8Pw5yE6tzdxDY3k6463lRspr0dvovLt2143+Xm3lS/Eh1XFdzwRwp nWD9IT8oZQg2cx2tkfehpwUqL64XYdJB528cxMvlTN+uQVOsCp7cq0xGhfFUUTfiAsTH 3i3rZ+kw00Th2suMsmH0KXGhOdvZi8BQTMG7t0UxwIhxrrLPGro4oSmmTHoUW5Gj9Rtw t/TovzFYBd+UMWCld7S1Z3o2wlYsY675ORyHCY2sI10DXojld/bT7BgzxicwEsvrVZfa lyPcvG+EFpZpP7xj3CqoC1vpHVqhdXUG7OEn0NEd2PosbFCH2jwHGjOVQVbbKihAWNHt IWDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=t87A62XtQIcqOEalUsvQwO2t6exN3rKH5luqxVgCgrg=; b=iZJu4Oez4uLlxlMfHcVWio2vOFQiJP7s0T7zvAyLObLcZi8dz3HevF13LkS5oR2ZA1 Fy8UrbrHU6jfkKV+AKhcpArLhsDEILvVMIZBHTgifgydnh/L2/s3QkcJ95Oy6gmMCkFg 1oVWvAl40LPKSlT7f8C92LtdQs/vWt3yquVOIyzqEL3F8Y9swe0Tg5oBBoSrinimupWu tAGHzD1nMAG+y7YVYz7ggGG84P+1+qV9BM/9J8fa7J771dnPjZHKGA9BCNX2tvjViJqI 1YSBR8BNnKIybOp/k+XQni4lQgEbHx+CctryV8JPs7QAjYTUtQww9zqmIvGoDRDK62DH IocQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=IvvV5NiT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bj11-v6si4840918plb.525.2018.03.21.11.43.41; Wed, 21 Mar 2018 11:43:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=IvvV5NiT; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752735AbeCUSmt (ORCPT + 99 others); Wed, 21 Mar 2018 14:42:49 -0400 Received: from mail-ot0-f179.google.com ([74.125.82.179]:45990 "EHLO mail-ot0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752355AbeCUSmp (ORCPT ); Wed, 21 Mar 2018 14:42:45 -0400 Received: by mail-ot0-f179.google.com with SMTP id q5-v6so6709230oth.12 for ; Wed, 21 Mar 2018 11:42:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=t87A62XtQIcqOEalUsvQwO2t6exN3rKH5luqxVgCgrg=; b=IvvV5NiTNgonG19eM8QWoMGEYo0Nl6Njzp29XkAVJX2j5Il/bPRmWNRigmfaKmawh0 dGmAdBo0ogr4UxGHfFW8q/ljauemyYg98FIyVER1GkQwereUxFnZAcbLEkOIbCvhLhJM oc3mWRaqWzyibmMWXu5GyLBpsousr5BdSA4VJ6YBeFeqPnB1VAYblSka1vIz2h7XgicS ke4iWfywCdBSAJRa09RDVXDbHG4iGzhVkh100vqlw6cv0QZiFMP0SMwbjVnNziapPatE 3pgN1AitUlCpWxLsljROYcp7fyT1pAToW1fmAB32EehohyyYL8U8NsSgf/tO0/sg8xJ1 5v+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=t87A62XtQIcqOEalUsvQwO2t6exN3rKH5luqxVgCgrg=; b=aAe6hOGipCAYnBrE0ZmJcCL37QlVTvuxW0DtJnTA3yPWxUZcgkQr+BNTwrZDU4por9 /vK7f/RqsgC+WAaQCwwfkmZmNb6T7hVnbfo8zfVjZDV58j86fSBBbJr6xOKT3ttabl1a 5B7qOSbLo7I5I9/hr/qikH4nXEnRBfobxqMPI3P+HFdxeHmJCOK+C/IY0LJp/qJ66wWD G3bG24p9Fapl7t4h7xEfCQp/Ip+iPlQw9ENi2JIZ6sFmPmtvnRspGaDs9MeZYfjyvuvK 0M2Y7g2Gi64zK5e4uT1OSsjAzNLHq9WCS0j/Yw+zCES7qfKoSUAm2pPv2U3RkLls51bb Redw== X-Gm-Message-State: AElRT7FpFrxCmmseVU278o3tQfKP9SkGodWfvbqEUQ+lu+b+hQdNy4ip SfxFVzxBuiCkecYTCyCHR7Qf0jE5p+nIcdegj7l2JQ== X-Received: by 2002:a9d:1722:: with SMTP id i34-v6mr14829001ota.210.1521657764755; Wed, 21 Mar 2018 11:42:44 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a9d:2435:0:0:0:0:0 with HTTP; Wed, 21 Mar 2018 11:42:44 -0700 (PDT) In-Reply-To: <20180321161314.7711-1-mike.kravetz@oracle.com> References: <0d24f817-303a-7b4d-4603-b2d14e4b391a@oracle.com> <20180321161314.7711-1-mike.kravetz@oracle.com> From: Dan Williams Date: Wed, 21 Mar 2018 11:42:44 -0700 Message-ID: Subject: Re: [PATCH v2] shm: add split function to shm_vm_ops To: Mike Kravetz Cc: Linux MM , Linux Kernel Mailing List , Laurent Dufour , Michal Hocko , Andrea Arcangeli , Andrew Morton , stable Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 21, 2018 at 9:13 AM, Mike Kravetz wrote: > > If System V shmget/shmat operations are used to create a hugetlbfs > backed mapping, it is possible to munmap part of the mapping and > split the underlying vma such that it is not huge page aligned. > This will untimately result in the following BUG: > > kernel BUG at /build/linux-jWa1Fv/linux-4.15.0/mm/hugetlb.c:3310! > Oops: Exception in kernel mode, sig: 5 [#1] > LE SMP NR_CPUS=2048 NUMA PowerNV > Modules linked in: kcm nfc af_alg caif_socket caif phonet fcrypt > 8<--8<--8<--8< snip 8<--8<--8<--8< > CPU: 18 PID: 43243 Comm: trinity-subchil Tainted: G C E > 4.15.0-10-generic #11-Ubuntu > NIP: c00000000036e764 LR: c00000000036ee48 CTR: 0000000000000009 > REGS: c000003fbcdcf810 TRAP: 0700 Tainted: G C E > (4.15.0-10-generic) > MSR: 9000000000029033 CR: 24002222 XER: > 20040000 > CFAR: c00000000036ee44 SOFTE: 1 > GPR00: c00000000036ee48 c000003fbcdcfa90 c0000000016ea600 c000003fbcdcfc40 > GPR04: c000003fd9858950 00007115e4e00000 00007115e4e10000 0000000000000000 > GPR08: 0000000000000010 0000000000010000 0000000000000000 0000000000000000 > GPR12: 0000000000002000 c000000007a2c600 00000fe3985954d0 00007115e4e00000 > GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > GPR20: 00000fe398595a94 000000000000a6fc c000003fd9858950 0000000000018554 > GPR24: c000003fdcd84500 c0000000019acd00 00007115e4e10000 c000003fbcdcfc40 > GPR28: 0000000000200000 00007115e4e00000 c000003fbc9ac600 c000003fd9858950 > NIP [c00000000036e764] __unmap_hugepage_range+0xa4/0x760 > LR [c00000000036ee48] __unmap_hugepage_range_final+0x28/0x50 > Call Trace: > [c000003fbcdcfa90] [00007115e4e00000] 0x7115e4e00000 (unreliable) > [c000003fbcdcfb50] [c00000000036ee48] > __unmap_hugepage_range_final+0x28/0x50 > [c000003fbcdcfb80] [c00000000033497c] unmap_single_vma+0x11c/0x190 > [c000003fbcdcfbd0] [c000000000334e14] unmap_vmas+0x94/0x140 > [c000003fbcdcfc20] [c00000000034265c] exit_mmap+0x9c/0x1d0 > [c000003fbcdcfce0] [c000000000105448] mmput+0xa8/0x1d0 > [c000003fbcdcfd10] [c00000000010fad0] do_exit+0x360/0xc80 > [c000003fbcdcfdd0] [c0000000001104c0] do_group_exit+0x60/0x100 > [c000003fbcdcfe10] [c000000000110584] SyS_exit_group+0x24/0x30 > [c000003fbcdcfe30] [c00000000000b184] system_call+0x58/0x6c > Instruction dump: > 552907fe e94a0028 e94a0408 eb2a0018 81590008 7f9c5036 0b090000 e9390010 > 7d2948f8 7d2a2838 0b0a0000 7d293038 <0b090000> e9230086 2fa90000 419e0468 > ---[ end trace ee88f958a1c62605 ]--- > > This bug was introduced by commit 31383c6865a5 ("mm, hugetlbfs: > introduce ->split() to vm_operations_struct"). A split function > was added to vm_operations_struct to determine if a mapping can > be split. This was mostly for device-dax and hugetlbfs mappings > which have specific alignment constraints. > > Mappings initiated via shmget/shmat have their original vm_ops > overwritten with shm_vm_ops. shm_vm_ops functions will call back > to the original vm_ops if needed. Add such a split function to > shm_vm_ops. > > Fixes: 31383c6865a5 ("mm, hugetlbfs: introduce ->split() to vm_operations_struct") > Signed-off-by: Mike Kravetz > Reported by: Laurent Dufour > Tested-by: Laurent Dufour > Acked-by: Michal Hocko > Cc: stable@vger.kernel.org Reviewed-by: Dan Williams ...don't worry about resending if this has already hit a maintainer tree.