Bug 1158848
Summary: | Unable to write to /dev/console and /dev/ttyS0 on s390x | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jan Stodola <jstodola> | ||||
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | high | Docs Contact: | |||||
Priority: | high | ||||||
Version: | 21 | CC: | awilliam, brueckner, dan, gansalmon, gmuelas, herrold, itamar, jonathan, jstodola, kernel-maint, madhu.chinakonda, mchehab, schwidefsky | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | s390x | ||||||
OS: | Linux | ||||||
Whiteboard: | AcceptedFreezeException | ||||||
Fixed In Version: | kernel-3.17.4-200.fc20 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2014-11-25 22:36:57 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 467765, 1043131 | ||||||
Attachments: |
|
Description
Jan Stodola
2014-10-30 11:21:03 UTC
Reproduced with kernel-3.18.0-0.rc2.git2.1.fc21.s390x. Also reproduced with disabled SELinux. strace reports: [root@rtt7 ~]# strace echo 123 > /dev/console -bash: /dev/console: No such device [root@rtt7 ~]# strace echo 123 > /dev/ttyS0 execve("/usr/bin/echo", ["echo", "123"], [/* 22 vars */]) = 0 brk(0) = 0x84f2d000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffd182000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffd180000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=37188, ...}) = 0 mmap(NULL, 37188, PROT_READ, MAP_PRIVATE, 3, 0) = 0x3fffd176000 close(3) = 0 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\2\1\0\0\0\0\0\0\0\0\0\0\3\0\26\0\0\0\1\0\0\0\0\0\2&\300"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=2082888, ...}) = 0 mmap(NULL, 1816736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3fffcfba000 mmap(0x3fffd16c000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b1000) = 0x3fffd16c000 mmap(0x3fffd172000, 14496, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3fffd172000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffcfb9000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffcfb8000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffcfb7000 mprotect(0x3fffd16c000, 16384, PROT_READ) = 0 mprotect(0x80008000, 4096, PROT_READ) = 0 mprotect(0x3fffd1ab000, 4096, PROT_READ) = 0 munmap(0x3fffd176000, 37188) = 0 brk(0) = 0x84f2d000 brk(0x84f4e000) = 0x84f4e000 brk(0) = 0x84f4e000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=106374736, ...}) = 0 mmap(NULL, 106374736, PROT_READ, MAP_PRIVATE, 3, 0) = 0x3fff6a44000 close(3) = 0 fstat(1, {st_mode=S_IFCHR|0660, st_rdev=makedev(4, 64), ...}) = 0 ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x3ffffb45fe4) = -1 EIO (Input/output error) mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffd17f000 write(1, "123\n", 4) = -1 EIO (Input/output error) close(1) = 0 munmap(0x3fffd17f000, 4096) = 0 open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 1 fstat(1, {st_mode=S_IFREG|0644, st_size=2492, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fffd17f000 read(1, "# Locale name alias data base.\n#"..., 4096) = 2492 read(1, "", 4096) = 0 close(1) = 0 munmap(0x3fffd17f000, 4096) = 0 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "echo: ", 6echo: ) = 6 write(2, "write error", 11write error) = 11 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, ": Input/output error", 20: Input/output error) = 20 write(2, "\n", 1 ) = 1 exit_group(1) = ? +++ exited with 1 +++ [root@rtt7 ~]# systemd/udev version is systemd-216-5.fc21 I assume this is Linux under z/VM. Can you confirm it, please? fyi- with Linux under z/VM I can also reproduce it with: F20 (systemd-208-22.fc20) and updating to: kernel-3.17.1-302.fc21.s390x.rpm kernel-core-3.17.1-302.fc21.s390x.rpm kernel-modules-3.17.1-302.fc21.s390x.rpm dracut-038-30.git20140903.fc21.s390x.rpm while with kernel-3.16.6-203.fc20 seems to work fine. Yes, tested under z/VM. (In reply to Jan Stodola from comment #0) > Description of problem: > Attempts to write to /dev/console or /dev/ttyS0 fail with errors. Kernel is > 3.17.1-302.fc21.s390x: > > [root@rtt7 ~]# echo 123 > /dev/console > -bash: /dev/console: No such device > [root@rtt7 ~]# ls -l /dev/console > crw-------. 1 root root 5, 1 Oct 30 06:47 /dev/console > > [root@rtt7 ~]# echo 123 > /dev/ttyS0 > -bash: echo: write error: Input/output error > [root@rtt7 ~]# ls -l /dev/ttyS0 > crw-rw----. 1 root dialout 4, 64 Oct 30 07:10 /dev/ttyS0 > > > There is also a warning message when booting: > [root@rtt7 ~]# dmesg | grep console > [ 0.073773] console [ttyS0] enabled > [ 0.354101] Warning: unable to open an initial console. Could you check whether the ramdisk contains the /dev/console device node. Right before the kernel starts the init process, it tries to open the /dev/console device. Later in the boot process udev takes control of /dev and dynamically mounts it and, perhaps, ensures that /dev/console is created. So please check the ramdisk has a /dev/console device node. Thanks. Created attachment 954557 [details]
lsinitrd
Yes, dev/console is present in the initramfs:
[root@rtt7 ~]# uname -r
3.17.1-302.fc21.s390x
[root@rtt7 ~]# rpm -q dracut
dracut-038-30.git20140903.fc21.s390x
[root@rtt7 ~]# lsinitrd /boot/initramfs-3.17.1-302.fc21.s390x.img | grep console$
crw-r--r-- 1 root root 5, 1 Nov 6 11:32 dev/console
[root@rtt7 ~]#
Whole output from lsintrd is attached.
Hi IBM, any news here? It effectively blocks progress on F-21 when you can't see large parts of the output. serial8250_init is stealing the device node 4/64. The init function of the 3215 driver comes after serial8250 and gets a -EBUSY on tty_register_driver. Why is serial8250 compiled-in for s390x? (In reply to Martin Schwidefsky from comment #9) > serial8250_init is stealing the device node 4/64. The init function of the > 3215 driver comes after serial8250 and gets a -EBUSY on tty_register_driver. > > Why is serial8250 compiled-in for s390x? Thanks for looking. It's inherited from the generic Fedora config - http://pkgs.fedoraproject.org/cgit/kernel.git/tree/config-generic#n2349 - shouldn't the kernel config mechanism somehow reject the configuration where both the serial8250 and 3215 drivers are selected? I'll rebuild the kernel with serial8250 disabled and let you know. yes, with this change the console works again diff --git a/config-s390x b/config-s390x index f947234..78ba8e9 100644 --- a/config-s390x +++ b/config-s390x @@ -234,6 +234,7 @@ CONFIG_HOTPLUG_PCI_S390=y # CONFIG_HID is not set # CONFIG_MTD is not set +# CONFIG_SERIAL_8250 is not set # CONFIG_PARPORT is not set # CONFIG_UWB is not set # CONFIG_MMC is not set I've disabled it on s390x for F20-rawhide. Thanks all. Proposed as a Freeze Exception for 21-final by Fedora user sharkcz using the blocker tracking app because: Because the PC style serial port wins over the s390 native 3215 driver, there is no login available or other output on the console. kernel-3.17.4-300.fc21 has been submitted as an update for Fedora 21. https://admin.fedoraproject.org/updates/kernel-3.17.4-300.fc21 kernel-3.17.4-200.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/kernel-3.17.4-200.fc20 Discussed at 2014-11-24 freeze exception review meeting: http://meetbot.fedoraproject.org/fedora-blocker-review/2014-11-24/f21-blocker-review.2014-11-24-17.01.log.txt . Accepted as a freeze exception issue: major/showstopper bugs for secondary arches can be freeze exception issues so that those arches are not stuck until the primary arch release is complete and freeze lifted, per https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process#Freeze_exception_bug_principles . Package kernel-3.17.4-300.fc21: * should fix your issue, * was pushed to the Fedora 21 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing kernel-3.17.4-300.fc21' as soon as you are able to, then reboot. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-15668/kernel-3.17.4-300.fc21 then log in and leave karma (feedback). kernel-3.17.4-300.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report. kernel-3.17.4-200.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report. |