[OFFICIAL] Linux Kernel (new modules, optimizations, hacks, ...)


#1

Let’s discuss about our official Linux kernel, customisations and next features of our services.

For now, you can only boot with our official kernel, even if you build a new one, the kernel is not loaded from your volume.
Coming soon: boot on custom kernel with custom codlin


.config

The project on github: https://github.com/online-labs/kernel-config/

The current .config content is available by running the following command:

zcat /proc/config.gz

cmdline

The cmdline passed to the kernel is available at /proc/cmdline

It will also be customisable in the future


modules

If you are missing some kernel modules or optimizations, give us info about your needs (the best would be .config lines)


Switch the kernel used by your server using bootscript:


new releases

In this topic we will also give you info about new kernel releases

2014/10/15: 3.17.0-85


Related topics :




[OFFICIAL] Bootscripts (Kernels, Initrd, Cmdline)
[resolved] Loop device
Custom kernel
[planned] Kernel custom to build gentoo hardened + grsec/pax
[resolved] Current Ubuntu Kernel .config
#3

Add TUN/TAP module if possible


#6

New kernel release: 3.17.0-85


Full .config file


To update the kernel, you need to restart your server.
New created servers have the new kernel by default.

New features:

  • TUN/TAP + other network omdules
  • I/O accounting
  • deadline as default I/O scheduler

New features example:

root@c1-10-1-17-15:~# uname -a
Linux c1-10-1-17-15 3.17.0-85 #2 SMP Wed Oct 15 15:31:27 CEST 2014 armv7l armv7l armv7l GNU/Linux
root@c1-10-1-17-15:~# iotop -b -n1 | head -n10
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u8:0]
    7 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
root@c1-10-1-17-15:~# modprobe tun; lsmod | grep tun
tun                    17340  0

Simplified diff:

+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_THROTTLING=y
-CONFIG_DEFAULT_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_DEFAULT_DEADLINE=y
-CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_NEED_BOUNCE_POOL=y
-CONFIG_CRYPTO_CRCT10DIF=m
+CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRC_T10DIF=m
+CONFIG_CRC_T10DIF=y
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_TUN=m
+CONFIG_NLMON=m
+CONFIG_TASKSTATS
+CONFIG_TASK_DELAY_ACCT
+CONFIG_TASK_XACCT
+CONFIG_TASK_IO_ACCOUNTING
+CONFIG_BSD_PROCESS_ACCT
+CONFIG_BSD_PROCESS_ACCT_V3

#7

Continuing the discussion from Loop device:

Will be shipped with the next kernel release, thank you !


Commit:


#9

Good, it will help us to have other OS running


#10

Is there any new needs about the default kernel configuration ?

we already have 2 new additions for the next release:


This next release will probably allow you to run docker


#11

Is missing DRDB module also…


#12

Fixed, thanks (available with the next release)


#13

https://twitter.com/DanielMeah/status/522925609178374144

Will be good with the next Kernel release


#14

When will it be released?


#15

Same question , when ? so I can plan my week-end, Thanks


#16

We are already able to release it, but we are facing a problem, some users have compiled some modules for the running kernel, if we change the default kernel and they reboot, their servers may not start.
We are developing an option on the server page so you can choose to run the latest kernel or a specific one.

It will also let us compile multiple flavours of the kernel:

  • one with most of the modules and kernel features
  • and another super light

Some users are experiencing bad performances on NBD, we think it can be caused by the IO accounting enabled few days ago.
As soon as we will have the new kernel-chooser feature, it will be easier for you and us to bench different configurations and find the most optimised kernel configuration for this platform


#17

Hi,

Also missing af_key module. Getting this error with IPsec:
ipsec_setup: Starting Openswan IPsec 2.6.38…
ipsec_setup: pfkey_open: Address family not supported by protocol


#18

Available with the next release


#19

The new kernel will just refuse to load the custom built modules, as they will have a different vermagic.
Am I missing something?

Another question:
Will we have to manually run oc-sync-kernel-modules to fetch the new modules?


#20

Yes, but some people already reported broken server after an automatic kernel upgrade, probably something wrong blocking in their init system

If you use an official image, we do it for you in the upstart scripts, however we do not clean old kernels modules, so you can have some junk in your /lib/modules folder


#21

New kernel release: 3.17.0-90 perf


Full .config file


New features:

  • Added block devices (loop, ceph, encrypted, rbd, ram, …
  • Added support for network filesystems: NFS, AFS, CEPH, CIFS, …
  • Enabled the network device support modules: (bonding, ppp, pptp, …)
  • Added PF_KEY support
  • Added plenty of advanced networking modules
  • Added configuration without IO accounting
  • Switched back to CFQ IS Scheduler for benchmarcks

#22

New kernel release: 3.18-rc1-94-std


Full .config file


First release candidate for 3.18


#23

Hello Manfred,

Could you add RBD ? Look like CONFIG_BLK_DEV_RBD=y

Thanks


#24

New kernel release: 3.17-100-std


Full .config file


Diff


Linked bootscript


New features

  • First kernel build with patch for network issues
  • Added BINFMT_MISC support (module)

[OFFICIAL] Bootscripts (Kernels, Initrd, Cmdline)