Skip to content

Add Linux 4.19 #1025

Merged
merged 13 commits into from
Feb 5, 2019
Merged

Add Linux 4.19 #1025

merged 13 commits into from
Feb 5, 2019

Conversation

donald
Copy link
Collaborator

@donald donald commented Feb 4, 2019

No description provided.

Create bee file with

    cp linux-4.14.96-240.bee linux-4.19.19-243.bee
The 'Revert "genirq/affinity: assign vectors to all possible CPUs"'
patch is not needed in 4.19. Remove it.
Update to a patch file with offsets fixed for 4.19.
These two nfsd4 patches are already included in 4.19. Remove them.
Enter results of `make savedefconfig` into bee file.

The defaults and order of some options have changed, so this change
looks bigger then it is. Actual changes grouped by reasoning are:

* CONFIG_CIFS_STATS is no longer available. There is a CONFIG_CIFS_STATS2,
but I decided not to set it (we don't use in-kernel CIFS anyway).

    < CONFIG_CIFS_STATS=y

* Options which needed to be set as a prerequisite for other
optons we set:

    > CONFIG_GPIOLIB=y
    > CONFIG_SERIAL_DEV_BUS=m

* New netfilter targets -- These were included, because they are tristate
and believed not to cause problems when not used. This gives us biggest
flexibility on the firewall:

    > CONFIG_IP6_NF_MATCH_SRH=m
    > CONFIG_NETFILTER_XT_MATCH_SOCKET=m
    > CONFIG_NFT_CONNLIMIT=m
    > CONFIG_NFT_FIB_INET=m
    > CONFIG_NFT_FIB_IPV4=m
    > CONFIG_NFT_FIB_IPV6=m
    > CONFIG_NFT_FIB_NETDEV=m
    > CONFIG_NFT_FLOW_OFFLOAD=m
    > CONFIG_NFT_OSF=m
    > CONFIG_NFT_SOCKET=m
    > CONFIG_NFT_TPROXY=m
    > CONFIG_NFT_TUNNEL=m
    > CONFIG_NF_FLOW_TABLE=m
    > CONFIG_NF_FLOW_TABLE_INET=m
    > CONFIG_NF_TABLES_SET=m

* Netfilter targets, which are no longer available:

    < CONFIG_NFT_EXTHDR=m
    < CONFIG_NFT_META=m
    < CONFIG_NFT_RT=m
    < CONFIG_NFT_SET_BITMAP=m
    < CONFIG_NFT_SET_HASH=m
    < CONFIG_NFT_SET_RBTREE=m
    < CONFIG_NF_CONNTRACK_IPV4=m
    < CONFIG_NF_CONNTRACK_IPV6=m
    < CONFIG_NF_TABLES_BRIDGE=m

* Netfilter targets, which are no longer tristate and have
been changed from, 'm' to 'y':

    < CONFIG_NF_TABLES_ARP=m
    < CONFIG_NF_TABLES_INET=m
    < CONFIG_NF_TABLES_NETDEV=m
    > CONFIG_NF_TABLES_ARP=y
    > CONFIG_NF_TABLES_INET=y
    > CONFIG_NF_TABLES_NETDEV=y

* Options, which are now set by default:

    < CONFIG_PCI_MMCONFIG=y
    < CONFIG_SND_DYNAMIC_MINORS=y
Version 0.7.9 did not compile with 4.19 kernel.

Upgrade to lastest release 0.7.12, which claims to be compatible with
4.19 kernels.

https://github.com/zfsonlinux/zfs/releases
Create bee file with

    cp nvidia_linux-4.14.96-240-390.87-0.bee nvidia_linux-4.19.19-243-390.87-0.bee
Without this patch the build failed with

    /scratch/local/bee-root/nvidia/nvidia_linux-4.19.19-243-390.87-0/source/kernel/nvidia-drm/nvidia-drm-encoder.c:219:11: error: implicit declaration of function ‘drm_mode_connector_attach_encoder’; did you mean ‘drm_connector_attach_encoder’? [-Werror=implicit-function-declaration]
    ret = drm_mode_connector_attach_encoder(connector, encoder);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          drm_connector_attach_encoder

Other fine people have already fixed that.

    https://github.com/fedeliallalinea/gentoo-patches/blob/master/x11-drivers/nvidia-drivers-390.87/nvidia-drivers-390.87-kernel-4.19.patch

Take that patch.
@donald
Copy link
Collaborator Author

donald commented Feb 4, 2019

tested on sigusr2

@donald
Copy link
Collaborator Author

donald commented Feb 4, 2019

tested on tldr, fixes #1020

@pmenzel pmenzel changed the title Add linux 4.19 Add Linux 4.19 Feb 5, 2019
@pmenzel
Copy link
Collaborator

pmenzel commented Feb 5, 2019

Tested on keineahnung and maleficent.

Add CONFIG_INET_RAW_DIAG and CONFIG_INET_DIAG_DESTROY.

Maybe this options increated the usefulness of `ss`.

CONFIG_INET_RAW_DIAG
====================
Support for RAW socket monitoring interface used by the ss tool.

If unsure, say Y.

CONFIG_INET_DIAG_DESTROY
========================
Provides a SOCK_DESTROY operation that allows privileged processes
(e.g., a connection manager or a network administration tool such as
ss) to close sockets opened by other processes. Closing a socket in
this way interrupts any blocking read/write/connect operations on
the socket and causes future socket calls to behave as if the socket
had been disconnected.

If unsure, say N.
@pmenzel
Copy link
Collaborator

pmenzel commented Feb 5, 2019

In commit linux-4.19: Add several VIRTIO options fehlt noch ein T.

CONFIG_VIRTIO_PCI
=================
his driver

Rest looks good.

With VIRTIO we hope to be able to speed up our VM guests a lot. Add
several VIRTIO options.

CONFIG_VSOCKETS
===============
Virtual Socket Protocol is a socket protocol similar to TCP/IP
allowing communication between Virtual Machines and hypervisor
or host.

You should also select one or more hypervisor-specific transports
below.

To compile this driver as a module, choose M here: the module
will be called vsock. If unsure, say N.

CONFIG_VIRTIO_VSOCKETS
======================
This module implements a virtio transport for Virtual Sockets.

Enable this transport if your Virtual Machine host supports Virtual
Sockets over virtio.

To compile this driver as a module, choose M here: the module will be
called vmw_vsock_virtio_transport. If unsure, say N.

CONFIG_VIRTIO_BLK
=================
This is the virtual block driver for virtio.  It can be used with

QEMU based VMMs (like KVM or Xen).  Say Y or M.

CONFIG_VIRTIO_NET
=================
This is the virtual network driver for virtio.  It can be used with
QEMU based VMMs (like KVM or Xen).  Say Y or M.

CONFIG_VIRTIO_CONSOLE
=====================
Virtio console for use with hypervisors.

Also serves as a general-purpose serial device for data
transfer between the guest and host.  Character devices at
/dev/vportNpn will be created when corresponding ports are
found, where N is the device number and n is the port number
within that device.  If specified by the host, a sysfs
attribute called 'name' will be populated with a name for
the port which can be used by udev scripts to create a
symlink to the device.

CONFIG_VIRTIO_PCI
=================
This driver provides support for virtio based paravirtual device
drivers over PCI.  This requires that your VMM has appropriate PCI
virtio backends.  Most QEMU based VMMs should support these devices
(like KVM or Xen).

If unsure, say M.

CONFIG_VIRTIO_BALLOON
=====================
This driver supports increasing and decreasing the amount
of memory within a KVM guest.

If unsure, say M.

CONFIG_VIRTIO_INPUT
===================
This driver supports virtio input devices such as
keyboards, mice and tablets.

If unsure, say M.
Having the link types ipvtap and ipvlan available may give us some more
flexibility with possible VM configurations.

CONFIG_IPVLAN
=============
This allows one to create virtual devices off of a main interface
and packets will be delivered based on the dest L3 (IPv6/IPv4 addr)
on packets. All interfaces (including the main interface) share L2
making it transparent to the connected L2 switch.

Ipvlan devices can be added using the "ip" command from the
iproute2 package starting with the iproute2-3.19 release:

"ip link add link <main-dev> [ NAME ] type ipvlan"

To compile this driver as a module, choose M here: the module
will be called ipvlan.

CONFIG_IPVTAP                                                                                                                                                               │
=============
This adds a specialized tap character device driver that is based
on the IP-VLAN network interface, called ipvtap. An ipvtap device
can be added in the same way as a ipvlan device, using 'type
ipvtap', and then be accessed through the tap user space interface.

To compile this driver as a module, choose M here: the module
will be called ipvtap.
Build nvidia_linux for new kernel build and remove nvidia_linux for
previous kernel build.
@donald
Copy link
Collaborator Author

donald commented Feb 5, 2019

tested on sigusr2, claptrapm tldr and (accidentally) chimichangas

@donald donald merged commit b879b56 into master Feb 5, 2019
@pmenzel
Copy link
Collaborator

pmenzel commented Feb 8, 2019

Just as a side note, that the default disk scheduler changed in Linux 4.19 from cfq, not recommended for XFS, to mq-deadline.

On rotational disks without hardware raid

CFQ: not great for XFS parallelism:

< dchinner> it doesn't allow other threads to get IO issued immediately after the first one
< dchinner> it waits, instead, for a timeslice to expire before moving to the IO of a different process.
< dchinner> so instead of interleaving the IO of multiple jobs in a single sweep across the disk,
it enforces single threaded access to the disk

deadline: good option, doesn't have such problem

eldersoftheinternet:~> more /proc/version
Linux version 4.14.87.mx64.236 (root@likearollingstone.molgen.mpg.de) (gcc version 7.3.0 (GCC)) #1 SMP Mon Dec 10 09:48:57 CET 2018
eldersoftheinternet:~> more /sys/block/sda/queue/scheduler 
noop deadline [cfq]
theinternet:~> cat /proc/version
Linux version 4.19.19.mx64.244 (root@theinternet.molgen.mpg.de) (gcc version 7.3.0 (GCC)) #1 SMP Tue Feb 5 13:01:13 CET 2019
theinternet:~> cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber none

@pmenzel pmenzel deleted the add-linux-4.19 branch December 19, 2019 12:54
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants