Message ID | 1581450783-8262-1-git-send-email-cai@lca.pw (mailing list archive) |
---|---|
State | New, archived |
Headers | show
Return-Path: <SRS0=wawx=37=kvack.org=owner-linux-mm@kernel.org> Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6ABD592A for <patchwork-linux-mm@patchwork.kernel.org>; Tue, 11 Feb 2020 19:54:45 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3234E2086A for <patchwork-linux-mm@patchwork.kernel.org>; Tue, 11 Feb 2020 19:54:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lca.pw header.i=@lca.pw header.b="bNkzHJqc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3234E2086A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lca.pw Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 6103B6B0318; Tue, 11 Feb 2020 14:54:44 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 5C0B66B0319; Tue, 11 Feb 2020 14:54:44 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 487246B031A; Tue, 11 Feb 2020 14:54:44 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0009.hostedemail.com [216.40.44.9]) by kanga.kvack.org (Postfix) with ESMTP id 2D5FD6B0318 for <linux-mm@kvack.org>; Tue, 11 Feb 2020 14:54:44 -0500 (EST) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id D8DD63AB7 for <linux-mm@kvack.org>; Tue, 11 Feb 2020 19:54:43 +0000 (UTC) X-FDA: 76478898846.26.toy83_808e7c57c791b X-Spam-Summary: 2,0,0,4470c705983e8d8f,d41d8cd98f00b204,cai@lca.pw,:akpm@linux-foundation.org:elver@google.com::linux-kernel@vger.kernel.org:cai@lca.pw,RULES_HIT:41:355:379:541:800:960:973:988:989:1260:1345:1437:1534:1542:1711:1730:1747:1777:1792:2393:2559:2562:2918:3138:3139:3140:3141:3142:3353:3865:3866:3867:3870:3871:3872:4250:4321:4605:5007:6119:6261:6653:7903:7904:8784:8957:9163:10004:11026:11658:11914:12043:12296:12297:12438:12517:12519:12555:12679:12740:12895:12986:14018:14096:14104:14181:14394:14721:21067:21080:21444:21451:21524:21627:21740:21990:30029:30054:30056,0,RBL:209.85.219.67:@lca.pw:.lbl8.mailshell.net-62.2.0.100 66.100.201.201,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fp,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:38,LUA_SUMMARY:none X-HE-Tag: toy83_808e7c57c791b X-Filterd-Recvd-Size: 4771 Received: from mail-qv1-f67.google.com (mail-qv1-f67.google.com [209.85.219.67]) by imf35.hostedemail.com (Postfix) with ESMTP for <linux-mm@kvack.org>; Tue, 11 Feb 2020 19:54:43 +0000 (UTC) Received: by mail-qv1-f67.google.com with SMTP id y8so5606241qvk.6 for <linux-mm@kvack.org>; Tue, 11 Feb 2020 11:54:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=from:to:cc:subject:date:message-id; bh=YBwt2MVU6nNAOe4QsbbS2Wq8hC+X3+hnvO1hd669kyE=; b=bNkzHJqcIbI9AGRseJS/hpar5VZUMk3hF0nwURpQlNFRYDlq0eOz3zvUNIt+7G6fv9 cct8I1VFykeWKa/q+TDiXCPtUEPaYZaUJmx3ewF0TOdLhX5769K2GOnYbWXJ6m2VPawB t0d8RLV0cxjsvSlBoOapyco4bWtS2ZkeCH7pMU2ewnt9stGtAvbn/3yTL+kJ8oqG6e5N Jp7K9rt7IZzGrrIUYnW5ZxlAi13HnRKu79XQadDcekY+0Tj8hbRBDzGGbGr8gcZ6fVTd T/1Mks2cdNz548n75JhdhryCxm56LPZuuNQcfkTKaNbYqrDmB36FOxmYDAuQByV2PPmP ri0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=YBwt2MVU6nNAOe4QsbbS2Wq8hC+X3+hnvO1hd669kyE=; b=AfQaHy8ZCQKO2teAZFhtfrsVIWG1ehNYGvUoGogd+uKgUow2HeIgJ9JbnrbfLV5XuG 7U3iek+DBMStsPHel1B2s0sE20pdvOfXIsylVQOhujg15uq0g7ncJZWGEqA8NvSM4ZlN /zl/z6nHiThAqGLLDR0Hacm7n9CdmwWk1qqOP5TfyUPkAJoWQwvQ3MjBe0hKwpB5IFmD bsdSrmC67tQN2E1XVAlXojmqfTWmdYvAhAHnGanJLmLJVSGCd5UwydZglmVvGjR9rYLN EHpApCj+cN8/nfq2va5zDL5/DxA5nsRQymPWuZB1yLQ4YFWy6mXtAZ5FmIVIGK7D2bxF vwWA== X-Gm-Message-State: APjAAAVv6NVmBQIuSlNvJkT9RwqIjbi9KV85ijFENJJ+GH0U/zKItZWF Y6ZtEKybnmFJS4BiuHaXNuSNqw== X-Google-Smtp-Source: APXvYqxG4o0AqrcL5cNxPIj5MSCzJZzrIg1LV+xpXY+PlPSxzrGJUnqHcW13cNE3gP04Zi5ACEFIjQ== X-Received: by 2002:a05:6214:923:: with SMTP id dk3mr4282819qvb.96.1581450882350; Tue, 11 Feb 2020 11:54:42 -0800 (PST) Received: from qcai.nay.com (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id w16sm2454811qkj.135.2020.02.11.11.54.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Feb 2020 11:54:41 -0800 (PST) From: Qian Cai <cai@lca.pw> To: akpm@linux-foundation.org Cc: elver@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Qian Cai <cai@lca.pw> Subject: [PATCH -next] mm/rmap: annotate a data race at tlb_flush_batched Date: Tue, 11 Feb 2020 14:53:03 -0500 Message-Id: <1581450783-8262-1-git-send-email-cai@lca.pw> X-Mailer: git-send-email 1.8.3.1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000023, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> |
Series |
[-next] mm/rmap: annotate a data race at tlb_flush_batched
|
expand
|
diff --git a/mm/rmap.c b/mm/rmap.c index b3e381919835..6983f5d5b114 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -679,7 +679,7 @@ static bool should_defer_flush(struct mm_struct *mm, enum ttu_flags flags) */ void flush_tlb_batched_pending(struct mm_struct *mm) { - if (mm->tlb_flush_batched) { + if (data_race(mm->tlb_flush_batched)) { flush_tlb_mm(mm); /*
mm->tlb_flush_batched could be accessed concurrently as noticed by KCSAN, BUG: KCSAN: data-race in flush_tlb_batched_pending / try_to_unmap_one write to 0xffff93f754880bd0 of 1 bytes by task 822 on cpu 6: try_to_unmap_one+0x59a/0x1ab0 set_tlb_ubc_flush_pending at mm/rmap.c:635 (inlined by) try_to_unmap_one at mm/rmap.c:1538 rmap_walk_anon+0x296/0x650 rmap_walk+0xdf/0x100 try_to_unmap+0x18a/0x2f0 shrink_page_list+0xef6/0x2870 shrink_inactive_list+0x316/0x880 shrink_lruvec+0x8dc/0x1380 shrink_node+0x317/0xd80 balance_pgdat+0x652/0xd90 kswapd+0x396/0x8d0 kthread+0x1e0/0x200 ret_from_fork+0x27/0x50 read to 0xffff93f754880bd0 of 1 bytes by task 6364 on cpu 4: flush_tlb_batched_pending+0x29/0x90 flush_tlb_batched_pending at mm/rmap.c:682 change_p4d_range+0x5dd/0x1030 change_pte_range at mm/mprotect.c:44 (inlined by) change_pmd_range at mm/mprotect.c:212 (inlined by) change_pud_range at mm/mprotect.c:240 (inlined by) change_p4d_range at mm/mprotect.c:260 change_protection+0x222/0x310 change_prot_numa+0x3e/0x60 task_numa_work+0x219/0x350 task_work_run+0xed/0x140 prepare_exit_to_usermode+0x2cc/0x2e0 ret_from_intr+0x32/0x42 Reported by Kernel Concurrency Sanitizer on: CPU: 4 PID: 6364 Comm: mtest01 Tainted: G W L 5.5.0-next-20200210+ #5 Hardware name: HPE ProLiant DL385 Gen10/ProLiant DL385 Gen10, BIOS A40 07/10/2019 flush_tlb_batched_pending() is under PTL but the write is not, but mm->tlb_flush_batched is only a bool type, so the value is unlikely to be shattered. Thus, mark it as an intentional data race by using the data race macro. Signed-off-by: Qian Cai <cai@lca.pw> --- mm/rmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)