<< All versions

Skill v1.0.0

currentAutomated scan100/100
gvago/unofficial-qodo-review-skills/kernel-subsystem-guides
──Details
PublishedSeptember 28, 2026 at 12:46 AM
Content Hashsha256:91ad7ce999b49b91...
Git SHA
──Files
Files (1 file, 6.3 KB)
SKILL.md6.3 KBactive
SKILL.md · 109 lines · 6.3 KB

version: "1.0.0" name: kernel-subsystem-guides description: "Use when a Linux kernel PR diff matches a known subsystem (mm, block, net, btrfs, io_uring, KVM, DRM, USB, scheduler, and 60+ more), router into per-subsystem invariant guides from Chris Mason's masoncl/review-prompts knowledge base; load every guide whose trigger row matches before analysis. Part of the linux-kernel-review suite." license: MIT metadata: author: Sashiko contributors / Chris Mason adapted_by: gvago source: https://github.com/masoncl/review-prompts (MIT) via https://github.com/sashiko-dev/sashiko variant: review version: 1.0.0


kernel-subsystem-guides

Per-subsystem invariants, API contracts, and bug patterns (Sashiko's shared-context knowledge base). This skill is a router: match the diff against the trigger table and load EVERY matching guide from references/subsystem/ before analysis. A change can match multiple rows , code in arch/arm64/kvm/hyp/ matches ARM64, KVM, ARM64 KVM, and ARM64 Hyp, and all four apply.

Trigger table

Triggers are path fragments, function-call prefixes, and symbol regexes.

SubsystemTriggersGuide
Networking Corenet/, skb_, sockets, xfrm, dst_, sock_put, release_sock, pskb_may_pull, SNMP_*_STATSnetworking-core.md
Networking Driversdrivers/net/, ethtool_ops, net_device_opsnetworking-drivers.md
Netlinkgenl_, nla_, NLA_, NLM_F_, nlmsg_, netlink_callback, Documentation/netlink/specs/netlink.md
MM Page Tablespte_, pmd_, pud_, set_pte, ptep_, tlb_*, mm/memory.c, mm/mprotect.c, mm/pagewalk.cmm-pagetable.md
Alignment HelpersALIGN, ALIGN_DOWN, IS_ALIGNED, PAGE_ALIGN, pageblock_*alignment.md
MM Folio/Page Cachefolio_, page_folio, compound_head, filemap_, xa_, xas_, mm/filemap.cmm-folio.md
MM Large Folios/THPhuge_memory, hugetlb, split_huge_*, hstate, mm/huge_memory.c, mm/hugetlb.cmm-largepage.md
MM VMAvma_, mmap_, vm_area_struct, vm_flags, anon_vma, maple_tree, mm/vma.c, mm/mmap.cmm-vma.md
MM Allocationalloc_pages, __GFP_, kmalloc, kmem_cache_, slub, vmalloc, mempool, mm/page_alloc.cmm-alloc.md
MM Reclaim/Swapvmscan, shrink_, lru_, swap_, shmem_, mem_cgroup_, migrate_, mm/vmscan.cmm-reclaim.md
VFSinode, dentry, vfs_, fs/*.cvfs.md
LEDsdrivers/leds/, led_classdev_registerleds.md
Lockingspin_lock, mutex_, rwsem, seqlock, seqcountlocking.md
Schedulerkernel/sched/, sched_, schedule, wakeupscheduler.md
Timerstimer_list, timer_setup, mod_timer, del_timer, hrtimer, delayed_worktimers.md
BPFkernel/bpf/, tools/lib/bpf/, bpf, verifierbpf.md
BTF Fieldsmap_check_btf, bpf_obj_free_fields, BPF_SPIN_LOCK, BPF_TIMER, BPF_KPTRbtf.md
Libbpf APItools/lib/bpf/, LIBBPF_API, libbpf_errlibbpf.md
RCUrcu*, call_rcu, synchronize_rcu, kfree_rcurcu.md
Encryptioncrypto, fscrypt_fscrypt.md
Tracingtrace_, tracepointstracing.md
Workqueuekernel/workqueue.c, work_structworkqueue.md
SyscallsSYSCALL_DEFINE, copy_from_user, copy_to_user, get_user, put_usersyscall.md
btrfsfs/btrfs/btrfs.md
DAXdax operationsdax.md
Block/NVMeblock layer, nvmeblock.md
DRM/GPUdrivers/gpu/drm/, drm_atomic_, drm_crtc_, hwseqdrm.md
Media/V4L2drivers/media/, v4l2_subdev_, MEDIA_BUS_FMT_media.md
NFSDfs/nfsd/, fs/lockd/nfsd.md
SunRPCnet/sunrpc/*sunrpc.md
io_uringio_uring/, io_uring_, io_ring_, IORING_io_uring.md
FUSEfs/fuse/, fuse_uring_, FUSE_OVER_IO_URINGfuse.md
Cleanup API__free, guard(, scoped_guard, DEFINE_FREE, DEFINE_GUARD, no_free_ptrcleanup.md
Power Domainsdrivers/pmdomain/, pm_genpd_, of_genpd_pmdomain.md
PM Runtimepm_runtime_, __pm_runtime_, rpm_idle, rpm_suspendpm.md
Sysfsfs/sysfs/, sysfs_create_group, attribute_group, is_visiblesysfs.md
CXLdrivers/cxl/, cxl_cxl.md
Bluetoothnet/bluetooth/, hci_, HCI_LE_ADVbluetooth.md
TTY/Serialdrivers/tty/, uart_add_one_port, uart_ops, serial_coretty.md
PCIdrivers/pci/, pci_epc_, pci_epf_, pci_ep_pci.md
SMB/ksmbdfs/smb/server/, ksmbd_, smb_direct_smb-ksmbd.md
Open Firmware (DT)drivers/of/, of_node, of_find_, of_get_, of_node_putof.md
Perf Toolstools/perf/, openat, fdopendir, closedirperf.md
MFDdrivers/mfd/, mfd_add_devices, mfd_cellmfd.md
MIPSarch/mips/, tlb_probe, write_c0_entryhi, TLBP, TLBR, TLBWImips.md
hwmondrivers/hwmon/, hwmon_*hwmon.md
Wireless/mac80211drivers/net/wireless/, net/mac80211/, BSS_CHANGED_wireless.md
Selfteststools/testing/selftests/, TEST_PROGS, TEST_GEN_FILESselftests.md
DT BindingsDocumentation/devicetree/bindings/, *.yaml in devicetreedt-bindings.md
USB Storagedrivers/usb/storage/, UNUSUAL_DEV, USB_SC_, USB_PR_usb-storage.md
ATA/libatadrivers/ata/, ata_dev_, ata_port_, ATA_QUIRK_ata.md
I/O Accessorswritesl, readsl, writesw, readsw, __raw_writel, __raw_readl, FIFOio-accessors.md
KconfigKconfig, config , select , depends on , tristatekconfig.md
Build SystemKbuild, Makefile, scripts/, gnu11, -funsigned-charbuild.md
I2Cdrivers/i2c/, i2c_transfer, i2c_master_send, i2c_smbus_i2c.md
HIDdrivers/hid/, hid_device, hid_driver, hid_hw_starthid.md
Inputdrivers/input/, input_dev, input_handler, input_register_input.md
Objtooltools/objtool/, INSN_BUG, INSN_TRAP, decode.cobjtool.md
KHO (Kexec Handover)kho_, kho_is_enabled, register_kho_notifierkho.md
Rustany Rust coderust.md
KVMvirt/kvm/, include/linux/kvm*, kvm_kvm.md
ARM64arch/arm64/, sysregarm64.md
ARM64 KVM (EL1/Host)arch/arm64/kvm/kvm-arm64.md
ARM64 Hyp (EL2)arch/arm64/kvm/hyp/, __hyp_, pkvm/hyp-arm64.md

Mandatory check

When the diff contains call_rcu(), synchronize_rcu(), or kfree_rcu(): IMMEDIATELY load references/subsystem/rcu.md and verify whether removal from data structures happens BEFORE or AFTER the call_rcu().

Optional

  • subjective-review.md, subjective general assessment, only when

explicitly requested.

Sourcing

Trigger table and all guides reproduced from masoncl/review-prompts (MIT, Chris Mason), as consumed by Sashiko (Apache-2.0).

All versions