---
title: 双层调度特性
description: "通过修改CentOS 7.6内核以及在宿主机和虚拟机上进行安装，以支持一些特性并提升整机性能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/systuningguide/systemtg/kunpengvirtualization_05_0004.html
sourcePath: /source/zh/kunpengcpfs/systuningguide/systemtg/kunpengvirtualization_05_0004.html
indexId: 32d494452e4c67128f0124ae46f9d73ae0dd6bc5d82f84a814090147953b084981
---
# 双层调度特性

通过修改CentOS 7.6内核以及在宿主机和虚拟机上进行安装，以支持一些特性并提升整机性能。

#### 内核说明

通过在编译修改过的CentOS 7.6内核，并安装于宿主机和虚拟机上，能够支持以下特性，提升整机性能：

- vcpu preempt：优化虚拟机vCPU调度，减轻虚拟机CPU超分场景下可能出现的vCPU得不到调度的问题。
- pvspinlock锁优化：优化vCPU等锁时间长导致性能下降的问题。
- guest vcpu topology：解决CentOS 7.6内核下虚拟机不正确显示CPU拓扑的问题。

pvspinlock锁优化特性默认不开启，需要修改虚拟机内部cmdline，添加arm_pvspin选项。特性开启后，预期可以在虚拟机内message日志中看到如下图信息：


#### 内核安装

主机和虚拟机都需要进行内核安装。

1. 安装编译依赖。

```
yum -y install yum-utils rpm-build
```


2. 下载内核源码。

  - 下载内核补丁。

```
git clone https://github.com/kunpengcompute/kernel-alt.git
```


  - 下载内核源码包并安装。

```
wget https://archive.kernel.org/centos-vault/altarch/7.6.1810/os/Source/SPackages/kernel-alt-4.14.0-115.el7a.0.1.src.rpm
rpm -ivh kernel-alt-4.14.0-115.el7a.0.1.src.rpm
```


3. 拷贝文件至指定目录，做好编译准备。
  1 2 3 4 5 cd kernel-alt cp -f *patch ~/rpmbuild/SOURCES/ cp -f kernel-alt-4.14.0-aarch64.config ~/rpmbuild/SOURCES/ cp -f kernel-alt-4.14.0-aarch64-debug.config ~/rpmbuild/SOURCES/ cp -f kernel-alt.spec ~/rpmbuild/SPECS/

4. 开始编译。
  1 2 3 cd ~/rpmbuild/SPECS/ yum-builddep -y kernel-alt.spec rpmbuild -bb kernel-alt.spec

5. 安装编译内核。
  1 2 cd ~/rpmbuild/RPMS/aarch64 rpm -ivh kernel-4.14.0-115.el7.0.2.aarch64.rpm

6. 将GRUB启动项设置为新安装的内核并重启系统。
7. 内核安装成功后，检查OS内核版本。
  1 uname -r

  可查看到如下所示的版本信息。
