Announcement

Collapse
No announcement yet.

Linux 4.15-rc2 Kernel Released

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Linux 4.15-rc2 Kernel Released

    Phoronix: Linux 4.15-rc2 Kernel Released

    The second weekly release candidate to the Linux 4.15 kernel was released early on Sunday...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Available now from Ubuntu: http://kernel.ubuntu.com/~kernel-ppa...ine/v4.15-rc2/

    EDIT: Awesome.. on my RX 480, Night Light for GNOME is working again for me, and the system no longer freezes on resume from standby (both were issues on rc1). Great work.

    Code:
    $ uname -a
    Linux ubuntu 4.15.0-041500rc2-generic #201712031230 SMP Sun Dec 3 17:32:03 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    $ cat /sys/module/amdgpu/parameters/dc
    1
    Dare I say my system feels a little snappier on 4.15 than 4.14.x. I felt that way after rc1, and now rc2 as well.
    Last edited by perpetually high; 03 December 2017, 02:44 PM.

    Comment


    • #3
      Originally posted by debianxfce View Post
      Use a non debug 1000Hz timer custom kernel. With a ssd it boots several seconds faster and works snappier.
      I'd like to try it out, I've seen you mention it before. My only experience from using a different timer was very positive (xanmod custom kernel was using a 500Hz timer). The difference in gaming was definitely obvious.

      To confirm, it would be recompiling the kernel with these config settings changed?

      Code:
      CONFIG_DEBUG_INFO=n (changing from y to n)
      and also:

      Code:
      # CONFIG_HZ_100 is not set
      # CONFIG_HZ_250 is not set
      # CONFIG_HZ_300 is not set
      CONFIG_HZ_1000=y
      CONFIG_HZ=1000
      Does that look right?

      Comment


      • #4
        Originally posted by debianxfce View Post
        Easier than using git is to download the tar package from kernel.org. The 4.15-rc2 kernel is at kernel.org already.
        https://www.kernel.org/
        It's only easier if you can't manage to take 5 minute only course on how to use git.

        Otherwise I have no idea how would I run daily snapshots of kernel branches without my single 20 long bash script that compiles everything (kernel, nvidia module, vbox module) automatically every night, updates efi-stub based boot loader via efibootmgr and notifies me if anything goes wrong (merge problem with my patchset, nvidia/vbox driver breakage). I manage 3 separate kernels branches this way (vanilla master, my own branch and stable release branch), just so that I have an option to boot into different kernel if anything breaks and stuff. Since I compile daily from the same tree, it's pretty rare that a kernel build takes more than 30 seconds and it runs in background anyway.

        Code:
         Linux tpruzina 4.15.0-rc1-tpruzina-master-2db767d988 [B]#1579[/B] SMP PREEMPT Sat Dec 2 02:17:03 CET 2017 x86_64 Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz GenuineIntel GNU/Linux
        Note that bold number signifies number of (successful) builds from given tree. And I literally spend zero time on this unless something breaks (which tends to happen once every two months on average, typically in nvidia kernel module).
        Last edited by Guest; 03 December 2017, 03:05 PM.

        Comment


        • #5
          Originally posted by tpruzina View Post

          It's only easier if you can't manage to take 5 minute only course on how to use git.

          Otherwise I have no idea how would I run daily snapshots of kernel branches without my single 20 long bash script that compiles everything (kernel, nvidia module, vbox module) automatically every night, updates efi-stub based boot loader via efibootmgr and notifies me if anything goes wrong (merge problem with my patchset, nvidia/vbox driver breakage). I manage 3 separate kernels branches this way (vanilla master, my own branch and stable release branch), just so that I have an option to boot into different kernel if anything breaks and stuff. Since I compile daily from the same tree, it's pretty rare that a kernel build takes more than 30 seconds and it runs in background anyway.

          Code:
           Linux tpruzina 4.15.0-rc1-tpruzina-master-2db767d988 [B]#1579[/B] SMP PREEMPT Sat Dec 2 02:17:03 CET 2017 x86_64 Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz GenuineIntel GNU/Linux
          Note that bold number signifies number of (successful) builds from given tree. And I literally spend zero time on this unless something breaks (which tends to happen once every two months on average, typically in nvidia kernel module).
          Where's that script? What distro do you use?

          Comment


          • #6
            For a while now, I've been following the upstream stable kernel releases on my Debian 8 desktop with this cronjob I made:

            Code:
            #!/bin/bash
            kp="$HOME/dev/linux"
            
            # Disable -dbg packages
            kcs='s/CONFIG_DEBUG_INFO=./CONFIG_DEBUG_INFO=n/'
            # Select 1000 Hz
            kcs+=';s/CONFIG_HZ_\(.*\)=./CONFIG_HZ_\1=n;s/.*CONFIG_HZ_1000.*/CONFIG_HZ_1000=y/;s/CONFIG_HZ=.*/CONFIG_HZ=1000/'
            # Enable GVT-g
            #kcs+=';s/CONFIG_DRM_I915_GVT=./CONFIG_DRM_I915_GVT=y/'
            
            kernelgit="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"
            stable_ver() { git branch -r --no-color | sed 's/^..//' | sort -V | tail -n2 | head -n1; }
            inarray() { local n=$1 h; shift; for h; do [[ $n = "$h" ]] && return; done; return 1; }
            
            if [[ $# -le 0 ]]; then
                # Setup environment
                [[ $(dpkg -s build-essential git sed sudo) ]] ||
                    apt install build-essential git sed sudo libelf-dev libssl-dev
                [[ -d "$kp/autobuild" ]] ||
                    mkdir -p "$kp/autobuild" || exit 1
                [[ -d "$kp/linux-stable" ]] ||
                    git clone "$kernelgit" "$kp/linux-stable" || exit 1
                [[ -f "$kp/linux-stable/.config" ]] ||
                    sed "$kcs" /boot/config-"$(uname -r)"* > "$kp/linux-stable/.config" || exit 1
                # Install Cronjob
                #[[ -e "$kp/autobuild/autobuild.sh" ]] ||
                #    ln -s "$(realpath "$0")" "$kp/autobuild/autobuild.sh" || exit 1
                #[[ ! $(crontab -l | grep "autobuild.sh") && $(type shuf) ]] &&
                #    crontab -l | { cat; echo "$(shuf -i0-59 -n1) 7 * * * \"$kp/autobuild/autobuild.sh\" >/dev/null"; } | crontab -
               
                # Check for updates
                cd "$kp/linux-stable" || exit 1
                git checkout "$(stable_ver)" 2> >(grep -v HEAD)
                oldver="$(git describe)"
                git fetch 2>/dev/null || exit 1
                git checkout "$(stable_ver)" 2> >(grep -v HEAD)
                #git checkout master # To build latest RC
                newver="$(git describe)"
               
                # Build latest kernel-image if not built already
                if [[ $newver != "$oldver" || -z $(ls -A "$kp"/autobuild/*.deb 2>/dev/null) ]]; then
                    rm -fv "$kp"/autobuild/{*.deb,ChangeLog-*}
                   
                    make olddefconfig &&
                    make -j"$(nproc)" bindeb-pkg 2>&1 | grep -v 'info:' &&
                   
                    mv -v ../*.deb ../autobuild/
                    [[ $newver != "$oldver" ]] &&
                        git log "$oldver..$newver" > "../autobuild/ChangeLog-${newver:1}"
               
                    # Install
                    cd "$kp/autobuild" || exit 1
                    pkgs=(linux-image-*.deb linux-libc-dev*.deb)
                    DISPLAY=:0 x-terminal-emulator -e \
                        sudo --prompt="Executing as %U: autobuild.sh install ${pkgs[*]} \
                        [sudo] password for %p: " "$0" install "$PWD" "${pkgs[@]}" 2>/dev/null
                fi
            elif [[ $1 == "install" && -d $2 ]]; then
                cd "$2" || exit 1
               
                # Print useful info
                ls --color -lh .;echo
                echo "Changelog: file://$(find "$2" -ctime 0 -name 'ChangeLog-*')";echo
                df -h /boot;echo
                uname -a;uptime;echo
               
                # Select kernels to purge (interactive)
                reply='.'
                until [[ $reply = "" ]]; do
                    mapfile -O 1 -t kernels < <(dpkg-query -f '${binary:Package}\n' -W 'linux-image-[0-9]*' | grep -v -e \\-dbg -e "linux-image-$(uname -r)")
                    for k in ${!kernels[*]}; do
                        if ! inarray "${kernels[$k]}" "${purge[@]}"; then
                            printf "%4d: %s\\n" "$k" "${kernels[$k]}"
                        else
                            printf "❌%4d: %s\\n" "$k" "${kernels[$k]}"
                        fi
                    done
                    read -n1 -rp $'\nPress <num> to select for purge, <Enter> to continue. ' reply
                    if inarray "${kernels[$reply]}" "${purge[@]}"; then
                        for i in "${!purge[@]}"; do
                            [[ ${purge[i]} = "${kernels[$reply]}" ]] &&  # || ${purge[i]} = "${kernels[$reply]/image/firmware-image}"
                                unset 'purge[i]'
                        done; echo
                    else
                        purge+=("${kernels[$reply]}")
                        echo
                    fi
                done
               
                apt purge "${purge[@]}"
                dpkg -i "${@:3}"
            fi
            Last edited by fld-; 09 April 2018, 11:55 AM.

            Comment


            • #7
              Originally posted by tpruzina View Post

              It's only easier if you can't manage to take 5 minute only course on how to use git.

              Otherwise I have no idea how would I run daily snapshots of kernel branches without my single 20 long bash script that compiles everything (kernel, nvidia module, vbox module) automatically every night, updates efi-stub based boot loader via efibootmgr and notifies me if anything goes wrong (merge problem with my patchset, nvidia/vbox driver breakage). I manage 3 separate kernels branches this way (vanilla master, my own branch and stable release branch), just so that I have an option to boot into different kernel if anything breaks and stuff. Since I compile daily from the same tree, it's pretty rare that a kernel build takes more than 30 seconds and it runs in background anyway.

              Note that bold number signifies number of (successful) builds from given tree. And I literally spend zero time on this unless something breaks (which tends to happen once every two months on average, typically in nvidia kernel module).
              How do you find the latest nvidia driver without any manual effort? Nouveau surely crashes more often than that. Apparently you don't care about new drivers and features?

              Comment


              • #8
                The announcement message is out now.

                Comment


                • #9
                  Originally posted by debianxfce View Post

                  You can make a mess with git commands and they are cryptic. You did not learn to use git fully in 5 minutes. Running your services background in a gaming/multimedia pc is a waste of hw resources. That is like running daily virusscan automatically that slows your computer.
                  Not only that, the git command probably pulls more unnecessary stuff and wastes more space if you're not going to hack with the kernel anyways.

                  Comment


                  • #10
                    Note that some security features [1] depends on DEBUG_KERNEL. For example what happens when I turn it off:
                    $ diff -u /boot/config-4.13.16-gentoo .config | grep -- '^-C'
                    -CONFIG_DEBUG_DEVRES=y
                    -CONFIG_DEBUG_KERNEL=y
                    -CONFIG_DEBUG_STACK_USAGE=y
                    -CONFIG_DEBUG_STACKOVERFLOW=y
                    -CONFIG_SCHEDSTATS=y
                    -CONFIG_SCHED_STACK_END_CHECK=y
                    -CONFIG_DEBUG_PREEMPT=y
                    -CONFIG_DEBUG_SG=y
                    -CONFIG_DEBUG_NOTIFIERS=y
                    -CONFIG_DEBUG_CREDENTIALS=y
                    -CONFIG_DEBUG_BOOT_PARAMS=y
                    -CONFIG_X86_DEBUG_FPU=y
                    [1] https://kernsec.org/wiki/index.php/K...ended_Settings

                    Comment

                    Working...
                    X