Received: by 2002:a4a:311b:0:0:0:0:0 with SMTP id k27-v6csp4666032ooa; Tue, 14 Aug 2018 08:56:57 -0700 (PDT) X-Google-Smtp-Source: AA+uWPyMt4Hf4e+qXrnZc+hHr4gCng3J+POJJR+Jd6d9w/sSWp+5eXC6FLTwrl4pFy1ZLe4PBkQz X-Received: by 2002:a63:9b19:: with SMTP id r25-v6mr21656454pgd.44.1534262217216; Tue, 14 Aug 2018 08:56:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534262217; cv=none; d=google.com; s=arc-20160816; b=SQvfU211j+giWRqI3itj2Ja9SRhCKLuxwHHf7lCBpmA3PIFFE8SOUwQbD9PoyWzj1V rImL4IcSsfw+3cSkv2LzHth7okhYuy/YX8ioPLqyf8P3wotddON7a4TIzHvQ1D08qUxW K2TJToWMqGNQ0yVbegMruuX1q1YjFu36nAviEZCBgJBwWsBRbMZwzm5PtbCEIJ1GTtnf 9Vxj6OLo5ZnUz2IFzVgMaVNqqbEwLy0expVOOitAcJI/MPIqhM4ahKWRSmuJRSxSLa7j PvbrKklvsP/XcOv4KSKXUD/HJEh7u8dALkNSrDTZFOCY2/OnTW4xUILFlEpIvkaE8RkE ivOw== 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 :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=EiVka1508O6cEd2pEdL8Vr0M6oZYzhmVbd1m9NwMNPA=; b=sKxVtyVav4QMUCdwn8S6CJpJ6JWWJRkmrMUjaR30+c+6ae/pIxRLhD+tx6WAkoIlHq lZnqI4xSNmOG+x63vxkd9T345vcZHcnBe3QmQq9x+yaYoIta1D2kGxN9dXOim6zW4E3T pbcAMJ3nlOpABDzaAqWp/Fl1KOvm7jivNZmiOP3Umr650rOhmOiPaPeFEtz/u7tgNIQb BxfGR0b8pgr7m5Du9/xehgq6K9lWpWuNslGsSNjb2PPgMiM9Jm2NXb3OhBUvzq4uIED/ jffS17ii0BLcX/52ayB/9iTHN+DP/Eru0jWuk3IkJcYd0Z3HUiUXDUEmL3erQYkXVRQ9 osYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Hnsz90kk; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b2-v6si20103406pgc.541.2018.08.14.08.56.41; Tue, 14 Aug 2018 08:56:57 -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=@gmail.com header.s=20161025 header.b=Hnsz90kk; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732756AbeHNSLw (ORCPT + 99 others); Tue, 14 Aug 2018 14:11:52 -0400 Received: from mail-it0-f68.google.com ([209.85.214.68]:50953 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730759AbeHNSLw (ORCPT ); Tue, 14 Aug 2018 14:11:52 -0400 Received: by mail-it0-f68.google.com with SMTP id j81-v6so18712516ite.0 for ; Tue, 14 Aug 2018 08:24:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EiVka1508O6cEd2pEdL8Vr0M6oZYzhmVbd1m9NwMNPA=; b=Hnsz90kkWH0LKgD/hqPf6Ogcde9rIGUePnMAWjaGPL4wEpy6pkMjmtKT4j0WBTMuYU yY+zX6ZWL5xHW/svjhkvrr4DxOMECd06ckpo4TPsVKa+gNX14l79AXgGmxYIYS1R8HgF XtBnA6fX3+skPmbB3Y3LgM8/umwegVsOJCC25pA/zuT4QKHhtK/7tEjzHYsr5SBmWonW awIdY+CLyBLUimIfSrHhFgtuLIGm4gjbN3RBbRVFR7fM4A0Rkgrd29PkMlft3Z0wQfC6 HPCbpQE3m2/elEYw/s+6XF+dpulEg7Al8Gt7Lecgzv8+DMDunYXSOswx9oCHOxV8djEn H3ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EiVka1508O6cEd2pEdL8Vr0M6oZYzhmVbd1m9NwMNPA=; b=FemezOqV9R4QF9AuygvU2AC+xBUwMbeWLr4N5GBmD+C+jPmmL29I91G9c4u9GrhWoL G5w96v9ZuC7ApX5a7IWcAg0UOZfHLB1UjLYgUMSb5I4R5h9wp6bHieHq9DfNlcfR9k6x orC/kYwJJQoGRu/ygbJdmEGAKOVmm+M9qEXqqRKF8XyMnJHlLP88bjMM6vaWr/TLcg3I kgOA8gCtXeqYErPW2XdSj3a05dmu07gXHCGRDahYkn+FkGUPjhKXM6e3kYQyKZbUFOmk uSSaoNb4LzgS3u7TtzQS7lAwYm8/g5urr0ri8FWSCrKso/gxC0Db0QAuSuf+I4kTqWEy diaA== X-Gm-Message-State: AOUpUlF5ttg2y9NJXkky/hHQY6TgBoR4SrVL7tMOSSxOh+CZ0sS7lX0x Pt63AJy6EIZnHlwQVi09zYmRTyLq3gsnYIEm9Ck= X-Received: by 2002:a24:5d4a:: with SMTP id w71-v6mr15741977ita.118.1534260254925; Tue, 14 Aug 2018 08:24:14 -0700 (PDT) MIME-Version: 1.0 References: <7f57199f45df7212fdbba0bd1e78142a@agner.ch> In-Reply-To: <7f57199f45df7212fdbba0bd1e78142a@agner.ch> From: Ilya Dryomov Date: Tue, 14 Aug 2018 17:24:03 +0200 Message-ID: Subject: Re: Warning when using eMMC and partprobe: generic_make_request: Trying to write to read-only block-device To: stefan@agner.ch Cc: Jens Axboe , Sagi Grimberg , Linus Torvalds , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org 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 Tue, Aug 14, 2018 at 4:41 PM Stefan Agner wrote: > > Hi, > > Using Linux 4.18 on a i.MX 6Q I see the following warning during > boot-up: > > [ 23.928916] ------------[ cut here ]------------ > [ 23.933795] WARNING: CPU: 1 PID: 527 at block/blk-core.c:2161 > generic_make_request_checks+0x868/0xa18 > [ 23.943306] generic_make_request: Trying to write to read-only > block-device mmcblk2boot0 (partno 0) > [ 23.952569] Modules linked in: joydev flexcan can_dev coda imx_vdoa > v4l2_mem2mem videobuf2_vmalloc dw_hdmi_ahb_audio evbug nhc_mobility > nhc_hop nhc_routing nhc_ipv6 nhc_dest nhc_fragment nhc_udp fuse > bluetooth_6lowpan 6lowpan > [ 23.973115] CPU: 1 PID: 527 Comm: partprobe Not tainted 4.18.0 #1 > [ 23.979336] Hardware name: Freescale i.MX6 Quad/DualLite (Device > Tree) > [ 23.985984] Backtrace: > [ 23.988513] [] (dump_backtrace) from [] > (show_stack+0x18/0x1c) > [ 23.996231] r7:00000000 r6:60060013 r5:00000000 r4:c118ca44 > [ 24.002009] [] (show_stack) from [] > (dump_stack+0xb4/0xec) > [ 24.009377] [] (dump_stack) from [] > (__warn+0xc4/0x108) > [ 24.016471] r10:c1108908 r9:c04864f0 r8:00000871 r7:c0ea02dc > r6:00000009 r5:00000000 > [ 24.024447] r4:d73d1d1c r3:abf2ba7b > [ 24.028111] [] (__warn) from [] > (warn_slowpath_fmt+0x4c/0x6c) > [ 24.035741] r9:d73d0000 r8:c01011e4 r7:c04873cc r6:d6f27400 > r5:c0ea05b0 r4:c1108908 > [ 24.043641] [] (warn_slowpath_fmt) from [] > (generic_make_request_checks+0x868/0xa18) > [ 24.053296] r3:d73d1d74 r2:c0ea05b0 > [ 24.058425] r5:d6d4d0a0 r4:d6f94240 > [ 24.063538] [] (generic_make_request_checks) from > [] (generic_make_request+0xc0/0x480) > [ 24.076301] r10:d6f94240 r9:d73d0000 r8:c01011e4 r7:c1108908 > r6:d73d1e98 r5:c1108908 > [ 24.087212] r4:d6d4d0a0 > [ 24.091251] [] (generic_make_request) from [] > (submit_bio+0x38/0x19c) > [ 24.102438] r10:00000076 r9:d73d0000 r8:c01011e4 r7:7fffffff > r6:d73d1e98 r5:c1108908 > [ 24.113265] r4:d6f94240 > [ 24.117278] [] (submit_bio) from [] > (submit_bio_wait+0x5c/0x98) > [ 24.127914] r10:00000076 r9:d73d0000 r8:c01011e4 r7:7fffffff > r6:d73d1e98 r5:c1108908 > [ 24.138724] r4:d6f94240 > [ 24.142739] [] (submit_bio_wait) from [] > (blkdev_issue_flush+0x80/0xb0) > [ 24.154038] r6:00000000 r5:d4164340 r4:d6f94240 > [ 24.160143] [] (blkdev_issue_flush) from [] > (blkdev_fsync+0x3c/0x54) > [ 24.171143] r7:7fffffff r6:d4164428 r5:7fffffff r4:00000000 > [ 24.178322] [] (blkdev_fsync) from [] > (vfs_fsync_range+0x44/0x84) > [ 24.189080] r6:ffffffff r5:00000000 r4:d66ce000 > [ 24.195173] [] (vfs_fsync_range) from [] > (do_fsync+0x44/0x78) > [ 24.205530] r7:00000076 r6:00000000 r5:d66ce000 r4:d66ce000 > [ 24.212672] [] (do_fsync) from [] > (sys_fsync+0x14/0x18) > [ 24.221140] r6:01320248 r5:00000001 r4:013201d0 > [ 24.227266] [] (sys_fsync) from [] > (ret_fast_syscall+0x0/0x28) > [ 24.237781] Exception stack(0xd73d1fa8 to 0xd73d1ff0) > [ 24.244320] 1fa0: 013201d0 00000001 00000004 > be863b1c 00000064 00000000 > [ 24.255437] 1fc0: 013201d0 00000001 01320248 00000076 b6ef8aec > b6ef4c04 b6f37fa4 00000000 > [ 24.266593] 1fe0: 00000076 be863a00 b6e61faf b6de8306 > [ 24.273302] irq event stamp: 13037 > [ 24.278202] hardirqs last enabled at (13045): [] > console_unlock+0x3e0/0x4e4 > [ 24.289163] hardirqs last disabled at (13054): [] > console_unlock+0x80/0x4e4 > [ 24.300085] softirqs last enabled at (12880): [] > __do_softirq+0x224/0x2d0 > [ 24.310934] softirqs last disabled at (12833): [] > irq_exit+0xc8/0x1ac > [ 24.321438] ---[ end trace 05a4aba40df38a0c ]--- > > The system I am using calls partprobe for some reason, which causes the > stack > trace to appear. > > The mmcblkXbootY partitions are hardware partitions on eMMC devices > which are > by default set to read only. Partition probing should really not lead to > a > write as far as I can tell... > > strace shows what partprobe is actually doing: > > ... > openat(AT_FDCWD, "/dev/mmcblk2boot0", O_RDONLY|O_LARGEFILE) = 4 > ... > ioctl(4, BLKFLSBUF) = 0 > ... > ioctl(4, BLKSSZGET, [512]) = 0 > fadvise64_64(4, 0, 0, POSIX_FADV_RANDOM) = 0 > fstat64(4, {st_mode=S_IFBLK|0660, st_rdev=makedev(179, 64), ...}) = 0 > ioctl(4, BLKGETSIZE64, [2097152]) = 0 > ... > ioctl(4, CDROM_GET_CAPABILITY, 0) = -1 EINVAL (Invalid argument) > ioctl(4, BLKALIGNOFF, [0]) = 0 > ioctl(4, BLKIOMIN, [512]) = 0 > ioctl(4, BLKIOOPT, [0]) = 0 > ioctl(4, BLKPBSZGET, [512]) = 0 > ioctl(4, BLKSSZGET, [512]) = 0 > ioctl(4, BLKGETSIZE64, [2097152]) = 0 > ioctl(4, HDIO_GETGEO, {heads=4, sectors=16, cylinders=64, start=0}) = 0 > fsync(4) = 0 > close(4) = 0 > ... > > Any idea? Looks like it's coming from that fsync(): sys_fsync do_fsync vfs_fsync_range blkdev_fsync blkdev_issue_flush I think we need to teach blkdev_issue_flush() to bail out if the bdev is read-only, similar to blkdev_issue_discard(), _write_zeroes(), etc. The question is which error code to use. blkdev_fsync() already skips over EOPNOTSUPP, so it is a (no-so-good) option. Other blkdev_issue_ functions return EPERM. Thanks, Ilya