syzkaller icon indicating copy to clipboard operation
syzkaller copied to clipboard

sys/linux: things to test

Open dvyukov opened this issue 7 years ago • 29 comments

List of things we need descriptions for (dynamically updated). Note : some of these things might be very hard to test, while other are easy.

Before starting work on a subsystem, grep existing descriptions if the subsystem is already [partially] described. This list may be outdated or imply extending existing basic descriptions.

Besides this list, new things are constantly added to the kernel. kernelnewbies.org lists new things in each release. Also queries along the following lines can be used to check for features added in each release:

git diff -U0 v5.17 v5.18 include/uapi/*.h | grep "+++"
git diff -U0 v5.17 HEAD include/uapi/*.h | egrep "^\+.*\s_IO" | less
git diff -U0 v5.17 HEAD include/uapi/*.h | egrep -v "^(index|diff|---|@|-|\+$|\+/\*|\+ \*)" | less

For introduction to Linux kernel syscalls see these 0xax.gitbooks.io articles: part 1, part 4, part 5. Bootlin code search is very useful for browsing kernel sources.

Assorted devices:

  • /dev/vfio
  • stub video/media devices (CONFIG_VIDEO_VIMC, CONFIG_VIDEO_VIM2M, CONFIG_VIDEO_VIVID, CONFIG_VIDEO_VICODEC) /dev/video*, /dev/media*, /dev/v4l* allow to test large generic parts of media stack; there are some descriptions in sys/linux/dev_video4linux.txt but they need to be double checked
  • CONFIG_VIDEO_MEM2MEM_DEINTERLACE
  • CONFIG_VIRTIO_MEM (figure out how to enable it in qemu)
  • drivers/mtd/ubi
  • /dev/dma_heap/system

Assorted:

Sound:

  • /proc/asound/*
  • sound/core/compress_offload.c (figure out how to enable it in qemu)
  • SNDRV_CTL_ELEM_TYPE_*

Network:

USB (docs):

  • USB/IP client and server
  • /sys/kernel/debug/usb/devices
  • Legacy gadget drivers (g_hid.ko, etc.)
  • ConfigFS gadget functions

External USB (sys/linux/vusb.txt):

  • CONFIG_USB_STORAGE
  • CONFIG_SND_USB
  • CONFIG_USB_RTL8150
  • CONFIG_USB_RTL8152
  • CONFIG_USB_NET_AX88179_178A
  • CONFIG_USB_NET_AX8817X
  • Probably many others

External network (sys/linux/vnet.txt):

  • SCTP
  • Probably many others

Bluetooth (sys/linux/socket_bluetooth.txt):

  • What is covered? What isn't yet?

GPIO: the following configs create some test devices in VMs (GPIOLIB, GPIO_AGGREGATOR, GPIO_VIRTIO, GPIO_MOCKUP, GPIO_SIM)

HDMI (#3725)

CONFIG_CACHESTAT_SYSCALL

dvyukov avatar Mar 08 '18 10:03 dvyukov

fou is added in https://github.com/google/syzkaller/commit/7c62f718046a2204a35cfe8850f9006b686b1c22

dvyukov avatar Mar 25 '18 15:03 dvyukov

IPVS is added in https://github.com/google/syzkaller/commit/0ca7878bc33e9f95369c609dd1eb56a6405479cc

dvyukov avatar Mar 26 '18 16:03 dvyukov

I am working on testing Qualcomm IPC Router.

necipfazil avatar Jun 12 '20 08:06 necipfazil

Working on testing openat2

JiahengHu avatar Jun 22 '20 17:06 JiahengHu

Working on raw char device (drivers/char/raw.c).

albertlinde avatar Jun 22 '20 18:06 albertlinde

I am working on testing cgroups v1.

necipfazil avatar Jun 25 '20 08:06 necipfazil

I am working on IP tunnels (if_tunnel.h).

chmnchiang avatar Jun 29 '20 22:06 chmnchiang

I am working on DEVLINK_CMD_TRAP_POLICER.

necipfazil avatar Jul 02 '20 13:07 necipfazil

I am working on ETHTOOL_MSG_PAUSE_GET.

necipfazil avatar Jul 03 '20 13:07 necipfazil

I am working on dev/snapshot

handeharputlu avatar Jul 03 '20 13:07 handeharputlu

Working on close_range syscall

JiahengHu avatar Jul 03 '20 18:07 JiahengHu

@JiahengHu here are relevant commits just in case: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=278a5fbaed89dacd04e9d052f4594ffd0e0585de https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=349057e6f9c71264a54503e2ed6c0627e8369dab

dvyukov avatar Jul 03 '20 18:07 dvyukov

Working on CLONE_CLEAR_SIGHAND/CLONE_INTO_CGROUP/CLONE_NEWTIME

JiahengHu avatar Jul 03 '20 21:07 JiahengHu

I am working on io_uring.

necipfazil avatar Jul 06 '20 07:07 necipfazil

Working on SECCOMP_IOCTL_NOTIF_ADDFD

JiahengHu avatar Jul 07 '20 21:07 JiahengHu

Working on IPV6_RPL_LWTUNNEL

ruxandrastancioi avatar Jul 09 '20 09:07 ruxandrastancioi

Working on /dev/mixer.

chmnchiang avatar Jul 10 '20 00:07 chmnchiang

Working on /dev/sequencer

handeharputlu avatar Jul 13 '20 20:07 handeharputlu

Working on BPF_LSM.

chmnchiang avatar Jul 15 '20 00:07 chmnchiang

Working on RTM_NEWLINKPROP.

albertlinde avatar Jul 15 '20 09:07 albertlinde

Working on /dev/snd/hwCD

handeharputlu avatar Jul 23 '20 09:07 handeharputlu

Working on BRIDGE_MRP.

albertlinde avatar Jul 24 '20 12:07 albertlinde

Working on USB/IP client and server .

handeharputlu avatar Jul 28 '20 19:07 handeharputlu

Working on TCA_FLOWER_KEY_MPLS_OPTS

ruxandrastancioi avatar Jul 30 '20 08:07 ruxandrastancioi

Working on /dev/qat_adf_ctl

chmnchiang avatar Jul 30 '20 20:07 chmnchiang

Working on 802.11

a-nogikh avatar Aug 14 '20 10:08 a-nogikh

Working on /dev/autofs

mirasharf avatar Aug 17 '20 12:08 mirasharf

Working on various types of bpf programs.

chmnchiang avatar Aug 26 '20 00:08 chmnchiang

Working on FQ_PIE from include/uapi/linux/pkt_sched.h

maramihali avatar May 19 '21 08:05 maramihali