powerpc/paravirt: Improve vcpu_is_preempted #34
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: powerpc/kernel+qemu | |
# Controls when the action will run. | |
on: | |
# This allows the build to be triggered manually via the github UI. | |
workflow_dispatch: | |
push: | |
# This triggers the build on a push to any branch | |
branches: | |
- '**' | |
# As long as one of these paths matches | |
paths: | |
- '!tools/**' # ignore tools | |
- '!samples/**' # ignore samples | |
- '!Documentation/**' # ignore Documentation | |
- '!arch/**' # ignore arch changes | |
- 'arch/powerpc/**' # but not arch/powerpc | |
- 'arch/Kconfig' # or common bits in arch | |
- '**' # anything else triggers a build | |
jobs: | |
kernel: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
defconfig: [ppc64_defconfig, ppc40x_defconfig, mpc885_ads_defconfig] | |
image: [fedora-38, korg-5.5.0] | |
include: | |
# ppc64le_guest_defconfig | |
- subarch: ppc64le | |
defconfig: ppc64le_guest_defconfig | |
image: fedora-38 | |
- subarch: ppc64le | |
defconfig: ppc64le_guest_defconfig | |
image: korg-5.5.0 | |
# ppc44x | |
- defconfig: ppc44x_defconfig | |
merge_config: /linux/arch/powerpc/configs/ppc44x-qemu.config | |
image: fedora-38 | |
- defconfig: ppc44x_defconfig | |
merge_config: /linux/arch/powerpc/configs/ppc44x-qemu.config | |
image: korg-5.5.0 | |
# corenet64_smp | |
- defconfig: corenet64_smp_defconfig | |
image: fedora-38 | |
- defconfig: corenet64_smp_defconfig | |
image: korg-5.5.0 | |
# g5 | |
- defconfig: g5_defconfig | |
merge_config: /linux/arch/powerpc/configs/g5-qemu.config | |
image: fedora-38 | |
- defconfig: g5_defconfig | |
merge_config: /linux/arch/powerpc/configs/g5-qemu.config | |
image: korg-5.5.0 | |
# pmac32 | |
- defconfig: pmac32_defconfig | |
merge_config: /linux/arch/powerpc/configs/pmac32-qemu.config | |
image: fedora-38 | |
- defconfig: pmac32_defconfig | |
merge_config: /linux/arch/powerpc/configs/pmac32-qemu.config | |
image: korg-5.5.0 | |
- defconfig: corenet32_smp_defconfig | |
image: fedora-38 | |
env: | |
ARCH: powerpc | |
TARGET: kernel | |
CCACHE: 1 | |
SUBARCH: ${{ matrix.subarch }} | |
IMAGE: ${{ matrix.image }} | |
DEFCONFIG: ${{ matrix.defconfig }} | |
MERGE_CONFIG: ${{ matrix.merge_config }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Register problem matchers | |
run: | | |
echo "::add-matcher::.github/problem-matchers/compiler-source.json" | |
echo "::add-matcher::.github/problem-matchers/compiler-non-source.json" | |
- name: Load ccache | |
uses: actions/cache@v3 | |
with: | |
path: ~/.ccache | |
key: ${{ matrix.image }}-${{ matrix.subarch }}-${{ matrix.defconfig }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build | |
run: | | |
mkdir -p ~/.ccache | |
./arch/powerpc/tools/ci-build.sh | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.defconfig }}-${{ matrix.image }} | |
path: | | |
~/output/vmlinux | |
~/output/.config | |
~/output/System.map | |
~/output/modules.tar.bz2 | |
~/output/arch/powerpc/boot/zImage | |
~/output/arch/powerpc/boot/uImage | |
~/output/include/config/kernel.release | |
boot: | |
runs-on: ubuntu-latest | |
needs: kernel | |
strategy: | |
matrix: | |
include: | |
- defconfig: ppc64le_guest_defconfig | |
machine: pseries+p8+tcg | |
machine_2: pseries+p9+tcg | |
packages: qemu-system-ppc64 | |
rootfs: ppc64le-rootfs.cpio.gz | |
old-image: korg-5.5.0 | |
new-image: fedora-38 | |
- defconfig: ppc64le_guest_defconfig | |
machine: powernv+p8+tcg | |
machine_2: powernv+p9+tcg | |
packages: qemu-system-ppc64 | |
rootfs: ppc64le-rootfs.cpio.gz | |
old-image: korg-5.5.0 | |
new-image: fedora-38 | |
- defconfig: ppc44x_defconfig | |
machine: 44x | |
packages: qemu-system-ppc | |
rootfs: ppc-rootfs.cpio.gz | |
old-image: korg-5.5.0 | |
new-image: fedora-38 | |
- defconfig: corenet64_smp_defconfig | |
machine: ppc64e | |
machine_2: ppc64e+compat | |
packages: qemu-system-ppc64 | |
rootfs: ppc64-novsx-rootfs.cpio.gz ppc-rootfs.cpio.gz | |
old-image: korg-5.5.0 | |
new-image: fedora-38 | |
- defconfig: g5_defconfig | |
machine: g5 | |
packages: qemu-system-ppc64 openbios-ppc | |
rootfs: ppc64-rootfs.cpio.gz | |
old-image: korg-5.5.0 | |
new-image: fedora-38 | |
- defconfig: pmac32_defconfig | |
machine: mac99 | |
packages: qemu-system-ppc openbios-ppc | |
rootfs: ppc-rootfs.cpio.gz | |
old-image: korg-5.5.0 | |
new-image: fedora-38 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
repository: linuxppc/ci-scripts | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Download root disk | |
run: make -C root-disks ${{ matrix.rootfs }} | |
- name: Set root disk path | |
run: echo "ROOT_DISK_PATH=$PWD/root-disks" >> $GITHUB_ENV | |
- name: APT update | |
run: sudo apt update | |
- name: Install dependencies | |
run: sudo apt install -y ${{ matrix.packages }} python3-pexpect python3-termcolor python3-yaml | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ matrix.defconfig }}-${{ matrix.new-image }} | |
- name: Disable network tests | |
run: echo "QEMU_NET_TESTS=0" >> $GITHUB_ENV | |
- name: Run qemu-${{ matrix.machine }} with ${{ matrix.new-image }} build kernel | |
run: ./scripts/boot/qemu-${{ matrix.machine }} | |
- name: Run qemu-${{ matrix.machine_2 }} with ${{ matrix.new-image }} build kernel | |
run: ./scripts/boot/qemu-${{ matrix.machine_2 }} | |
if: matrix.machine_2 != '' | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ matrix.defconfig }}-${{ matrix.old-image }} | |
- name: Run qemu-${{ matrix.machine }} with ${{ matrix.old-image }} build kernel | |
run: ./scripts/boot/qemu-${{ matrix.machine }} | |
- name: Run qemu-${{ matrix.machine_2 }} with ${{ matrix.old-image }} build kernel | |
run: ./scripts/boot/qemu-${{ matrix.machine_2 }} | |
if: matrix.machine_2 != '' |