GNU bug report logs - #39341
Installer using 100% of a CPU core

Previous Next

Package: guix;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Wed, 29 Jan 2020 05:20:01 UTC

Severity: important

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ludovic Courtès <ludo <at> gnu.org>
To: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>
Cc: Mathieu Othacehe <othacehe <at> gnu.org>, 39341-done <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: bug#39341: Installer using 100% of a CPU core
Date: Tue, 27 Apr 2021 23:26:41 +0200
Hi,

"pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de> skribis:

> On Tue, Apr 27, 2021 at 12:38:23PM +0200, Ludovic Courtès wrote:
>> What do you mean by “fails on real hardware”?  That the keyboard layout
>> is unchanged?
>
> Yes.
>
>
>> Is there anything in /var/log/messages
>
> No, nothing out of the ordinary, only the installer pages I went
> through.
>
>> or wherever kmscon
>> writes its logs?
>
> I try with
>
> diff --git a/gnu/services/base.scm b/gnu/services/base.scm
> index 24b3ea785b..0eff24828c 100644
> --- a/gnu/services/base.scm
> +++ b/gnu/services/base.scm
> @@ -2330,6 +2330,7 @@ This service is not part of @var{%base-services}."
>  
>         (define kmscon-command
>           #~(list
> +            #$(file-append strace "/bin/strace") "-o" "/var/log/kmscon-out" "-f"
>              #$(file-append kmscon "/bin/kmscon") "--login"
>              "--vt" #$virtual-terminal
>              "--no-switchvt" ;Prevent a switch to the virtual terminal.

I tried this in ‘guix system vm gnu/system/install.scm’.  I proceed like
so:

  1. after the installer’s welcome screen I choose French layout;
  2. the next dialog is the host name, which is where I confirm I really
     got French layout;
  3. from there I press F1, choose German layout, confirm by typing into
     the host name dialog that I got German layout;
  4. I repeat step #3 with a variety of layouts.

Changing layouts there just works and is instantaneous.  (Note that this
only changes the layout of kmscon, so tty3 & co. are unaffected.)

The strace log shows this when changing layouts (FD 17 corresponds to
/tmp/kmscon-165-keymap-update, the FIFO node):

--8<---------------cut here---------------start------------->8---
165   epoll_wait(3, [{EPOLLIN, {u32=17731792, u64=17731792}}, {EPOLLIN|EPOLLHUP, {u32=18285248, u64=18285248}}, {EPOLLIN, {u32=17639536, u64=17639536}}], 32, -1) = 3
165   epoll_wait(12, [{EPOLLIN, {u32=17678528, u64=17678528}}], 32, 0) = 1
165   read(20, "\33[5;22H\33[44m\33[K\33[6;22H\33[K\33[7;22H"..., 16384) = 1657
165   read(20, 0x10f6c28, 16384)        = -1 EAGAIN (Resource temporarily unavailable)
165   read(17, "p", 1)                  = 1
165   read(17, "c", 1)                  = 1
165   read(17, "1", 1)                  = 1
165   read(17, "0", 1)                  = 1
165   read(17, "5", 1)                  = 1
165   read(17, "\0", 1)                 = 1
165   read(17, "f", 1)                  = 1
165   read(17, "r", 1)                  = 1
165   read(17, "\0", 1)                 = 1
165   read(17, "\0", 1)                 = 1
165   read(17, "\0", 1)                 = 1
165   read(17, "", 1)                   = 0
165   stat("/gnu/store/m734r6j7g74x9k74sgjb8835pg7dnqbk-libxkbcommon-1.0.3/etc/xkb", 0x7fff179314b0) = -1 ENOENT (No such file or directory)
165   stat("/gnu/store/qz3zdrz12rxawlkvah9qjhjyf6fh1v98-xkeyboard-config-2.31/share/X11/xkb", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0

[...]

165   openat(AT_FDCWD, "/gnu/store/qz3zdrz12rxawlkvah9qjhjyf6fh1v98-xkeyboard-config-2.31/share/X11/xkb/symbols/inet", O_RDONLY) = 22
165   fstat(22, {st_mode=S_IFREG|0444, st_size=64040, ...}) = 0
165   mmap(NULL, 64040, PROT_READ, MAP_SHARED, 22, 0) = 0x7f50d23b5000
165   brk(0x12bb000)                    = 0x12bb000
165   munmap(0x7f50d23b5000, 64040)     = 0
165   close(22)                         = 0
165   epoll_ctl(3, EPOLL_CTL_DEL, 17, NULL) = 0
165   close(17)                         = 0
165   getpid()                          = 165
165   unlink("/tmp/kmscon-165-keymap-update") = 0
165   mknod("/tmp/kmscon-165-keymap-update", S_IFIFO|0700) = 0
165   openat(AT_FDCWD, "/tmp/kmscon-165-keymap-update", O_RDONLY|O_NONBLOCK) = 17
165   epoll_ctl(3, EPOLL_CTL_ADD, 17, {EPOLLIN, {u32=19410896, u64=19410896}}) = 0
--8<---------------cut here---------------end--------------->8---

The last lines show that we delete the FIFO from the poll set, close the
FIFO, recreate it, and re-add it to the poll set.

So for me it works exactly as intended.

Do you have a scenario I could follow to try to reproduce the problem?

Thanks,
Ludo’.




This bug report was last modified 4 years and 25 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.