Skip to content
Snippets Groups Projects
Commit 9d886f7a authored by fu5520tp's avatar fu5520tp
Browse files

messy state of my current work

parent 9b1773bc
No related branches found
No related tags found
No related merge requests found
...@@ -38,7 +38,6 @@ CONFIG_AUDIT_ARCH=y ...@@ -38,7 +38,6 @@ CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=4 CONFIG_PGTABLE_LEVELS=4
...@@ -50,6 +49,7 @@ CONFIG_THREAD_INFO_IN_TASK=y ...@@ -50,6 +49,7 @@ CONFIG_THREAD_INFO_IN_TASK=y
# #
# General setup # General setup
# #
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE="" CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set # CONFIG_COMPILE_TEST is not set
...@@ -87,9 +87,6 @@ CONFIG_AUDIT_TREE=y ...@@ -87,9 +87,6 @@ CONFIG_AUDIT_TREE=y
# #
CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ=y
...@@ -114,7 +111,6 @@ CONFIG_TICK_ONESHOT=y ...@@ -114,7 +111,6 @@ CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set # CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
...@@ -134,23 +130,21 @@ CONFIG_TASK_IO_ACCOUNTING=y ...@@ -134,23 +130,21 @@ CONFIG_TASK_IO_ACCOUNTING=y
# #
# RCU Subsystem # RCU Subsystem
# #
CONFIG_TREE_RCU=y CONFIG_TINY_RCU=y
# CONFIG_RCU_EXPERT is not set # CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y CONFIG_SRCU=y
CONFIG_TREE_SRCU=y CONFIG_TINY_SRCU=y
# CONFIG_TASKS_RCU is not set # CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y # CONFIG_RCU_STALL_COMMON is not set
CONFIG_RCU_NEED_SEGCBLIST=y # CONFIG_RCU_NEED_SEGCBLIST is not set
# CONFIG_BUILD_BIN2C is not set # CONFIG_BUILD_BIN2C is not set
# CONFIG_IKCONFIG is not set # CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_ARCH_SUPPORTS_INT128=y
# CONFIG_NUMA_BALANCING is not set
CONFIG_CGROUPS=y CONFIG_CGROUPS=y
# CONFIG_MEMCG is not set # CONFIG_MEMCG is not set
# CONFIG_BLK_CGROUP is not set # CONFIG_BLK_CGROUP is not set
...@@ -162,8 +156,6 @@ CONFIG_FAIR_GROUP_SCHED=y ...@@ -162,8 +156,6 @@ CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_CGROUP_RDMA is not set # CONFIG_CGROUP_RDMA is not set
CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_FREEZER=y
# CONFIG_CGROUP_HUGETLB is not set # CONFIG_CGROUP_HUGETLB is not set
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
# CONFIG_CGROUP_DEVICE is not set # CONFIG_CGROUP_DEVICE is not set
CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_CPUACCT=y
# CONFIG_CGROUP_PERF is not set # CONFIG_CGROUP_PERF is not set
...@@ -204,7 +196,7 @@ CONFIG_SYSFS_SYSCALL=y ...@@ -204,7 +196,7 @@ CONFIG_SYSFS_SYSCALL=y
CONFIG_POSIX_TIMERS=y CONFIG_POSIX_TIMERS=y
CONFIG_KALLSYMS=y CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y # CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_PRINTK=y CONFIG_PRINTK=y
CONFIG_PRINTK_NMI=y CONFIG_PRINTK_NMI=y
...@@ -240,7 +232,6 @@ CONFIG_SLUB_DEBUG=y ...@@ -240,7 +232,6 @@ CONFIG_SLUB_DEBUG=y
CONFIG_SLUB=y CONFIG_SLUB=y
CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_RANDOM is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set # CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y CONFIG_TRACEPOINTS=y
...@@ -406,27 +397,21 @@ CONFIG_INLINE_READ_UNLOCK_IRQ=y ...@@ -406,27 +397,21 @@ CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_FREEZER=y CONFIG_FREEZER=y
# #
# Processor type and features # Processor type and features
# #
CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA=y
CONFIG_SMP=y # CONFIG_SMP is not set
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_FAST_FEATURE_TESTS=y
CONFIG_X86_MPPARSE=y CONFIG_X86_MPPARSE=y
# CONFIG_GOLDFISH is not set # CONFIG_GOLDFISH is not set
# CONFIG_INTEL_RDT_A is not set # CONFIG_INTEL_RDT_A is not set
CONFIG_X86_EXTENDED_PLATFORM=y CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_VSMP is not set
# CONFIG_X86_GOLDFISH is not set # CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_MID is not set
# CONFIG_X86_INTEL_LPSS is not set # CONFIG_X86_INTEL_LPSS is not set
...@@ -460,14 +445,11 @@ CONFIG_CALGARY_IOMMU=y ...@@ -460,14 +445,11 @@ CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
CONFIG_SWIOTLB=y CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y CONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not set CONFIG_NR_CPUS=1
CONFIG_NR_CPUS=64
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_MC_PRIO=y
# CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set # CONFIG_PREEMPT is not set
CONFIG_UP_LATE_INIT=y
CONFIG_X86_LOCAL_APIC=y CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
...@@ -500,12 +482,6 @@ CONFIG_X86_CPUID=y ...@@ -500,12 +482,6 @@ CONFIG_X86_CPUID=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_X86_DIRECT_GBPAGES=y CONFIG_X86_DIRECT_GBPAGES=y
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=6
CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y
...@@ -514,7 +490,6 @@ CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 ...@@ -514,7 +490,6 @@ CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
...@@ -541,6 +516,7 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y ...@@ -541,6 +516,7 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set # CONFIG_MEMORY_FAILURE is not set
# CONFIG_TRANSPARENT_HUGEPAGE is not set # CONFIG_TRANSPARENT_HUGEPAGE is not set
CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_ARCH_WANTS_THP_SWAP=y
CONFIG_NEED_PER_CPU_KM=y
# CONFIG_CLEANCACHE is not set # CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set # CONFIG_FRONTSWAP is not set
# CONFIG_CMA is not set # CONFIG_CMA is not set
...@@ -581,14 +557,8 @@ CONFIG_CRASH_DUMP=y ...@@ -581,14 +557,8 @@ CONFIG_CRASH_DUMP=y
# CONFIG_KEXEC_JUMP is not set # CONFIG_KEXEC_JUMP is not set
CONFIG_PHYSICAL_START=0x1000000 CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y CONFIG_RELOCATABLE=y
CONFIG_RANDOMIZE_BASE=y # CONFIG_RANDOMIZE_BASE is not set
CONFIG_X86_NEED_RELOCS=y
CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_RANDOMIZE_MEMORY=y
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
# CONFIG_COMPAT_VDSO is not set # CONFIG_COMPAT_VDSO is not set
# CONFIG_LEGACY_VSYSCALL_NATIVE is not set # CONFIG_LEGACY_VSYSCALL_NATIVE is not set
CONFIG_LEGACY_VSYSCALL_EMULATE=y CONFIG_LEGACY_VSYSCALL_EMULATE=y
...@@ -597,7 +567,6 @@ CONFIG_LEGACY_VSYSCALL_EMULATE=y ...@@ -597,7 +567,6 @@ CONFIG_LEGACY_VSYSCALL_EMULATE=y
CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_HAVE_LIVEPATCH=y CONFIG_HAVE_LIVEPATCH=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
# #
# Power management and ACPI options # Power management and ACPI options
...@@ -609,7 +578,6 @@ CONFIG_HIBERNATE_CALLBACKS=y ...@@ -609,7 +578,6 @@ CONFIG_HIBERNATE_CALLBACKS=y
CONFIG_HIBERNATION=y CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION="" CONFIG_PM_STD_PARTITION=""
CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set # CONFIG_PM_WAKELOCKS is not set
CONFIG_PM=y CONFIG_PM=y
...@@ -639,12 +607,9 @@ CONFIG_ACPI_DOCK=y ...@@ -639,12 +607,9 @@ CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_CPPC_LIB=y
CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_CUSTOM_DSDT is not set # CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y
...@@ -680,13 +645,11 @@ CONFIG_CPU_FREQ_GOV_COMMON=y ...@@ -680,13 +645,11 @@ CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
# #
# CPU frequency scaling drivers # CPU frequency scaling drivers
...@@ -1110,15 +1073,11 @@ CONFIG_DNS_RESOLVER=y ...@@ -1110,15 +1073,11 @@ CONFIG_DNS_RESOLVER=y
# CONFIG_NET_SWITCHDEV is not set # CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_NET_L3_MASTER_DEV is not set
# CONFIG_NET_NCSI is not set # CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
# CONFIG_CGROUP_NET_PRIO is not set # CONFIG_CGROUP_NET_PRIO is not set
# CONFIG_CGROUP_NET_CLASSID is not set # CONFIG_CGROUP_NET_CLASSID is not set
CONFIG_NET_RX_BUSY_POLL=y CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y CONFIG_BQL=y
# CONFIG_BPF_JIT is not set # CONFIG_BPF_JIT is not set
CONFIG_NET_FLOW_LIMIT=y
# #
# Network testing # Network testing
...@@ -3416,7 +3375,6 @@ CONFIG_EEEPC_LAPTOP=y ...@@ -3416,7 +3375,6 @@ CONFIG_EEEPC_LAPTOP=y
# CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_PUNIT_IPC is not set
# CONFIG_MLX_PLATFORM is not set # CONFIG_MLX_PLATFORM is not set
# CONFIG_MLX_CPLD_PLATFORM is not set # CONFIG_MLX_CPLD_PLATFORM is not set
# CONFIG_INTEL_TURBO_MAX_3 is not set
CONFIG_PMC_ATOM=y CONFIG_PMC_ATOM=y
# CONFIG_CHROME_PLATFORMS is not set # CONFIG_CHROME_PLATFORMS is not set
CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKDEV_LOOKUP=y
...@@ -3813,7 +3771,6 @@ CONFIG_DEBUG_STACK_USAGE=y ...@@ -3813,7 +3771,6 @@ CONFIG_DEBUG_STACK_USAGE=y
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
# CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_HAVE_ARCH_KMEMCHECK=y
...@@ -3872,12 +3829,10 @@ CONFIG_DEBUG_BUGVERBOSE=y ...@@ -3872,12 +3829,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_TORTURE_TEST is not set # CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_PERF_TEST is not set # CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RCU_TRACE=y CONFIG_RCU_TRACE=y
# CONFIG_RCU_EQS_DEBUG is not set # CONFIG_RCU_EQS_DEBUG is not set
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set # CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set # CONFIG_LATENCYTOP is not set
...@@ -4064,7 +4019,6 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y ...@@ -4064,7 +4019,6 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_NULL2=y
# CONFIG_CRYPTO_PCRYPT is not set
CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_MCRYPTD is not set # CONFIG_CRYPTO_MCRYPTD is not set
...@@ -4277,7 +4231,6 @@ CONFIG_HAS_DMA=y ...@@ -4277,7 +4231,6 @@ CONFIG_HAS_DMA=y
# CONFIG_DMA_NOOP_OPS is not set # CONFIG_DMA_NOOP_OPS is not set
# CONFIG_DMA_VIRT_OPS is not set # CONFIG_DMA_VIRT_OPS is not set
CONFIG_CHECK_SIGNATURE=y CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y CONFIG_DQL=y
CONFIG_GLOB=y CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set # CONFIG_GLOB_SELFTEST is not set
......
...@@ -2,6 +2,14 @@ ifdef CONFIG_FUNCTION_TRACER ...@@ -2,6 +2,14 @@ ifdef CONFIG_FUNCTION_TRACER
CFLAGS_REMOVE_clock.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_clock.o = $(CC_FLAGS_FTRACE)
endif endif
CFLAGS_REMOVE_pb.o := -O2
CFLAGS_pb.o := -O0
CFLAGS_REMOVE_core.o := -O2
CFLAGS_core.o := -Og
CFLAGS_REMOVE_perf_error_detection.o := -O2
CFLAGS_perf_error_detection.o := -O0
# These files are disabled because they produce non-interesting flaky coverage # These files are disabled because they produce non-interesting flaky coverage
# that is not a function of syscall inputs. E.g. involuntary context switches. # that is not a function of syscall inputs. E.g. involuntary context switches.
KCOV_INSTRUMENT := n KCOV_INSTRUMENT := n
......
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include "perf_error_detection.h" #include "perf_error_detection.h"
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <linux/spinlock.h>
#include <linux/perf_event.h>
struct pb_plan { struct pb_plan {
int tmp; int tmp;
...@@ -29,18 +32,12 @@ int pb_submit_plan(struct rq *rq) ...@@ -29,18 +32,12 @@ int pb_submit_plan(struct rq *rq)
return -1; return -1;
} }
pb->plan = pb->plan;
pb->size = pb->size;
pb->n_pb_cycles = pb->n_pb_cycles;
pb->n_admin_cycles = pb->n_admin_cycles;
pb->c_entry = 0; pb->c_entry = 0;
pb->count_pb_cycles = 0; pb->count_pb_cycles = 0;
pb->count_admin_cycles = 0; pb->count_admin_cycles = 0;
pb->is_initialized = 1; // must be initialized last pb->is_initialized = 1; // must be initialized last
// pb->mode = PB_ADMIN_MODE;
resched_curr(rq); // reschedule ASAP resched_curr(rq); // reschedule ASAP
return 0; return 0;
...@@ -80,6 +77,8 @@ void init_pb_rq(struct pb_rq *pb_rq) ...@@ -80,6 +77,8 @@ void init_pb_rq(struct pb_rq *pb_rq)
pb_rq->c_entry = 0; pb_rq->c_entry = 0;
pb_rq->size = 0; pb_rq->size = 0;
pb_rq->pevent = NULL; pb_rq->pevent = NULL;
pb_rq->is_initialized = 0;
raw_spin_lock_init(pb_rq->pb_lock);
} }
EXPORT_SYMBOL(init_pb_rq); EXPORT_SYMBOL(init_pb_rq);
...@@ -105,6 +104,8 @@ static void check_preempt_curr_pb(struct rq *rq, struct task_struct *p, int flag ...@@ -105,6 +104,8 @@ static void check_preempt_curr_pb(struct rq *rq, struct task_struct *p, int flag
// NOP // NOP
} }
//static DEFINE_SPINLOCK(pb_lock);
//static DEFINE_SPINLOCK(pb_lock2);
static struct task_struct * pick_next_task_pb(struct rq *rq, static struct task_struct * pick_next_task_pb(struct rq *rq,
struct task_struct *prev, struct rq_flags *rf) struct task_struct *prev, struct rq_flags *rf)
{ {
...@@ -113,6 +114,15 @@ static struct task_struct * pick_next_task_pb(struct rq *rq, ...@@ -113,6 +114,15 @@ static struct task_struct * pick_next_task_pb(struct rq *rq,
enum pb_mode current_mode, next_mode; enum pb_mode current_mode, next_mode;
struct pb_rq *pb = &(rq->pb); struct pb_rq *pb = &(rq->pb);
unsigned long flags;
raw_spin_lock_irqsave(&pb->pb_lock, flags);
//raw_spin_lock(&pb_lock2);
current_mode = pb->mode; current_mode = pb->mode;
next_mode = determine_next_mode_pb(rq); next_mode = determine_next_mode_pb(rq);
pb->mode = next_mode; pb->mode = next_mode;
...@@ -122,61 +132,65 @@ static struct task_struct * pick_next_task_pb(struct rq *rq, ...@@ -122,61 +132,65 @@ static struct task_struct * pick_next_task_pb(struct rq *rq,
// The mode does not change --> no behavior change is needed // The mode does not change --> no behavior change is needed
if (next_mode == PB_EXEC_MODE) { if (next_mode == PB_EXEC_MODE) {
printk(KERN_ALERT "DEBUG: Passed %s %d \n",__FUNCTION__,__LINE__);
if (current_mode == PB_EXEC_MODE) { if (current_mode == PB_EXEC_MODE) {
// if (pb->pevent == NULL) { printk(KERN_ALERT "DEBUG: Passed %s %d \n",__FUNCTION__,__LINE__);
// printk("PEVENT IS NULL\n"); if (pb->pevent == NULL) {
// } printk("PEVENT IS NULL\n");
// u64 perf_counter; pb->mode = PB_ADMIN_MODE;
// u64 read_error = get_perf_counter(pb->pevent, &perf_counter); return rq->curr;
// if (read_error) { }
// printk(KERN_WARNING "FETCHING PERFORMANCE COUNTER IN PB SCHEDULER FAILED WITH %llu\n", read_error); u64 perf_counter;
// } u64 read_error = get_perf_counter(pb->pevent, &perf_counter);
if (read_error) {
// terminate_perf_event(pb->pevent); printk(KERN_WARNING "FETCHING PERFORMANCE COUNTER IN PB SCHEDULER FAILED WITH %llu\n", read_error);
// // TODO: Check if we have to free the memory or if perf takes care of it }
// // see 'perf_event_release_kernel(struct perf_event *event)' in core.c
// pb->pevent = NULL; terminate_perf_event(pb->pevent);
// TODO: Check if we have to free the memory or if perf takes care of it
// if (perf_counter < pb->plan[pb->c_entry].n_instr) { // see 'perf_event_release_kernel(struct perf_event *event)' in core.c
// u64 under_time = pb->plan[pb->c_entry].n_instr - perf_counter; pb->pevent = NULL;
// printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO SHORT\n", pb->plan[pb->c_entry].task_id, under_time); if (perf_counter < pb->plan[pb->c_entry].n_instr) {
// } else if (perf_counter > pb->plan[pb->c_entry].n_instr) { u64 under_time = pb->plan[pb->c_entry].n_instr - perf_counter;
// //TODO: Check if actually an overflow occurs and an another calculation is necessary
// // (setting a flag in the perf overflow_handler could be a solution) printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO SHORT\n", pb->plan[pb->c_entry].task_id, under_time);
// u64 over_time = perf_counter - pb->plan[pb->c_entry].n_instr; } else if (perf_counter > pb->plan[pb->c_entry].n_instr) {
//TODO: Check if actually an overflow occurs and an another calculation is necessary
// printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO LONG\n", pb->plan[pb->c_entry].task_id, over_time); // (setting a flag in the perf overflow_handler could be a solution)
// } u64 over_time = perf_counter - pb->plan[pb->c_entry].n_instr;
printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO LONG\n", pb->plan[pb->c_entry].task_id, over_time);
}
pb->c_entry++; pb->c_entry++;
if (pb->c_entry >= pb->size) { if (pb->c_entry >= pb->size) {
printk(KERN_DEBUG "PLAN DONE\n"); printk(KERN_DEBUG "PLAN DONE\n");
pb->mode = PB_DISABLED_MODE; pb->mode = PB_DISABLED_MODE;
pb->is_initialized = 0; pb->is_initialized = 0;
// } else { } else {
// int perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &pb->pevent); int perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &pb->pevent);
// if(perf_init_res < 0) { if(perf_init_res < 0) {
// //initialization error detection/handling could happen here //initialization error detection/handling could happen here
// printk(KERN_WARNING "PB EXEC,START,%u,%llu: FAILED OPEN PERF EVENT\n", pb->c_entry, sched_clock()); printk(KERN_WARNING "PB EXEC,START,%u,%llu: FAILED OPEN PERF EVENT\n", pb->c_entry, sched_clock());
// } else { } else {
// printk(KERN_DEBUG "PB EXEC,START,%u,%llu\n", pb->c_entry, sched_clock()); printk(KERN_DEBUG "PB EXEC,START,%u,%llu\n", pb->c_entry, sched_clock());
// } }
} }
} else if(current_mode == PB_ADMIN_MODE) { } else if(current_mode == PB_ADMIN_MODE) {
printk(KERN_DEBUG "PB ADMIN,STOP,%u,%llu\n", pb->c_entry, sched_clock()); printk(KERN_DEBUG "PB ADMIN,STOP,%u,%llu\n", pb->c_entry, sched_clock());
// } else { } else {
// printk("Switching from disabled to EXEC\n"); printk("Switching from disabled to EXEC\n");
// // PB_DISABLED_MODE // PB_DISABLED_MODE
// int perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &pb->pevent); int perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &pb->pevent);
// printk("HERE"); printk("HERE");
// if(perf_init_res < 0) { if(perf_init_res < 0) {
// //initialization error detection/handling could happen here //initialization error detection/handling could happen here
// printk(KERN_WARNING "PB INIT,%u,%llu: FAILED OPEN PERF EVENT\n", pb->c_entry, sched_clock()); printk(KERN_WARNING "PB INIT,%u,%llu: FAILED OPEN PERF EVENT\n", pb->c_entry, sched_clock());
// } else { } else {
// printk(KERN_DEBUG "PB INIT,%u,%llu\n", pb->c_entry, sched_clock()); printk(KERN_DEBUG "PB INIT,%u,%llu\n", pb->c_entry, sched_clock());
// } }
} }
if (pb->mode != PB_DISABLED_MODE) { if (pb->mode != PB_DISABLED_MODE) {
...@@ -184,12 +198,17 @@ static struct task_struct * pick_next_task_pb(struct rq *rq, ...@@ -184,12 +198,17 @@ static struct task_struct * pick_next_task_pb(struct rq *rq,
picked = pb->plan[pb->c_entry].task_struct; picked = pb->plan[pb->c_entry].task_struct;
} }
printk("DONE"); printk("DONE");
printk(KERN_ALERT "DEBUG: Passed %s %d \n",__FUNCTION__,__LINE__);
} }
if (current_mode != next_mode) { if (current_mode != next_mode) {
// Necessary to manage the preempted task // Necessary to manage the preempted task
put_prev_task(rq, prev); put_prev_task(rq, prev);
} }
//raw_spin_unlock(&pb_lock2);
raw_spin_unlock_irqrestore(&pb->pb_lock, flags);
return picked; return picked;
} }
...@@ -214,7 +233,7 @@ static void task_tick_pb(struct rq *rq, struct task_struct *p, int queued) ...@@ -214,7 +233,7 @@ static void task_tick_pb(struct rq *rq, struct task_struct *p, int queued)
pb->count_pb_cycles++; pb->count_pb_cycles++;
next_mode = determine_next_mode_pb(rq); next_mode = determine_next_mode_pb(rq);
if (next_mode != PB_EXEC_MODE) { if (pb->is_initialized && next_mode != PB_EXEC_MODE) {
resched_curr(rq); resched_curr(rq);
} }
} }
...@@ -275,11 +294,23 @@ static int show_pbsched(struct seq_file *seq, void *v) ...@@ -275,11 +294,23 @@ static int show_pbsched(struct seq_file *seq, void *v)
char mode; char mode;
struct rq *rq; struct rq *rq;
struct pb_rq *pb; struct pb_rq *pb;
struct perf_event *event;
int perf_init_res;
u64 perf_counter;
u64 read_error;
cpu = (unsigned long)(v - 2); cpu = (unsigned long)(v - 2);
rq = cpu_rq(cpu); rq = cpu_rq(cpu);
pb = &(rq->pb); pb = &(rq->pb);
//raw_spin_lock_irqsave(&rq->lock, flags);
perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &event);
printk(KERN_WARNING "Hi! %d\n", perf_init_res);
switch(pb->mode) { switch(pb->mode) {
case PB_DISABLED_MODE: mode='D'; break; case PB_DISABLED_MODE: mode='D'; break;
case PB_EXEC_MODE: mode='E'; break; case PB_EXEC_MODE: mode='E'; break;
...@@ -287,15 +318,31 @@ static int show_pbsched(struct seq_file *seq, void *v) ...@@ -287,15 +318,31 @@ static int show_pbsched(struct seq_file *seq, void *v)
default: mode='U'; break; default: mode='U'; break;
} }
perf_counter = __perf_event_count(event);
printk(KERN_WARNING "Hi! hier kommts %llu\n", perf_counter);
read_error = get_perf_counter(event, &perf_counter);
printk(KERN_WARNING "Hi! yo hier kommts %llu\n", perf_counter);
terminate_perf_event(event);
if (read_error) {
printk(KERN_WARNING "Hi! FETCHING PERFORMANCE COUNTER IN PB SCHEDULER FAILED WITH %llu\n", read_error);
}
//raw_spin_unlock_irqrestore(&rq->lock, flags);
/* runqueue-specific stats */ /* runqueue-specific stats */
seq_printf(seq, seq_printf(seq,
"cpu%d %c %u %llu %llu\n", "cpu%d %c %u %llu %llu %llu\n",
cpu, cpu,
mode, mode,
pb->c_entry, pb->c_entry,
pb->count_pb_cycles, pb->count_pb_cycles,
pb->count_admin_cycles pb->count_admin_cycles,
perf_counter
); );
} }
return 0; return 0;
......
...@@ -10,17 +10,28 @@ ...@@ -10,17 +10,28 @@
*/ */
static struct perf_event_attr wd_hw_attr = {
.type = PERF_TYPE_HARDWARE,
.config = PERF_COUNT_HW_INSTRUCTIONS,
.size = sizeof(struct perf_event_attr),
.pinned = 1,
.disabled = 0,
.sample_period = 1000000,
//.exclude_kernel = 0,
.exclude_hv = 1, // excluding events that happen in the hypervisor
};
/* /*
* initialize perf event for new task * initialize perf event for new task
*/ */
int init_perf_event(struct plan_entry *plan_entry, struct perf_event **pevent){ int init_perf_event(struct plan_entry *plan_entry, struct perf_event **pevent){
struct perf_event_attr pe; struct perf_event_attr pe;
memset(&pe, 0, sizeof(struct perf_event_attr)); //memset(&pe, 0, sizeof(struct perf_event_attr));
pe.type = PERF_TYPE_HARDWARE; pe.type = PERF_TYPE_HARDWARE;
pe.size = sizeof(struct perf_event_attr); pe.size = sizeof(struct perf_event_attr);
pe.config = PERF_COUNT_HW_INSTRUCTIONS; pe.config = PERF_COUNT_HW_INSTRUCTIONS;
pe.sample_period = plan_entry->n_instr; pe.sample_period = 10000000;
pe.disabled = 0; // start the counter as soon as we're in userland pe.disabled = 0; // start the counter as soon as we're in userland
pe.pinned = 1; // ? pe.pinned = 1; // ?
pe.exclude_kernel = 1; pe.exclude_kernel = 1;
...@@ -35,7 +46,7 @@ int init_perf_event(struct plan_entry *plan_entry, struct perf_event **pevent){ ...@@ -35,7 +46,7 @@ int init_perf_event(struct plan_entry *plan_entry, struct perf_event **pevent){
printk("HERE"); printk("HERE");
// cpu = -1 -> cpu independent (assumed to be regulated by plan) // cpu = -1 -> cpu independent (assumed to be regulated by plan)
*pevent = perf_event_create(&pe, smp_processor_id()); *pevent = perf_event_create(&pe, 0);
printk("HERE2"); printk("HERE2");
if (IS_ERR(pevent)) { if (IS_ERR(pevent)) {
...@@ -72,17 +83,22 @@ void overflow_handler( ...@@ -72,17 +83,22 @@ void overflow_handler(
struct pb_rq *pb_rq; struct pb_rq *pb_rq;
int cpu; int cpu;
cpu = smp_processor_id(); /* Ensure the watchdog never gets throttled */
pb_rq = &cpu_rq(cpu)->pb; event->hw.interrupts = 0;
cpu = 0;
pb_rq = &cpu_rq(cpu)->pb;
if(pb_rq->is_initialized)
printk(KERN_WARNING "PB TASK %llu RAN TOO LONG\n",pb_rq->plan[pb_rq->c_entry].task_id); printk(KERN_WARNING "PB TASK %llu RAN TOO LONG\n",pb_rq->plan[pb_rq->c_entry].task_id);
else
printk(KERN_WARNING "PB TASK RAN TOO LONG\n");
} }
struct perf_event* perf_event_create(struct perf_event_attr *hw_event_uptr, int cpu) struct perf_event* perf_event_create(struct perf_event_attr *hw_event_uptr, int cpu)
{ {
return perf_event_create_kernel_counter( return perf_event_create_kernel_counter(
hw_event_uptr, &wd_hw_attr,
cpu, cpu,
NULL, /* per CPU */ NULL, /* per CPU */
&overflow_handler, &overflow_handler,
......
...@@ -560,6 +560,8 @@ struct pb_rq ...@@ -560,6 +560,8 @@ struct pb_rq
* this variable must be initialized last * this variable must be initialized last
*/ */
volatile int is_initialized; volatile int is_initialized;
raw_spinlock_t *pb_lock;
}; };
int pb_submit_plan(struct rq *rq); int pb_submit_plan(struct rq *rq);
......
...@@ -110,7 +110,7 @@ static void update_curr_stop(struct rq *rq) ...@@ -110,7 +110,7 @@ static void update_curr_stop(struct rq *rq)
* Simple, special scheduling class for the per-CPU stop tasks: * Simple, special scheduling class for the per-CPU stop tasks:
*/ */
const struct sched_class stop_sched_class = { const struct sched_class stop_sched_class = {
.next = &pb_sched_class, .next = &dl_sched_class,
.enqueue_task = enqueue_task_stop, .enqueue_task = enqueue_task_stop,
.dequeue_task = dequeue_task_stop, .dequeue_task = dequeue_task_stop,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment