# Config file for check_dmesg whitelists
# Each line should be a regex to exclude matches from dmesg output

^.*kvm \[[0-9]+\]: vcpu[0-9]+, guest rIP: 0x[0-9a-f]+ disabled perfctr wrmsr: 0x[0-9a-f]+ data 0x[0-9a-f]+.*$

# DRM things shouldn't pose problems on servers
^.*\[drm.drm_atomic_helper_wait_for_dependencies \[drm_kms_helper\]\] \*ERROR\* \[(PLANE|CRTC):[0-9]+:(crtc|plane)-[0-9]+\] flip_done timed out.*$

# https://bugzilla.kernel.org/show_bug.cgi?id=200145
^.*FS-Cache: Duplicate cookie detected.*$
^.*FS-Cache: (N|O)-cookie c=[0-9a-f]+ \[p=[0-9a-f]+ fl=[0-9] nc=[0-9] na=[0-9]\].*$
^.*FS-Cache: (N|O)-cookie d=[0-9a-f]+ n=[0-9a-f]+.*$

# https://bbs.archlinux.org/viewtopic.php?id=230777
^.*cgroup: cgroup2: unknown option "nsdelegate".*$

# https://www.amd.com/en/developer/sev.html
# https://forum.proxmox.com/threads/ccp-0000-04-00-2-sev-failed-to-init-error-0x8003.73855/
^.*firmware: failed to load amd/amd_sev[_a-z0-9]+.sbin \(-2\).*$
^.*firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware.*$
^.*SEV: failed to INIT error 0x13.*$

# https://unix.stackexchange.com/questions/596122/dmesg-assuming-drive-cache-write-through
^.*\[(s|v)d[a-z]\] Assuming drive cache: write through.*$

# Stack dumps with no context, the first line giving the reason for the dump should appear in the check
^.*\*\*\* (Guest|Host|Control) State \*\*\*.*$
^.*CR[0-9]:? *= *[0-9a-f]+ *CR[0-9] *= *[0-9a-f]+ *CR[0-9] *= *[0-9a-f]+.*$
^.*CR[0-9]:? *actual *= *0x[0-9a-f]+,? *shadow *= *0x[0-9a-f]+,? *gh_mask *= *[0-9a-f]+.*$
^.*CR[0-9]:? *= *0x[0-9a-f]+.*$
^.*CS:? *= *[0-9a-f]+ *SS *= *[0-9a-f]+ *DS *= *[0-9a-f]+ *ES *= *[0-9a-f]+ *FS *= *[0-9a-f]+ *GS *= *[0-9a-f]+ *TR *= *[0-9a-f]+.*$
^.*DebugCtl *= *0x[0-9a-f]+ *DebugExceptions *= *0x[0-9a-f]+.*$
^.*EFER *= *0x[0-9a-f]+ *PAT *= *0x[0-9a-f]+.*$
^.*EntryControls *= *[0-9a-f]+ *ExitControls *= *[0-9a-f]+.*$
^.*ExceptionBitmap *= *[0-9a-f]+ *PFECmask *= *[0-9a-f]+ *PFECmatch *= *[0-9a-f]+.*$
^.*FSBase *= *[0-9a-f]+ *GSBase *= *[0-9a-f]+ *TRBase *= *[0-9a-f]+.*$
^.*GDTBase *= *[0-9a-f]+ *IDTBase *= *[0-9a-f]+.*$
^.*IDTVectoring:? *info *= *[0-9a-f]+ *errcode *= *[0-9a-f]+.*$
^.*Interruptibility *= *[0-9a-f]+ *ActivityState *= *[0-9a-f]+.*$
^.*PinBased *= *[0-9a-f]+ *CPUBased *= *[0-9a-f]+ *SecondaryExec *= *[0-9a-f]+.*$
^.*PLE Gap *= *[0-9a-f]+ *Window *= *[0-9a-f]+.*$
^.*RFLAGS *= *0x[0-9a-f]+ *DR[0-9] *= *0x[0-9a-f]+.*$
^.*(RIP|RSP) *= *0x[0-9a-f]+ *(RIP|RSP) *= *0x[0-9a-f]+.*$
^.*reason *= *[0-9a-f]+ *qualification *= *[0-9a-f]+.*$
^.*Sysenter RSP *= *[0-9a-f]+ *CS: *RIP *= *[0-9a-f]+:?[0-9a-f]*.*$
^.*(CS|DS|ES|FS|GS|SS|TR|LDTR):? *sel *= *0x[0-9a-f]+,? *attr *= *0x[0-9a-f]+,? *limit *= *0x[0-9a-f]+,? *base *= *0x[0-9a-f]+.*$
^.*(GDTR|IDTR):? *limit *= *0x[0-9a-f]+,? *base *= *0x[0-9a-f]+.*$
^.*(BndCfgS|EPT pointer|InterruptStatus|PostedIntrVec|TPR Threshold|TSC Multiplier|TSC Offset|Virtual processor ID) *= *(0x)?[0-9a-f]+.*$
^.*(VMEntry|VMExit): *intr_info *= *[0-9a-f]+ *errcode *= *[0-9a-f]+ *ilen *= *[0-9a-f]+.*$
