From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758562AbdEVMGI (ORCPT ); Mon, 22 May 2017 08:06:08 -0400 Received: from mail-by2nam03on0082.outbound.protection.outlook.com ([104.47.42.82]:64305 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752607AbdEVMGF (ORCPT ); Mon, 22 May 2017 08:06:05 -0400 Authentication-Results: landley.net; dkim=none (message not signed) header.d=none;landley.net; dmarc=none action=none header.from=caviumnetworks.com; Date: Mon, 22 May 2017 15:05:51 +0300 From: Yury Norov To: Rob Landley Cc: Andrew Morton , "linux-kernel@vger.kernel.org" , Prarit Bhargava , Yang Shi , Rasmus Villemoes , Kees Cook , Emese Revfy , Petr Mladek , Fabian Frederick Subject: Patch 0727d35de ("Make initramfs honor CONFIG_DEVTMPFS_MOUNT") breaks boot Message-ID: <20170522120550.ekrq6ipfmkdtlxjo@yury-N73SV> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: NeoMutt/20170113 (1.7.2) X-Originating-IP: [176.59.42.39] X-ClientProxiedBy: AM5PR0101CA0011.eurprd01.prod.exchangelabs.com (10.169.240.21) To DM2PR0701MB1277.namprd07.prod.outlook.com (10.161.225.15) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PR0701MB1277: X-MS-Office365-Filtering-Correlation-Id: 923db45f-039c-4fb5-24eb-08d4a10aea3b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DM2PR0701MB1277; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1277;3:0/8tWaIFYdpdqQPO//fyRS7Ux4CUjO5EPuNjP848fqvzEDVNPLzLxLg8HMXutkl43GzHJG8pN4p6G8exQk1uha9dHdrZkrXf7yu98re5zSqY8C5cZaQHCstZE9oKJQ+wYfqSV6CU32CfxYMdXOmtDWG+U64aCeHtBI5zOsuVZ65PRgRPbdOMjOLn1YYVjG8USx1/T53F8/M/TW6W5b6l0lD1UL77rWIV5Fmax+h3z0YrQopQ3j6XI4cZOVrTMdD01An1lkbReoBs/P0UCmPVkEPJBHFk2DyX0aB0fwELrKOXdprEoHYNTEWRYIreUeyy0h9AD4A9GxRGe0j4tBGtiQ==;25:OE8NnevBVlnSMwRYqwhj6ge7wFKPrwuc10cNix9LflgcIoT/kvZ/AGWF9lbvsh5hxv2v/bv8fo67CHIw4zJPZWeGpsWGYX4lcINw6pBL85yeKnfECF5W4r3H87CnHtvQJOkMtEJrL9/W1AV6Js1C6gSt/h5hUrFuZRkl27gsehFMjvTK25bRPIprB12zJus9UlABXqbaPR3/4GtTo+K86x+gKWufP2dwqx73j2Ok9RRUj0pu2h1uff2bKgc1Mo17CyWCY9LI1C/nK0XDhlJEj6E+MA4BcBv3BmkqYQr7Vp00hWZXjSM5KNNLdE6V6KnZgvAOa1Gv279ydpsJuOq2g327FWdOGrm6dhh7twqKBzif/IrmOHTs/LHkw3ZfPCsl6JrMXBylQ2bB7NxSmUJjRoqCCZ3XLbFUVNdgmf7O+bpl9Ajf3KUvqW5lQVydN2NnbISdULGRK0TLHo+6cUjyB4KHx3/u1piCLqKsX7VNGDo= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1277;31:aoOiQ30SohPorF288B/mOHh8T/GRrKK0IKI7FuQMQnbzQVbFzhDft+qy5Pxm7julkfkBjkursHzpgUBm/SzfvhRZEXn/FhkR8NjEGuMMMzyjefvhJLTVuK8de379UzCwHj05T8Ql3RgtSYSUqLLMfwF3m0omafZ7wytgwrh+afkdhbqloBGFqUGo6Vqh9EvA6NdP5rcZtuVH+umWbmYetSUNqCAdOuVakNsbE3w1cgUKYDidDkhVd5CR6whYVQvg4Hav5fEYABqPMy0SrOTwgtEXiqodoXBgfJDuG0uYWUE=;20:8BCvdnhJ1uNEJswvHepaFDVTjQ0q+3oKppBthki4geEieJNCcC8W3ae2MGgRlSq675sl7pvr+8Xp+jl5rCgtXgQDaWZYcGHgnO4jFfdM4sqtuzsvpUOOxxOi5jGucytfzJFdciKFiHtRLLBzD29UQV/+07Zm3WgkvcgXIMeJu0dIxMk4gErGS5K/idgE2cWcMjsFZ55qFRc76h5iR7IrQKRp/hUEEe+6qylCt0mREfzEQrsv2V2MsqWA6R4jht/v3tqVL1fhaAEGfj1D4VlUf76csGN5nd7Et3/eKD2aO9SWZBBqQPUZQQLk13UVpa4x7G240g5VpfeInT/kdNBzoHsGUWe7n5FgmvWkiSyWSeSgua5Du4Ia6fLndl23NTrmgCwqLhKRprMTfndAPr5UFno7U/Kmg2HO8Mp7/xIwVSxRoy33HWSEYUp34b7AeBZC78c4f1jE36c5n5rr11kWZf2VrMnCC5xLlfc5SV5JyXjIYY2vI60Bwk4Lk5rNTNtLxeNEf70ml+2CmrovwQ8+875PILqy25+M6nOi9ZoeyYaXYM4xZKPNRARNdb+6tbSMPu+HRW32J/En3wVFyxXeoY90txN7qkf1WSVLxhDVSSs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123562025)(20161123558100)(6072148);SRVR:DM2PR0701MB1277;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0701MB1277; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1277;4:Em+kMvq6Op5Lp2aCub5q9MBen/SkiFHfMssqlDSWNuZU7u0Hy1E4S/bgV6tHmJQIXEl+CqSV7AtgD/HdzkNVnbJrs5jhnSckMPHJreJIwcj1vBi11fqG8Yq99NGQ1mEhUr9EjT2mLLip2MAW3djSX0sAuwd7KMfoHZBJY1KlIVrq5zrF01z7VyKD5/XPVZm2MP2+QemKJ2xGzwv5j+FOlbsyehHDSCe5oNGfA8GJIa/sLbvWXFTpLWvJbx9W/OR7/s/eRLczQsyN+BHDICoTfuOUnx+uu3KHsqrnb09LBPQc1Ie0XuYimc5vOq0IkmYLi815d0GfAjqCZQE67sEJKgnKAY7EJSIA7cznq59+u4fZM5PkWj8tZKVR1xIFpsysPQ/u831dCxKhtjbuIx0TiScCgH5X+2hgXkVeA0uaHdcKiaetoenRFvOrRRVd8ofdaiTd0Qv6NYPM5u9uCtZT97DsBWVnpvSc7ApIBpARB7uM0+Gd01OQgmKcL0YYLrb8HtXVKYuaojzZloaperFfKN/zUallwm0eMWo0UcsVq8oXloQjmgc7TyWZb2FJCzuHNorFE7cIB144PUM9arfEz50ot12tpOg6dTDBP+bOPbkYEmo3qOdVnkP/YXQ2uJ8lfdvDPkb2dNT15nAz0ErW6Q9YK0W9jzqIE3idyi0U04h5qGRc/BOLdUV3Vvq9+KQsc1gGLP1Kw2fHZZZsVtEzXi+2SqYo8NCuWuhTx1k1YlJbHMUPM8l6nEyHVZ2EyfLSk9XSM6pGMjYuGoDqjHmPzg== X-Forefront-PRVS: 03152A99FF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6069001)(6009001)(39850400002)(39450400003)(39840400002)(39400400002)(39410400002)(24454002)(50466002)(5890100001)(83506001)(23726003)(1076002)(2906002)(6916009)(72206003)(6116002)(47776003)(6666003)(42882006)(66066001)(76506005)(33646002)(3846002)(42186005)(25786009)(54356999)(8676002)(9686003)(50986999)(4001350100001)(189998001)(6486002)(33716001)(110136004)(305945005)(7736002)(478600001)(81166006)(38730400002)(54906002)(4326008)(53936002)(5660300001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0701MB1277;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0701MB1277;23:vpJERwEwN8rDb/fUs79Wi3mxcSE15/utNNvOq/L?= =?us-ascii?Q?1iy/K9FoNOdpWWM95Oy2biLFK43h3iZtXs7rly3vXIr8Bz0+KeUKYr7n+ynb?= =?us-ascii?Q?WSWoxU90RsZko82i3ybrkSyVVJEJfcdpLYT9F8hEavnEFZwuFHmEKx4qRmgf?= =?us-ascii?Q?LWzrZ+Z1fy6H5g/7VNdobn37eEHcdpVKXC44207K2AqkuNf48yzAZ77bXTZF?= =?us-ascii?Q?Y3pPjaUchsMCoOuLkbMmjYMZAX7siFtM1nsesbfd/5xMpwcimEIPbuX/tLvz?= =?us-ascii?Q?dBs/y6rEOM1qFxDSgutZtoY1oYHMQBh3vv47WWbgVWfncMfnDIXIG9Y0CN24?= =?us-ascii?Q?GX+30j3rxB8yiDe/nyHfJfOM+DlewT89fVwAPdNSRXrFiqZtC2+luaW+BPdR?= =?us-ascii?Q?lK9y0nPf8Yco1hFr/VjXrmpcoXwWTCTlNfEhj+HRAff51k3+Zm52GAm+67PC?= =?us-ascii?Q?dOFDn573Pr5dp48GxV3Ga2/3mGu0/LfoQ9f7fzPH0cFfTrwMNgrSJuhWUqKZ?= =?us-ascii?Q?wHgOpQyVGkdh/hxfshKZDmaIoJod+H99SDou5de7SCw/wr/t9pVrNskzSCTo?= =?us-ascii?Q?dBqLiIGSlwa8DY8fnAbqSctkhLV3S0xUhGU2N/P6Lan+I5xyYFJlTw3XkOPV?= =?us-ascii?Q?h3r0UKp3n9zDvAmaUbm3P4gTDg1K4hg7hUm/DZ3N3Hyvg7IA8scIf+n91Uw3?= =?us-ascii?Q?xLm9TQe1/LeszW1e257vMSVODDiCgngNIO0uU5T8CVeIhGaqSzwv4wc7zXDA?= =?us-ascii?Q?KprWzbtFbNPyB+biskhh7LsQskKqnWGPfkosB/WCbB03il4iGRvPfKezWSta?= =?us-ascii?Q?t6gxmNLrztoXorvsLdVbtO18jdvnewFQAiP+6YBJjfjrItQHS8BakQhhnAcz?= =?us-ascii?Q?1wTO0qZeFX6j996sNsyaPylxROwkdJguMgMvECoW0+/4p3rPoQvskrBxmtXU?= =?us-ascii?Q?Q2+oJ9WqgX7P0J1y2hdpnXeCTLJ/J6qmvt259Iq3+F69mVm1R/m948+SmgQk?= =?us-ascii?Q?IPxKIA0PiSx8WcYzX2vK5RvMg5mWKbNcq1gG85S87rsXw3eUHqNJFzcqFBLy?= =?us-ascii?Q?1dpZlCKITXtQ7ALUi+DRrEr0ZvsUHMcn/mGjtrOvT/QZWqdM94hqRPf6B99l?= =?us-ascii?Q?tWQ+Htl2NIPCNm6ZS0d9e6yc9oAR3l6MX?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1277;6:gX1qr7BPvw7LtA++yC8dOwjRbfk1Rh7DTsPOneOowpZSo4MXst1KMmSlDTKQcsQA2goN13A8+/3o6Bq47akxNKvQ804BNJ48PVbJ3KiTDmVO0Bwc9Nv7LKkuQVGkvM7b97t4nLsFGqRWadUr/XGJ98fJIk4XMlUqW8J7TdStBVxeEnPCqUooolHp8lL1n7gK2z1Gwxxp/EsAVdX+yzsfA5KpSIMUdXnoNooOtaouESAdBkK0qEeglCoWmf2kovOmZBF73yJEi9gkH5GX8imFtoRItRiAQPfs3RA9fafmLAQkIBEvD7Dz0smZ5BQVDNeeTTfl2IZTAF/0/NnHnLj6Rv/a9smqTDhWYrtfyxRXebnQj+zOTveD65p1tUX4gFjWOVhLFtSIYT/CckJ0FpqMQ7N/Q5M5N6+rUYrwvN8sxm2uvPmjpZiS31PLpE+hqQ8STBAS3S+dG7AeXEcWnxvDPgvGsjRE6RDEdrhhhdpMXLpAqY7e7e3iRgwFHYWCc4Vtp///rDRmG2dQ5WT7xUGxwQ==;5:5SVbUbo7SQqolHKFDfi5f8bYRbZvE4gwFt0g7ljYvdp4QLsc5FuNA6Hqu5u0AZXkW6mCPuT4RFb2DfeQTKF1iWrYtp89aOqHVZqLZu+tAfhiGI40dqGwUrXyVuZidX6PEq9PzFfy1BCFKNdtxNcZAA==;24:Dq22nXbzQKWd+VwIkfcRvVu4JLJUWXtiXc/G02oNvYBhhQiIEle2hdjANUyNoHJhjdZT+jgGPYpDZo9MuDPT4NG6KT1UdaT/ARcC810pvG8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1277;7:3zvyNIDdaM01mGGoRkUkE5tdVMpzboOv8Co/LEej/PECVXnXvibMLM2E+H5omUqIwuiS8as/hrm0tpj+elsH6SEPKOmNbAoP+Kk8MXPlJOPhHp110kVa3QJP70JDD1KKxVHLdOoK8TPWP0Yit1wMzMj7RbXFTx+nY4OtT9jTwgPb2boX3vqt5xJ0FDdqlSkpAjni4byj3/irlu0Loez1ljOm+54ChauO1GYHroB3NKUiSdqIlLV2LLnoa7rmTkSiolKeEFb84cNmhfNRLmr0pSuD3cJicgXX9f2RUhWKFM60KfSCqLmmNz8g08BfjfimG0klzxNzv/6YBRVRvHWcrw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2017 12:06:01.2103 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1277 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, I found that next-20170522 fails to boot on arm64 machine with the following log: [...] [4.179509] Freeing unused kernel memory: 1088K Loading, please wait... mount: mounting udev on /dev failed: Device or resource busy W: devtmpfs not available, falling back to tmpfs for /dev Couldn't get a file descriptor referring to the console Begin: Loading essential drivers ... done. Begin: Running /scripts/init-premount ... done. Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. chvt: can't open console Gave up waiting for root device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Check root= (did the system wait for the right device?) - Missing modules (cat /proc/modules; ls /dev) chvt: can't open console ALERT! /dev/sda does not exist. Dropping to a shell! Couldn't get a file descriptor referring to the console BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs) Bisect points to your patch (attached below). If I revert it, everything becomes fine. If you need to know something more about my environment, feel free to ask me. Yury On Thu, May 11, 2017 at 12:05:03PM -0500, Rob Landley wrote: > From: Rob Landley > > Make initramfs honor CONFIG_DEVTMPFS_MOUNT, move /dev/console > open after devtmpfs mount, and update help text. > > Signed-off-by: Rob Landley > --- > > drivers/base/Kconfig | 14 ++++---------- > init/main.c | 15 +++++++++------ > 2 files changed, 13 insertions(+), 16 deletions(-) > > diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig > index d718ae4..74779ee 100644 > --- a/drivers/base/Kconfig > +++ b/drivers/base/Kconfig > @@ -48,16 +48,10 @@ config DEVTMPFS_MOUNT > bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs" > depends on DEVTMPFS > help > - This will instruct the kernel to automatically mount the > - devtmpfs filesystem at /dev, directly after the kernel has > - mounted the root filesystem. The behavior can be overridden > - with the commandline parameter: devtmpfs.mount=0|1. > - This option does not affect initramfs based booting, here > - the devtmpfs filesystem always needs to be mounted manually > - after the rootfs is mounted. > - With this option enabled, it allows to bring up a system in > - rescue mode with init=/bin/sh, even when the /dev directory > - on the rootfs is completely empty. > + Automatically mount devtmpfs at /dev on the root filesystem, which > + lets the system come up in rescue mode with [rd]init=/bin/sh. > + Override with devtmpfs.mount=0 on the commandline. Initramfs can > + create a /dev dir as needed, other rootfs needs the mount point. > > config STANDALONE > bool "Select only drivers that don't need compile-time external firmware" > diff --git a/init/main.c b/init/main.c > index f866510..9ec09ff 100644 > --- a/init/main.c > +++ b/init/main.c > @@ -1038,12 +1038,6 @@ static noinline void __init kernel_init_freeable(void) > > do_basic_setup(); > > - /* Open the /dev/console on the rootfs, this should never fail */ > - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) > - pr_err("Warning: unable to open an initial console.\n"); > - > - (void) sys_dup(0); > - (void) sys_dup(0); > /* > * check if there is an early userspace init. If yes, let it do all > * the work > @@ -1055,8 +1049,17 @@ static noinline void __init kernel_init_freeable(void) > if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) { > ramdisk_execute_command = NULL; > prepare_namespace(); > + } else if (IS_ENABLED(CONFIG_DEVTMPFS_MOUNT)) { > + sys_mkdir("/dev", 0755); > + devtmpfs_mount("/dev"); > } > > + /* Open the /dev/console on the rootfs, this should never fail */ > + if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) > + pr_err("Warning: unable to open an initial console.\n"); > + (void) sys_dup(0); > + (void) sys_dup(0); > + > /* > * Ok, we have completed the initial bootup, and > * we're essentially up and running. Get rid of the