lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <e086c888-df77-1fde-e3b8-9246c9ab3377@molgen.mpg.de>
Date:   Sun, 1 Apr 2018 09:11:15 +0200
From:   Paul Menzel <pmenzel+linux-serial@...gen.mpg.de>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: How to move serial8250_init out of the critical path to decrease boot
 time?

Dear Linux folks,


The goal is to boot a *distribution* Linux kernel as fast as possible. 
(The goal is currently 500 ms.)

With Linux 4.16-rc7, `serial8250_init()` takes almost 34 ms according to 
`initcall_debug` on the laptop TUXEDO Book BU1406 with an Intel Kaby 
Lake processor.

```
[    2.657950] calling  serial8250_init+0x0/0x168 @ 1
[    2.657963] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    2.692598] initcall serial8250_init+0x0/0x168 returned 0 after 33820 
usecs
```

One problem is, that the distributions do not build this as a module, 
despite more and more devices do not actually have serial connectors, 
but the chipset still exposes them.

What options are there?

1.  Try to probe it asynchronously as in the attached patch, which is 
not tested yet.

2.  Where possible try to deactivate this in the firmware?

3.  Recommend to build this as a module? But this would only fix future 
systems?

4.  Avoid the probe, by have an interface to pass the infomr

5.  Add an option to disable the driver, which could be specified on the 
Linux kernel command line? `8250.disable`?


Kind regards,

Paul

View attachment "0001-tty-serial-8250-Request-driver-probe-from-an-async-t.patch" of type "text/x-patch" (1081 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ