diff --git a/anolis/Makefile b/anolis/Makefile index 069ceab2c498663811dbdfd4dbf9933a3f94aa5e..8c650c547ddd26062b923c7ce6bdf6888db921d7 100644 --- a/anolis/Makefile +++ b/anolis/Makefile @@ -26,6 +26,9 @@ dist-genrpmtree: dist-check dist-rpms: dist-genrpmtree dist-check sh buildpkg.sh +dist-configs-check: + sh configs/examination/configs-check.sh + clean: rm -rf $(DIST_OUTPUT) diff --git a/anolis/configs/examination/L0-MANDATORY/arm64.config b/anolis/configs/examination/L0-MANDATORY/arm64.config new file mode 100644 index 0000000000000000000000000000000000000000..eab0cbcff378ffbc44f7315ae83da1b65fb159ba --- /dev/null +++ b/anolis/configs/examination/L0-MANDATORY/arm64.config @@ -0,0 +1,394 @@ +# UNLIMITED CONFIG_LSM +CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CHOICE CONFIG_NODES_SHIFT 6/8/10 +# RANGE CONFIG_NR_CPUS 1024,8192 +CONFIG_64BIT=y +CONFIG_ACPI=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_AIO=y +CONFIG_ARCH_HISI=y +CONFIG_ARM64=y +CONFIG_ARM64_CNP=y +CONFIG_ARM64_E0PD=y +CONFIG_ARM64_EPAN=y +CONFIG_ARM64_HW_AFDBM=y +CONFIG_ARM64_PAN=y +CONFIG_ARM64_PSEUDO_NMI=y +CONFIG_ARM64_RAS_EXTN=y +CONFIG_ARM64_SME=y +CONFIG_ARM64_SVE=y +CONFIG_ARM_CCN=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_ARM_PMU=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y +CONFIG_ARM_SMMU_V3_PMU=m +CONFIG_ARM_SPE_PMU=m +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ATA=m +CONFIG_AUDIT=y +CONFIG_AUTOFS_FS=y +CONFIG_AUXILIARY_BUS=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_NVME=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLOCK=y +CONFIG_BONDING=m +CONFIG_BPF=y +CONFIG_BPF_JIT=y +CONFIG_BPF_SYSCALL=y +CONFIG_BRIDGE=m +CONFIG_BUG=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_BPF=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_SCHED=y +CONFIG_COMMON_CLK=y +CONFIG_COMPACTION=y +CONFIG_COREDUMP=y +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CPU_PM=y +CONFIG_CRASH_CORE=y +CONFIG_CRASH_DUMP=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SM2=y +CONFIG_CRYPTO_SM3=y +CONFIG_CRYPTO_SM3_GENERIC=y +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_DAX=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVMEM=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMADEVICES=y +CONFIG_DMA_ENGINE=y +CONFIG_DMI=y +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=m +CONFIG_DRM_HISI_HIBMC=m +CONFIG_DYNAMIC_FTRACE=y +CONFIG_EDAC=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_ELFCORE=y +CONFIG_ELF_CORE=y +CONFIG_EPOLL=y +CONFIG_EROFS_FS=m +CONFIG_ETHTOOL_NETLINK=y +CONFIG_EVENTFD=y +CONFIG_EVM=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_EFI=y +CONFIG_FHANDLE=y +CONFIG_FILE_LOCKING=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FREEZER=y +CONFIG_FSNOTIFY=y +CONFIG_FS_DAX=y +CONFIG_FTRACE=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUSE_FS=m +CONFIG_FUTEX=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_IPI=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GPIO_ACPI=y +CONFIG_GPIO_HISI=m +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HDMI=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HISILICON_LPC=y +CONFIG_HISI_PCIE_PMU=m +CONFIG_HISI_PMU=m +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HW_RANDOM=y +CONFIG_I2C=y +CONFIG_IMA=y +CONFIG_INET=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INFINIBAND=m +CONFIG_INPUT=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INTEGRITY=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOSCHED_BFQ=y +CONFIG_IO_URING=y +CONFIG_IPC_NS=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_SI=m +CONFIG_IPV6=y +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_ISO9660_FS=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KERNFS=y +CONFIG_KEXEC=y +CONFIG_KEXEC_CORE=y +CONFIG_KEXEC_FILE=y +CONFIG_KEYS=y +CONFIG_KPROBES=y +CONFIG_KRETPROBES=y +CONFIG_KVM=y +CONFIG_KVM_MMIO=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MD=y +CONFIG_MEMBARRIER=y +CONFIG_MEMCG=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MIGRATION=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MMU=y +CONFIG_MODULES=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MULTIUSER=y +CONFIG_NAMESPACES=y +CONFIG_NET=y +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETLINK_DIAG=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CORE=y +CONFIG_NET_NS=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TEAM=m +CONFIG_NFSD=m +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_V4=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_NAT=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_IPV6=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_UTF8=m +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NTFS3_FS=m +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +CONFIG_NVME_CORE=m +CONFIG_NVME_TARGET=m +CONFIG_OVERLAY_FS=m +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_PAGE_COUNTER=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PARAVIRT=y +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_EDR=y +CONFIG_PCI_ATS=y +CONFIG_PCI_HISI=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_IOV=y +CONFIG_PCI_MSI=y +CONFIG_PERF_EVENTS=y +CONFIG_PID_NS=y +CONFIG_PM=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +CONFIG_PSI=y +CONFIG_PSTORE=y +CONFIG_PVPANIC=y +CONFIG_QUOTA=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_RAS=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RELOCATABLE=y +CONFIG_RPS=y +CONFIG_RTC_CLASS=y +CONFIG_SATA_AHCI=m +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI=y +CONFIG_SCSI_HISI_SAS=m +CONFIG_SCSI_HISI_SAS_PCI=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIO=y +CONFIG_SHMEM=y +CONFIG_SIGNALFD=y +CONFIG_SLUB=y +CONFIG_SMC=m +CONFIG_SMP=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SPARSEMEM=y +CONFIG_SPI=y +CONFIG_SPI_HISI_KUNPENG=m +CONFIG_SQUASHFS=m +CONFIG_STACKPROTECTOR=y +CONFIG_STACKTRACE=y +CONFIG_SUNRPC=m +CONFIG_SWAP=y +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_TAP=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_CUBIC=y +CONFIG_THERMAL=y +CONFIG_THREAD_INFO_IN_TASK=y +CONFIG_TIMERFD=y +CONFIG_TLS=m +CONFIG_TMPFS=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACING=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TREE_RCU=y +CONFIG_TRUSTED_KEYS=y +CONFIG_TTY=y +CONFIG_TUN=m +CONFIG_UIO=m +CONFIG_UNIX=y +CONFIG_UPROBES=y +CONFIG_USB=y +CONFIG_USB_SUPPORT=y +CONFIG_USERFAULTFD=y +CONFIG_USER_NS=y +CONFIG_UTS_NS=y +CONFIG_VETH=m +CONFIG_VFAT_FS=m +CONFIG_VFIO=m +CONFIG_VFIO_PCI=m +CONFIG_VHOST=m +CONFIG_VHOST_NET=m +CONFIG_VHOST_VSOCK=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_FS=m +CONFIG_VIRTIO_MEM=m +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTUALIZATION=y +CONFIG_VLAN_8021Q=m +CONFIG_VMAP_STACK=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VSOCKETS=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXLAN=m +CONFIG_WATCHDOG=y +CONFIG_XDP_SOCKETS=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFS_FS=m +CONFIG_XPS=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA=y +CONFIG_ZRAM=m diff --git a/anolis/configs/examination/L0-MANDATORY/loongarch.config b/anolis/configs/examination/L0-MANDATORY/loongarch.config new file mode 100644 index 0000000000000000000000000000000000000000..7ffa35318f422e70eca00ecb94b7db2a5deebba5 --- /dev/null +++ b/anolis/configs/examination/L0-MANDATORY/loongarch.config @@ -0,0 +1,348 @@ +# UNLIMITED CONFIG_LSM +## CONFIG_NFS_FSCACHE=y +CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +CONFIG_NODES_SHIFT=6 +CONFIG_NR_CPUS=256 +CONFIG_64BIT=y +CONFIG_ACPI=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_AIO=y +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ATA=y +CONFIG_AUDIT=y +CONFIG_AUTOFS_FS=y +CONFIG_AUXILIARY_BUS=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_NVME=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLOCK=y +CONFIG_BONDING=m +CONFIG_BPF=y +CONFIG_BPF_JIT=y +CONFIG_BPF_SYSCALL=y +CONFIG_BRIDGE=m +CONFIG_BUG=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_BPF=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_SCHED=y +CONFIG_COMMON_CLK=y +CONFIG_COMPACTION=y +CONFIG_COREDUMP=y +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_PM=y +CONFIG_CRASH_CORE=y +CONFIG_CRASH_DUMP=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SM2=y +CONFIG_CRYPTO_SM3=y +CONFIG_CRYPTO_SM3_GENERIC=y +CONFIG_CRYPTO_SM4=y +CONFIG_CRYPTO_SM4_GENERIC=y +CONFIG_DAX=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVMEM=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMADEVICES=y +CONFIG_DMA_ENGINE=y +CONFIG_DMI=y +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=y +CONFIG_DYNAMIC_FTRACE=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_ELFCORE=y +CONFIG_ELF_CORE=y +CONFIG_EPOLL=y +CONFIG_EROFS_FS=m +CONFIG_ETHTOOL_NETLINK=y +CONFIG_EVENTFD=y +CONFIG_EVM=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_EFI=y +CONFIG_FHANDLE=y +CONFIG_FILE_LOCKING=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FREEZER=y +CONFIG_FSNOTIFY=y +CONFIG_FTRACE=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUSE_FS=m +CONFIG_FUTEX=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GPIO_ACPI=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HDMI=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HW_RANDOM=y +CONFIG_I2C=y +CONFIG_IMA=y +CONFIG_INET=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INFINIBAND=m +CONFIG_INPUT=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INTEGRITY=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOSCHED_BFQ=y +CONFIG_IO_URING=y +CONFIG_IPC_NS=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_SI=m +CONFIG_IPV6=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_ISO9660_FS=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KERNFS=y +CONFIG_KEXEC=y +CONFIG_KEXEC_CORE=y +CONFIG_KEYS=y +CONFIG_KPROBES=y +CONFIG_KRETPROBES=y +CONFIG_KVM=y +CONFIG_KVM_MMIO=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_LOONGARCH=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MD=y +CONFIG_MEMBARRIER=y +CONFIG_MEMCG=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MIGRATION=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MMU=y +CONFIG_MODULES=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MULTIUSER=y +CONFIG_NAMESPACES=y +CONFIG_NET=y +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETLINK_DIAG=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CORE=y +CONFIG_NET_NS=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TEAM=m +CONFIG_NFSD=y +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_NAT=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_IPV6=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_UTF8=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NTFS3_FS=m +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +CONFIG_NVME_CORE=m +CONFIG_NVME_TARGET=m +CONFIG_OVERLAY_FS=y +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_PAGE_COUNTER=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_ATS=y +CONFIG_PCI_IOV=y +CONFIG_PCI_MSI=y +CONFIG_PERF_EVENTS=y +CONFIG_PID_NS=y +CONFIG_PM=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +CONFIG_PSI=y +CONFIG_PSTORE=m +CONFIG_PVPANIC=y +CONFIG_QUOTA=y +CONFIG_RAS=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RELOCATABLE=y +CONFIG_RPS=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_SYSTOHC=y +CONFIG_SATA_AHCI=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIO=y +CONFIG_SHMEM=y +CONFIG_SIGNALFD=y +CONFIG_SLUB=y +CONFIG_SMC=m +CONFIG_SMP=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SPARSEMEM=y +CONFIG_SPI=y +CONFIG_SQUASHFS=m +CONFIG_STACKPROTECTOR=y +CONFIG_STACKTRACE=y +CONFIG_SUNRPC=y +CONFIG_SWAP=y +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_TAP=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_CUBIC=m +CONFIG_THERMAL=y +CONFIG_TIMERFD=y +CONFIG_TLS=m +CONFIG_TMPFS=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACING=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TREE_RCU=y +CONFIG_TRUSTED_KEYS=y +CONFIG_TTY=y +CONFIG_TUN=m +CONFIG_UIO=m +CONFIG_UNIX=y +CONFIG_UNWINDER_PROLOGUE=y +CONFIG_UPROBES=y +CONFIG_USB=y +CONFIG_USB_SUPPORT=y +CONFIG_USERFAULTFD=y +CONFIG_USER_NS=y +CONFIG_UTS_NS=y +CONFIG_VETH=m +CONFIG_VFAT_FS=m +CONFIG_VFIO=m +CONFIG_VFIO_PCI=m +CONFIG_VHOST=m +CONFIG_VHOST_NET=m +CONFIG_VHOST_VSOCK=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_FS=m +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTUALIZATION=y +CONFIG_VLAN_8021Q=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VSOCKETS=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXLAN=m +CONFIG_WATCHDOG=y +CONFIG_XDP_SOCKETS=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFS_FS=y +CONFIG_XPS=y +CONFIG_ZONE_DMA32=y +CONFIG_ZRAM=m diff --git a/anolis/configs/examination/L0-MANDATORY/sw_64.config b/anolis/configs/examination/L0-MANDATORY/sw_64.config new file mode 100644 index 0000000000000000000000000000000000000000..62c44debb1917be1c72ae63de623437f5911d179 --- /dev/null +++ b/anolis/configs/examination/L0-MANDATORY/sw_64.config @@ -0,0 +1,343 @@ +# UNLIMITED CONFIG_LSM +CONFIG_NODES_SHIFT=7 +CONFIG_NR_CPUS=512 +CONFIG SW64=y +CONFIG_64BIT=y +CONFIG_ACPI=y +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_AIO=y +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ATA=y +CONFIG_AUDIT=y +CONFIG_AUTOFS_FS=y +CONFIG_AUXILIARY_BUS=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_NVME=m +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLOCK=y +CONFIG_BONDING=m +CONFIG_BPF=y +CONFIG_BPF_JIT=y +CONFIG_BPF_SYSCALL=y +CONFIG_BRIDGE=m +CONFIG_BUG=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_BPF=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_SCHED=y +CONFIG_COMMON_CLK=y +CONFIG_COMPACTION=y +CONFIG_COREDUMP=y +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +CONFIG_CRASH_CORE=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SM2=y +CONFIG_CRYPTO_SM3=y +CONFIG_CRYPTO_SM3_GENERIC=y +CONFIG_CRYPTO_SM4=y +CONFIG_CRYPTO_SM4_GENERIC=y +CONFIG_DAX=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEEP_MEMCPY=y +CONFIG_DEEP_MEMSET=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVMEM=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMADEVICES=y +CONFIG_DMA_ENGINE=y +CONFIG_DMI=y +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=m +CONFIG_DYNAMIC_FTRACE=y +CONFIG_EFI=y +CONFIG_ELFCORE=y +CONFIG_ELF_CORE=y +CONFIG_EPOLL=y +CONFIG_EROFS_FS=m +CONFIG_ETHTOOL_NETLINK=y +CONFIG_EVENTFD=y +CONFIG_EVM=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_EFI=y +CONFIG_FHANDLE=y +CONFIG_FILE_LOCKING=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FREEZER=y +CONFIG_FSNOTIFY=y +CONFIG_FTRACE=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUSE_FS=m +CONFIG_FUTEX=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GPIO_ACPI=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HDMI=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HW_RANDOM=y +CONFIG_I2C=y +CONFIG_IMA=y +CONFIG_INET=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INFINIBAND=m +CONFIG_INPUT=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INTEGRITY=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOSCHED_BFQ=y +CONFIG_IO_URING=y +CONFIG_IPC_NS=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_SI=m +CONFIG_IPV6=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_ISO9660_FS=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KERNFS=y +CONFIG_KEXEC=y +CONFIG_KEXEC_CORE=y +CONFIG_KEYS=y +CONFIG_KPROBES=y +CONFIG_KRETPROBES=y +CONFIG_KVM=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_LOONGARCH=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MD=y +CONFIG_MEMBARRIER=y +CONFIG_MEMCG=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MIGRATION=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MMU=y +CONFIG_MODULES=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MULTIUSER=y +CONFIG_NAMESPACES=y +CONFIG_NET=y +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETLINK_DIAG=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CORE=y +CONFIG_NET_NS=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TEAM=m +CONFIG_NFSD=m +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_V4=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_NAT=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_IPV6=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_UTF8=m +CONFIG_NONCACHE_PAGE=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +CONFIG_NVME_CORE=y +CONFIG_NVME_TARGET=y +CONFIG_OVERLAY_FS=m +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_PAGE_COUNTER=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_EDR=y +CONFIG_PCI_ATS=y +CONFIG_PCI_IOV=y +CONFIG_PCI_MSI=y +CONFIG_PERF_EVENTS=y +CONFIG_PID_NS=y +CONFIG_PM=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +CONFIG_PSI=y +CONFIG_PSTORE=m +CONFIG_PVPANIC=y +CONFIG_QUOTA=y +CONFIG_RAS=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RELOCATABLE=y +CONFIG_RPS=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_SYSTOHC=y +CONFIG_SATA_AHCI=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIO=y +CONFIG_SHMEM=y +CONFIG_SIGNALFD=y +CONFIG_SLUB=y +CONFIG_SMC=m +CONFIG_SMP=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SPARSEMEM=y +CONFIG_SPI=y +CONFIG_SQUASHFS=m +CONFIG_STACKTRACE=y +CONFIG_SUNRPC=m +CONFIG_SW64_CHIP3=y +CONFIG_SW64_CPUAUTOPLUG=y +CONFIG_SW64_CPUFREQ=y +CONFIG_SWAP=y +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_TAP=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_CUBIC=m +CONFIG_THERMAL=y +CONFIG_TIMERFD=y +CONFIG_TLS=m +CONFIG_TMPFS=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACING=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TREE_RCU=y +CONFIG_TRUSTED_KEYS=y +CONFIG_TTY=y +CONFIG_TUN=y +CONFIG_UIO=m +CONFIG_UNIX=y +CONFIG_UPROBES=y +CONFIG_USB=y +CONFIG_USB_SUPPORT=y +CONFIG_USERFAULTFD=y +CONFIG_USER_NS=y +CONFIG_UTS_NS=y +CONFIG_VETH=m +CONFIG_VFAT_FS=m +CONFIG_VFIO=m +CONFIG_VFIO_PCI=m +CONFIG_VHOST=m +CONFIG_VHOST_NET=m +CONFIG_VHOST_VSOCK=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_FS=m +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTUALIZATION=y +CONFIG_VLAN_8021Q=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VSOCKETS=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXLAN=m +CONFIG_WATCHDOG=y +CONFIG_XDP_SOCKETS=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFS_FS=y +CONFIG_XPS=y +CONFIG_ZONE_DMA32=y +CONFIG_ZRAM=m diff --git a/anolis/configs/examination/L0-MANDATORY/x86.config b/anolis/configs/examination/L0-MANDATORY/x86.config new file mode 100644 index 0000000000000000000000000000000000000000..2025290f65494a4746bbb742540f40beb715589c --- /dev/null +++ b/anolis/configs/examination/L0-MANDATORY/x86.config @@ -0,0 +1,397 @@ +# UNLIMITED CONFIG_LSM +CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CHOICE CONFIG_NODES_SHIFT 6/8/10 +# RANGE CONFIG_NR_CPUS 1024,8192 + +## CONFIG_SPECULATION_MITIGATIONS has been renamed to CONFIG_CPU_MITIGATIONS on linux stable linux-6.6.y, +## so make these two configs exclusive. +# EXCLUSIVE y CONFIG_SPECULATION_MITIGATIONS CONFIG_CPU_MITIGATIONS + +CONFIG_64BIT=y +CONFIG_ACPI=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_AIO=y +CONFIG_AMD_MEM_ENCRYPT=y +CONFIG_ARCH_CPUIDLE_HALTPOLL=y +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ATA=m +CONFIG_AUDIT=y +CONFIG_AUTOFS_FS=y +CONFIG_AUXILIARY_BUS=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_NVME=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLOCK=y +CONFIG_BONDING=m +CONFIG_BPF=y +CONFIG_BPF_JIT=y +CONFIG_BPF_SYSCALL=y +CONFIG_BRIDGE=m +CONFIG_BUG=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_BPF=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_SCHED=y +CONFIG_COMMON_CLK=y +CONFIG_COMPACTION=y +CONFIG_COREDUMP=y +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_HYGON=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_ZHAOXIN=y +CONFIG_CRASH_CORE=y +CONFIG_CRASH_DUMP=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SIMD=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SM2=y +CONFIG_CRYPTO_SM3=y +CONFIG_CRYPTO_SM3_GENERIC=y +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_DAX=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVMEM=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMADEVICES=y +CONFIG_DMA_ENGINE=y +CONFIG_DMI=y +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=m +CONFIG_DYNAMIC_FTRACE=y +CONFIG_EDAC=y +CONFIG_EFI=y +CONFIG_EFI_STUB=y +CONFIG_ELFCORE=y +CONFIG_ELF_CORE=y +CONFIG_EPOLL=y +CONFIG_EROFS_FS=m +CONFIG_ETHTOOL_NETLINK=y +CONFIG_EVENTFD=y +CONFIG_EVM=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_EFI=y +CONFIG_FHANDLE=y +CONFIG_FILE_LOCKING=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FREEZER=y +CONFIG_FSNOTIFY=y +CONFIG_FS_DAX=y +CONFIG_FTRACE=y +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUSE_FS=m +CONFIG_FUTEX=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GPIO_ACPI=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HDMI=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HPET_TIMER=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HWMON=y +CONFIG_HW_RANDOM=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_I2C=y +CONFIG_IA32_FEAT_CTL=y +CONFIG_IMA=y +CONFIG_INET=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INFINIBAND=m +CONFIG_INPUT=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_INTEGRITY=y +CONFIG_INTEL_IOMMU=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOSCHED_BFQ=y +CONFIG_IO_URING=y +CONFIG_IPC_NS=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_SI=m +CONFIG_IPV6=y +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_IRQ_REMAP=y +CONFIG_ISO9660_FS=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KERNFS=y +CONFIG_KEXEC=y +CONFIG_KEXEC_CORE=y +CONFIG_KEXEC_FILE=y +CONFIG_KEYS=y +CONFIG_KPROBES=y +CONFIG_KRETPROBES=y +CONFIG_KVM=m +CONFIG_KVM_AMD=m +CONFIG_KVM_GUEST=y +CONFIG_KVM_INTEL=m +CONFIG_KVM_MMIO=y +CONFIG_LIVEPATCH=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MD=y +CONFIG_MEMBARRIER=y +CONFIG_MEMCG=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MICROCODE=y +CONFIG_MIGRATION=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MMU=y +CONFIG_MODULES=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MULTIUSER=y +CONFIG_NAMESPACES=y +CONFIG_NET=y +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETLINK_DIAG=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CORE=y +CONFIG_NET_NS=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_TEAM=m +CONFIG_NFSD=m +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_V4=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_NAT=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_IPV6=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_UTF8=m +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NTFS3_FS=m +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +CONFIG_NVME_CORE=m +CONFIG_NVME_TARGET=m +CONFIG_OVERLAY_FS=m +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_PAGE_COUNTER=y +CONFIG_PANIC_ON_OOPS=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_CLOCK=y +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_EDR=y +CONFIG_PCI_ATS=y +CONFIG_PCI_IOV=y +CONFIG_PCI_MSI=y +CONFIG_PERF_EVENTS=y +CONFIG_PID_NS=y +CONFIG_PM=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +CONFIG_PSI=y +CONFIG_PSTORE=y +CONFIG_PVPANIC=y +CONFIG_QUOTA=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_RAS=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RELOCATABLE=y +CONFIG_RPS=y +CONFIG_RTC_CLASS=y +CONFIG_SATA_AHCI=m +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIO=y +CONFIG_SHMEM=y +CONFIG_SIGNALFD=y +CONFIG_SLUB=y +CONFIG_SMC=m +CONFIG_SMP=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SPARSEMEM=y +CONFIG_SPI=y +CONFIG_SQUASHFS=m +CONFIG_STACKPROTECTOR=y +CONFIG_STACKTRACE=y +CONFIG_SUNRPC=m +CONFIG_SWAP=y +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_TAP=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_CUBIC=y +CONFIG_THERMAL=y +CONFIG_THREAD_INFO_IN_TASK=y +CONFIG_TIMERFD=y +CONFIG_TLS=m +CONFIG_TMPFS=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACING=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TREE_RCU=y +CONFIG_TRUSTED_KEYS=y +CONFIG_TTY=y +CONFIG_TUN=m +CONFIG_UIO=m +CONFIG_UNIX=y +CONFIG_UPROBES=y +CONFIG_USB=y +CONFIG_USB_SUPPORT=y +CONFIG_USERFAULTFD=y +CONFIG_USER_NS=y +CONFIG_UTS_NS=y +CONFIG_VETH=m +CONFIG_VFAT_FS=m +CONFIG_VFIO=m +CONFIG_VFIO_PCI=m +CONFIG_VGA_CONSOLE=y +CONFIG_VHOST=m +CONFIG_VHOST_NET=m +CONFIG_VHOST_VSOCK=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_FS=m +CONFIG_VIRTIO_MEM=m +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTUALIZATION=y +CONFIG_VLAN_8021Q=m +CONFIG_VMAP_STACK=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VSOCKETS=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXLAN=m +CONFIG_WATCHDOG=y +CONFIG_X86=y +CONFIG_X86_64=y +CONFIG_X86_64_SMP=y +CONFIG_X86_CPUID=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MSR=y +CONFIG_X86_SGX=y +CONFIG_X86_TSC=y +CONFIG_X86_X2APIC=y +CONFIG_XDP_SOCKETS=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFS_FS=m +CONFIG_XPS=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA=y +CONFIG_ZRAM=m diff --git a/anolis/configs/examination/L1-RECOMMEND/arm64.config b/anolis/configs/examination/L1-RECOMMEND/arm64.config new file mode 100644 index 0000000000000000000000000000000000000000..7146c58229ef01bb55ff6f706a3e4f3b1cd8fc6d --- /dev/null +++ b/anolis/configs/examination/L1-RECOMMEND/arm64.config @@ -0,0 +1,139 @@ +# UNLIMITED CONFIG_BUILD_SALT +# CHOICE CONFIG_HZ 100/250/1000 +# CONFIG_ARM64_64K_PAGES is not set +# EXCLUSIVE y CONFIG_ARM64_4K_PAGES CONFIG_ARM64_64K_PAGES +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_LOG_BUF_SHIFT=20 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PGTABLE_LEVELS=4 +# UNLIMITED CONFIG_SYSTEM_TRUSTED_KEYS +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_SEA=y +CONFIG_ACPI_CPPC_CPUFREQ=m +CONFIG_ACPI_HMAT=y +CONFIG_ARCH_PHYTIUM=y +CONFIG_ARM64_AMU_EXTN=y +CONFIG_ARM64_LSE_ATOMICS=y +CONFIG_ARM64_PA_BITS_48=y +CONFIG_ARM64_PMEM=y +CONFIG_ARM64_VA_BITS_48=y +CONFIG_ARM_GIC_PHYTIUM_2500=y +CONFIG_ARM_SMMU_V3_PMU=m +CONFIG_ARM_SMMU_V3_SVA=y +CONFIG_BASE_FULL=y +CONFIG_BLK_PM=y +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BNXT=m +CONFIG_BTRFS_FS=m +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_CHELSIO_T4=m +CONFIG_CIFS=m +CONFIG_CONFIGFS_FS=y +CONFIG_CORESIGHT=m +CONFIG_CRC16=y +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_DEV_HISI_HPRE=m +CONFIG_CRYPTO_DEV_HISI_QM=m +CONFIG_CRYPTO_DEV_HISI_SEC2=m +CONFIG_CRYPTO_DEV_HISI_SEC=m +CONFIG_CRYPTO_DEV_HISI_TRNG=m +CONFIG_CRYPTO_DEV_HISI_ZIP=m +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_SM3_ARM64_CE=m +CONFIG_CUSE=m +CONFIG_CXL_BUS=m +CONFIG_CXL_PCI=m +CONFIG_DAMON=y +CONFIG_DRM=m +CONFIG_DRM_PHYTIUM=m +CONFIG_E1000=m +CONFIG_EXT3_FS=m +CONFIG_EXT4_FS=m +CONFIG_FCOE=m +CONFIG_FSCACHE=m +CONFIG_GENERIC_PHY=y +CONFIG_HINIC=m +CONFIG_HISI_THERMAL=m +CONFIG_HNS3=m +CONFIG_HNS=m +CONFIG_I2C_HISI=m +CONFIG_I40E=m +CONFIG_I40EVF=m +CONFIG_ICE=m +CONFIG_IGB=m +CONFIG_INET_MPTCP_DIAG=m +CONFIG_INFINIBAND_HNS=m +CONFIG_INFINIBAND_HNS_HIP08=y +CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_RR=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_JBD2=m +CONFIG_KSM=y +CONFIG_KUNPENG_HCCS=m +CONFIG_LIVEPATCH=y +CONFIG_MACVLAN=m +CONFIG_MEGARAID_SAS=m +CONFIG_MEMCG_KMEM=y +CONFIG_MLX4_CORE=m +CONFIG_MLX4_EN=m +CONFIG_MLX5_CORE=m +CONFIG_MLX5_CORE_EN=y +CONFIG_MPTCP=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_MTD=m +CONFIG_NETFILTER_XTABLES=y +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NFSD_V3_ACL=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_V3=m +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_NGBE=m +CONFIG_NO_HZ_FULL=y +CONFIG_NTB=m +CONFIG_NVME_FABRICS=m +CONFIG_NVME_RDMA=m +CONFIG_NVME_TCP=m +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROFILING=y +CONFIG_RATIONAL=y +CONFIG_RESET_HISI=y +CONFIG_RSEQ=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_SYSTOHC=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_CLUSTER=y +CONFIG_SCSI_HISI_SAS=m +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPT3SAS=m +CONFIG_SECURITY_INFINIBAND=y +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPI_HISI_SFC_V3XX=m +CONFIG_SPI_MASTER=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_TASKSTATS=y +CONFIG_TCP_CONG_BBR=m +CONFIG_TXGBE=m +CONFIG_UACCE=m +CONFIG_USB_ACM=m +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_STORAGE=m +CONFIG_USB_XHCI_HCD=y +CONFIG_VFIO_PLATFORM=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_ZSMALLOC=y diff --git a/anolis/configs/examination/L1-RECOMMEND/loongarch.config b/anolis/configs/examination/L1-RECOMMEND/loongarch.config new file mode 100644 index 0000000000000000000000000000000000000000..d842bed7dca53a1ced6e951760460e6b91eba841 --- /dev/null +++ b/anolis/configs/examination/L1-RECOMMEND/loongarch.config @@ -0,0 +1,103 @@ +CONFIG_ARCH_FORCE_MAX_ORDER=11 +# UNLIMITED CONFIG_BUILD_SALT +# UNLIMITED CONFIG_EXT3_FS +CONFIG_HZ=250 +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PGTABLE_LEVELS=3 +# UNLIMITED CONFIG_RANDOMIZE_BASE +# UNLIMITED CONFIG_SYSTEM_TRUSTED_KEYS +# EXCLUSIVE y CONFIG_16KB_2LEVEL CONFIG_16KB_3LEVEL CONFIG_4KB_3LEVEL CONFIG_4KB_4LEVEL CONFIG_64KB_2LEVEL CONFIG_64KB_3LEVEL +CONFIG_ARCH_IOREMAP=y +CONFIG_ARCH_STRICT_ALIGN=y +CONFIG_ARCH_WRITECOMBINE=y +CONFIG_BASE_FULL=y +CONFIG_BLK_PM=y +CONFIG_BNX2=y +CONFIG_BNX2X=m +CONFIG_BNXT=m +CONFIG_BTRFS_FS=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_CHELSIO_T4=m +CONFIG_CIFS=m +CONFIG_CONFIGFS_FS=y +CONFIG_CPU_HAS_LASX=y +CONFIG_CPU_HAS_LBT=y +CONFIG_CPU_HAS_LSX=y +CONFIG_CRC16=y +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_CRC32_LOONGARCH=m +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_LZO=m +CONFIG_CUSE=m +CONFIG_DRM=y +CONFIG_DRM_LOONGSON=y +CONFIG_DWMAC_LOONGSON=m +CONFIG_E1000=m +CONFIG_EXT4_FS=y +CONFIG_FB_LS2K500=m +CONFIG_FCOE=m +CONFIG_FSCACHE=m +CONFIG_GPIO_LOONGSON_64BIT=y +CONFIG_I2C_LS2X=m +CONFIG_I40E=m +CONFIG_I40EVF=m +CONFIG_ICE=m +CONFIG_IGB=m +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_RR=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_JBD2=y +CONFIG_KSM=y +CONFIG_LIVEPATCH=y +CONFIG_MACVLAN=m +CONFIG_MEGARAID_SAS=m +CONFIG_MEMCG_KMEM=y +CONFIG_MLX4_CORE=m +CONFIG_MLX4_EN=m +CONFIG_MLX5_CORE=m +CONFIG_MLX5_CORE_EN=y +CONFIG_MPTCP=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_MTD=m +CONFIG_NETFILTER_XTABLES=y +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NFSD_V3_ACL=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_V3=m +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_NGBE=m +CONFIG_NVME_FABRICS=m +CONFIG_NVME_RDMA=m +CONFIG_NVME_TCP=m +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROFILING=y +CONFIG_RATIONAL=y +CONFIG_RSEQ=y +CONFIG_RTC_DRV_LOONGSON=y +CONFIG_RTC_INTF_DEV=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPT3SAS=y +CONFIG_SECURITY_INFINIBAND=y +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPI_LOONGSON_PCI=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_TASKSTATS=y +CONFIG_TCP_CONG_BBR=m +CONFIG_TXGBE=m +CONFIG_USB_ACM=m +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_STORAGE=m +CONFIG_USB_XHCI_HCD=y +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=m +CONFIG_ZSMALLOC=y diff --git a/anolis/configs/examination/L1-RECOMMEND/sw_64.config b/anolis/configs/examination/L1-RECOMMEND/sw_64.config new file mode 100644 index 0000000000000000000000000000000000000000..09b5b503d843f654704743de37f4080c4ac86064 --- /dev/null +++ b/anolis/configs/examination/L1-RECOMMEND/sw_64.config @@ -0,0 +1,86 @@ +# UNLIMITED CONFIG_BUILD_SALT +CONFIG_HZ=250 +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PGTABLE_LEVELS=4 +# UNLIMITED CONFIG_RANDOMIZE_BASE +# UNLIMITED CONFIG_SYSTEM_TRUSTED_KEYS +CONFIG_BASE_FULL=y +CONFIG_BLK_PM=y +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BNXT=m +CONFIG_BTRFS_FS=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_CHELSIO_T4=m +CONFIG_CIFS=m +CONFIG_CONFIGFS_FS=y +CONFIG_CRC16=y +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_LZO=m +CONFIG_CUSE=m +CONFIG_DRM=y +CONFIG_E1000=m +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS=y +CONFIG_FCOE=m +CONFIG_FSCACHE=m +CONFIG_I40E=m +CONFIG_I40EVF=m +CONFIG_ICE=m +CONFIG_IGB=m +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_RR=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_JBD2=y +CONFIG_KSM=y +CONFIG_LIVEPATCH=y +CONFIG_MACVLAN=m +CONFIG_MEGARAID_SAS=m +CONFIG_MEMCG_KMEM=y +CONFIG_MLX4_CORE=m +CONFIG_MLX4_EN=m +CONFIG_MLX5_CORE=m +CONFIG_MLX5_CORE_EN=y +CONFIG_MPTCP=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_MTD=m +CONFIG_NETFILTER_XTABLES=y +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NFSD_V3_ACL=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_V3=m +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_NGBE=m +CONFIG_NVME_FABRICS=m +CONFIG_NVME_RDMA=m +CONFIG_NVME_TCP=m +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROFILING=y +CONFIG_RATIONAL=y +CONFIG_RSEQ=y +CONFIG_RTC_INTF_DEV=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPT3SAS=m +CONFIG_SECURITY_INFINIBAND=y +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_TASKSTATS=y +CONFIG_TCP_CONG_BBR=m +CONFIG_TXGBE=m +CONFIG_USB_ACM=m +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_STORAGE=y +CONFIG_USB_XHCI_HCD=y +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_MMIO=y +CONFIG_ZSMALLOC=y diff --git a/anolis/configs/examination/L1-RECOMMEND/x86.config b/anolis/configs/examination/L1-RECOMMEND/x86.config new file mode 100644 index 0000000000000000000000000000000000000000..1bfc8b392b014e986eba7279cf418f402be58e61 --- /dev/null +++ b/anolis/configs/examination/L1-RECOMMEND/x86.config @@ -0,0 +1,139 @@ +# UNLIMITED CONFIG_BUILD_SALT +# CHOICE CONFIG_HZ 100/250/1000 +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_LOG_BUF_SHIFT=20 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_PGTABLE_LEVELS=5 +# UNLIMITED CONFIG_SYSTEM_TRUSTED_KEYS +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_HMAT=y +CONFIG_BASE_FULL=y +CONFIG_BLK_PM=y +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BNXT=m +CONFIG_BTRFS_FS=m +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_CHELSIO_T4=m +CONFIG_CIFS=m +CONFIG_COMPAT=y +CONFIG_CONFIGFS_FS=y +CONFIG_CRC16=y +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_DEV_CCP=y +CONFIG_CRYPTO_DEV_ZHAOXIN=m +CONFIG_CRYPTO_DEV_ZHAOXIN_AES=m +CONFIG_CRYPTO_DEV_ZHAOXIN_SHA=m +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_SM3_AVX_X86_64=m +CONFIG_CRYPTO_SM3_ZHAOXIN_GMI=m +CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_SM4_ZHAOXIN_GMI=m +CONFIG_CUSE=m +CONFIG_CXL_BUS=m +CONFIG_CXL_PCI=m +CONFIG_DAMON=y +CONFIG_DRM=m +CONFIG_E1000=m +CONFIG_EXT3_FS=m +CONFIG_EXT4_FS=m +CONFIG_FCOE=m +CONFIG_FSCACHE=m +CONFIG_HINIC=m +CONFIG_HW_RANDOM_ZHAOXIN=m +CONFIG_I2C_ZHAOXIN=m +CONFIG_I40E=m +CONFIG_I40EVF=m +CONFIG_ICE=m +CONFIG_IGB=m +CONFIG_INET_MPTCP_DIAG=m +CONFIG_INTEL_IDLE=y +CONFIG_INTEL_IDXD_BUS=m +CONFIG_INTEL_IFS=m +CONFIG_INTEL_PMC_CORE=m +CONFIG_INTEL_PMT_CLASS=m +CONFIG_INTEL_TPMI=m +CONFIG_IO_STRICT_DEVMEM=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_RR=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_JBD2=m +CONFIG_KSM=y +CONFIG_MACVLAN=m +CONFIG_MEGARAID_SAS=m +CONFIG_MEMCG_KMEM=y +CONFIG_MLX4_CORE=m +CONFIG_MLX4_EN=m +CONFIG_MLX5_CORE=m +CONFIG_MLX5_CORE_EN=y +CONFIG_MPTCP=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_MTD=m +CONFIG_NETFILTER_XTABLES=y +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NFSD_V3_ACL=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_V3=m +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_NGBE=m +CONFIG_NO_HZ_FULL=y +CONFIG_NTB=m +CONFIG_NVME_FABRICS=m +CONFIG_NVME_RDMA=m +CONFIG_NVME_TCP=m +CONFIG_PARAVIRT_SPINLOCKS=y +CONFIG_PINCTRL_KX7000=m +CONFIG_PINCTRL_ZHAOXIN=m +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROFILING=y +CONFIG_RATIONAL=y +CONFIG_RSEQ=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_SYSTOHC=y +CONFIG_SATA_ZHAOXIN=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPT3SAS=m +CONFIG_SECURITY_INFINIBAND=y +CONFIG_SECURITY_NETWORK_XFRM=y +CONFIG_SENSORS_ZHAOXIN_CPUTEMP=m +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_TASKSTATS=y +CONFIG_TCP_CONG_BBR=m +CONFIG_TXGBE=m +CONFIG_UACCE=m +CONFIG_UNWINDER_ORC=y +CONFIG_USB_ACM=m +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_STORAGE=m +CONFIG_USB_XHCI_HCD=y +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VFIO_MDEV=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_X86_CMOV=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_DIRECT_GBPAGES=y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_IOPL_IOPERM=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_ZSMALLOC=y diff --git a/anolis/configs/examination/README.md b/anolis/configs/examination/README.md new file mode 100644 index 0000000000000000000000000000000000000000..78480608a03ffc78be51d7251cbc87a99eaefe93 --- /dev/null +++ b/anolis/configs/examination/README.md @@ -0,0 +1,33 @@ +# 背景 +本文档用于存放 kconfig 的检查规则,以便检查 kconfig 的是否有违背规则。 + +# 目录组织 +- L0-MANDATORY/,用于存放**必须**遵守的 kconfig 规则,如果违反则视为失败 +- L1-RECOMMEND/,用于存放**推荐**遵守的 kconfig 规则,如果违反则会告警 +- {L0-MANDATORY, L1-RECOMMEND}/{x86/arm64/loongarch/sw_64}.config,对应 x86、arm64、龙芯、申威平台的 kconfig 规则 + +# 规则文件说明 +文件的每一行存放一个规则,具体如下: +1. `CONFIG_FOO=value` +CONFIG_FOO 必须出现在 config 文件中,且值必须为 value + +2. `# CONFIG_FOO is not set` +CONFIG_FOO 必须出现在 config 文件中,其值必须为 not set + +3. `# UNLIMITED CONFIG_FOO` +对 CONFIG_FOO 不做要求 + +4. `# CHOICE CONFIG_FOO a/b/c` +CONFIG_FOO 必须出现在 config 文件中,值必须在 a/b/c 中选择一个 + +5. `# RANGE CONFIG_FOO a,b` +CONFIG_FOO 必须出现在 config 文件中,值为整型,且必须在 [a, b] 这个范围内 + +6. `# EXCLUSIVE value CONFIG_FOO1 [CONFIG_FOO2 ...]` +CONFIG_FOO1, CONFIG_FOO2 等列表中,有且只有一个能出现在 config 文件中,且值必须为 value + +7. `## xxxx` +此行为注释 + +# 使用方式 +在 clone 该仓库后,执行 `cd anolis; make dist-configs-check` 命令即可。 diff --git a/anolis/configs/examination/anolis_kconfig_check.py b/anolis/configs/examination/anolis_kconfig_check.py new file mode 100644 index 0000000000000000000000000000000000000000..de85fc6592870c86c01ce39c8d8dd2fcdfffdcdf --- /dev/null +++ b/anolis/configs/examination/anolis_kconfig_check.py @@ -0,0 +1,337 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: GPL-2.0 +# +# The core script for ANCK kconfig checking. +# It is not recommended to call directly. +# +# Copyright (C) 2024 Qiao Ma + +import argparse, re +from typing import List, Type, Dict, Tuple +from enum import Enum + +def die(args: str): + print(args) + exit(1) + +def default_args_func(args): + pass + +class Config(): + name: str + value: str + + def __init__(self, name, value) -> None: + self.name = name + self.value = value + + @staticmethod + def from_text(line: str) -> Type["Config"] : + RE_CONFIG_SET = r'^(CONFIG_\w+)=(.*)$' + RE_CONFIG_NOT_SET = r'^# (CONFIG_\w+) is not set$' + + if re.match(RE_CONFIG_SET, line): + obj = re.match(RE_CONFIG_SET, line) + return Config(name=obj.group(1), value=obj.group(2)) + elif re.match(RE_CONFIG_NOT_SET, line): + obj = re.match(RE_CONFIG_NOT_SET, line) + return Config(name=obj.group(1), value="n") + return None + +class ConfigList(): + configs: Dict[str, Config] + + def __init__(self) -> None: + self.configs = {} + + @staticmethod + def from_file(file: str) -> Type["ConfigList"]: + confs = ConfigList() + with open(file) as f: + for line in f.readlines(): + conf = Config.from_text(line) + if conf is None: + continue + confs.configs[conf.name] = conf + return confs + + def get(self, name) -> Type["Config"]: + return self.configs.get(name, None) + +ResultKind = Enum("ResultKind", ("SUCCESS", "MISS", "WRONG_VALUE", "NOT_IN_CHOICE", "NOT_IN_RANGE", "EXCLUSIVE_ERROR")) +RuleLevel = Enum("RuleLevel", ("L0_MANDATORY", "L1_RECOMMEND")) + +class CheckResult(): + name: str + kind: ResultKind + level: RuleLevel + value: str + + def __init__(self, level: RuleLevel, kind: ResultKind, name: str, text: str) -> None: + self.level = level + self.kind = kind + self.name = name + self.text = text + + def is_fatal_error(self): + return self.kind != ResultKind.SUCCESS and self.level == RuleLevel.L0_MANDATORY + + def __str__(self) -> str: + if self.kind == ResultKind.SUCCESS: + return "" + if self.level == RuleLevel.L0_MANDATORY: + return f"ERROR: {self.text}\n" + return f"WARNING: {self.text}\n" + + @staticmethod + def success(): + return CheckResult(RuleLevel.L0_MANDATORY, ResultKind.SUCCESS, "", "") + + @staticmethod + def miss(level: RuleLevel, name: str): + return CheckResult(level, ResultKind.MISS, name, f"missed: {name}") + + @staticmethod + def group_miss(level: RuleLevel, confs: List[str]): + conf_list = " ".join(confs) + return CheckResult(level, ResultKind.MISS, "", f"missed: none of follow configs exist {conf_list}") + + @staticmethod + def wrong_value(level: RuleLevel, name: str, expected: str, real: str): + return CheckResult(level, ResultKind.WRONG_VALUE, name, + f"wrong_value: {name}, expected: {expected}, real: {real}") + + @staticmethod + def not_in_choice(level: RuleLevel, name: str, real_value: str, values: List[str]): + str_values = ",".join(values) + return CheckResult(level, ResultKind.NOT_IN_CHOICE, name, + f"not_in_choice: {name} {real_value} not in [{str_values}]") + + @staticmethod + def not_in_range(level: RuleLevel, name: str, real_value: int, start: int, end: int): + return CheckResult(level, ResultKind.NOT_IN_RANGE, name, f"not_in_range: {name} {real_value} not in range [{start}, {end}]") + + @staticmethod + def exlusive_error(level: RuleLevel, confs: List[str]): + str_confs = ",".join(confs) + return CheckResult(level, ResultKind.EXCLUSIVE_ERROR, "", f"exclusive error: expected only one appears, but follow configs appears: {str_confs}") + +class Rule(): + subclasses = [] + + def __init_subclass__(cls, **kwargs): + super().__init_subclass__(**kwargs) + Rule.subclasses.append(cls) + + @staticmethod + def try_parse(line: str, level: RuleLevel): + raise NotImplementedError + + def check(self, line: str, level: RuleLevel): + raise NotImplementedError + + @staticmethod + def parse(line: str, level: RuleLevel): + for subclass in Rule.subclasses: + result = subclass.try_parse(line, level) + if result is not None: + return result + die(f"cannot parse : {line}") + +class RuleList(): + rules: List[Rule] + + def __init__(self): + self.rules = [] + + @staticmethod + def from_file(path: str, level: RuleLevel) -> Type["RuleList"]: + rl = RuleList() + with open(path) as f: + for line in f.readlines(): + line = line.strip() + if line == "" or line.startswith("##"): + continue + rule = Rule.parse(line, level) + rl.rules.append(rule) + return rl + + def check(self, confs: ConfigList) -> List[CheckResult]: + results : List[CheckResult] = [] + for rule in self.rules: + res = rule.check(confs) + results.append(res) + return results + + def merge(self, rhs: ConfigList): + self.rules.extend(rhs.rules) + +class ValueRule(Rule): + conf: Config + level: RuleLevel + + @staticmethod + def try_parse(line: str, level: RuleLevel): + rule = ValueRule() + conf = Config.from_text(line) + if conf is None: + return None + rule.conf = conf + rule.level = level + return rule + + def check(self, confs: ConfigList): + name = self.conf.name + conf = confs.get(name) + if conf is None: + return CheckResult.miss(self.level, self.conf.name) + if conf.value != self.conf.value: + return CheckResult.wrong_value(self.level, name, self.conf.value, conf.value) + return CheckResult.success() + +class UnlimitedRule(Rule): + @staticmethod + def try_parse(line: str, level: RuleLevel): + RE_CONF_UNLIMITED = r'^# UNLIMITED CONFIG_\w+$' + if not re.match(RE_CONF_UNLIMITED, line): + return None + return UnlimitedRule() + + def check(self, confs: ConfigList): + return CheckResult.success() + +class ChoiceRule(Rule): + name: str + values: List[str] + + def __init__(self, level, name, values) -> None: + self.level = level + self.name = name + self.values = values + + @staticmethod + def try_parse(line: str, level: RuleLevel): + RE_CONF_CHOICE = r'^#\s*CHOICE\s+(CONFIG_\w+)\s+([\w,\/]+)$' + obj = re.match(RE_CONF_CHOICE, line) + if obj is None: + return None + name = obj.group(1) + values = obj.group(2) + return ChoiceRule(level, name, values.split("/")) + + def check(self, confs: ConfigList): + conf = confs.get(self.name) + if conf is None: + return CheckResult.miss(self.level, self.name) + if conf.value not in self.values: + return CheckResult.not_in_choice(self.level, self.name, conf.value, self.values) + return CheckResult.success() + +class RangeRule(Rule): + level: RuleLevel + name: str + start: int + end: int + + def __init__(self, level: RuleLevel, name: str, start: int, end: int) -> None: + self.level = level + self.name = name + self.start = start + self.end = end + + @staticmethod + def try_parse(line: str, level: RuleLevel): + RE_CONF_RANGE = r'^#\s*RANGE\s+(CONFIG_\w+)\s+(\d+)\,(\d+)$' + obj = re.match(RE_CONF_RANGE, line) + if obj is None: + return None + return RangeRule(level, obj.group(1), int(obj.group(2)), int(obj.group(3))) + + def check(self, confs: ConfigList): + conf = confs.get(self.name) + if conf is None: + return CheckResult.miss(self.level, self.name) + val = int(conf.value) + if val <= self.end and val >= self.start: + return CheckResult.success() + return CheckResult.not_in_range(self.level, self.name, val, self.start, self.end) + +class ExclusiveRule(Rule): + level: RuleLevel + value: str + confs: List[str] + + def __init__(self, level: RuleLevel, value: str, confs: List[str]) -> None: + self.level = level + self.value = value + self.confs = confs + + @staticmethod + def try_parse(line: str, level: RuleLevel): + """# EXCLUSIVE value CONFIG_XXX [CONFIG_XXX ...]""" + RE_CONF_RANGE = r'^#\s*EXCLUSIVE\s+(\w+)\s+(.*)$' + obj = re.match(RE_CONF_RANGE, line) + if obj is None: + return None + value = obj.group(1) + confs = obj.group(2).split() + if len(confs) == 0: + return None + return ExclusiveRule(level, value, confs) + + def check(self, confs: ConfigList): + appears : List[Config] = [] + for name in self.confs: + conf = confs.get(name) + if conf is not None and conf.value != 'n': + appears.append(conf) + if len(appears) == 0: + return CheckResult.group_miss(self.level, appears) + if len(appears) != 1: + return CheckResult.exlusive_error(self.level, [x.name for x in appears]) + if appears[0].value != self.value: + return CheckResult.wrong_value(self.level, appears[0].name, self.value, appears[0].value) + return CheckResult.success() + +def level_of(l: str) -> RuleLevel: + if l == "L0-MANDATORY": + return RuleLevel.L0_MANDATORY + elif l == "L1-RECOMMEND": + return RuleLevel.L1_RECOMMEND + die(f"unknown level {l}") + +def do_check(args): + confs = ConfigList.from_file(args.config) + rules = RuleList() + + if len(args.rules) != len(args.level): + die("the num of level and rules do not match") + + for i, rule_file in enumerate(args.rules): + rules.merge(RuleList.from_file(rule_file, level_of(args.level[i]))) + results = rules.check(confs) + + fatal_error = False + result_text = "" + for r in results: + result_text += str(r) + fatal_error = fatal_error or r.is_fatal_error() + + if result_text == "": + result_text = "PASS\n" + print(result_text) + exit(fatal_error) + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='check configs') + parser.set_defaults(func=default_args_func) + subparsers = parser.add_subparsers() + + checker = subparsers.add_parser("check") + checker.add_argument("--rules", action='append', default=[], help="the kconfig checking rule files") + checker.add_argument("--level", action='append', default=[], help="the kconfig checking rule files") + checker.add_argument("config", help="the config files to be checked") + checker.set_defaults(func=do_check) + + args = parser.parse_args() + args.func(args) diff --git a/anolis/configs/examination/configs-check.sh b/anolis/configs/examination/configs-check.sh new file mode 100644 index 0000000000000000000000000000000000000000..fff2579be94a8c7aa87f76ff27398a275ccf6663 --- /dev/null +++ b/anolis/configs/examination/configs-check.sh @@ -0,0 +1,44 @@ +#! /bin/bash +# check kconfigs obey constraints or not. +# it is called from Makefile, do not run it directly. +# +# usage: +# - check for only one arch: +# ARCH=${arch} make dist-configs-check +# available archs are: x86, arm64, loongarch +# - check for all arch: +# make dist-configs-check + +SCRIPT_DIR=$(realpath $(dirname $0)) + +final_exit_status=0 + +function check_arch() { + local arch=$1 + echo "* Checking configs for arch: $arch" + python3 ${SCRIPT_DIR}/anolis_kconfig_check.py check \ + --rules ${SCRIPT_DIR}/L0-MANDATORY/${arch}.config \ + --level L0-MANDATORY \ + --rules ${SCRIPT_DIR}/L1-RECOMMEND/${arch}.config \ + --level L1-RECOMMEND \ + ${SCRIPT_DIR}/../../../arch/${arch}/configs/anolis_defconfig + + local ret=$? + if [ $final_exit_status -eq 0 ]; then + final_exit_status=$ret + fi +} + +# arch sw_64 is not available now +arch_list=("x86" "arm64" "loongarch") + +if [ -n "${ARCH}" ]; then + arch_list=(${ARCH}) +fi + +for arch in ${arch_list[@]} +do + check_arch $arch +done + +exit $final_exit_status