cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig.debug (9095B)


      1# SPDX-License-Identifier: GPL-2.0
      2
      3config TRACE_IRQFLAGS_NMI_SUPPORT
      4	def_bool y
      5
      6config EARLY_PRINTK_USB
      7	bool
      8
      9config X86_VERBOSE_BOOTUP
     10	bool "Enable verbose x86 bootup info messages"
     11	default y
     12	help
     13	  Enables the informational output from the decompression stage
     14	  (e.g. bzImage) of the boot. If you disable this you will still
     15	  see errors. Disable this if you want silent bootup.
     16
     17config EARLY_PRINTK
     18	bool "Early printk" if EXPERT
     19	default y
     20	help
     21	  Write kernel log output directly into the VGA buffer or to a serial
     22	  port.
     23
     24	  This is useful for kernel debugging when your machine crashes very
     25	  early before the console code is initialized. For normal operation
     26	  it is not recommended because it looks ugly and doesn't cooperate
     27	  with klogd/syslogd or the X server. You should normally say N here,
     28	  unless you want to debug such a crash.
     29
     30config EARLY_PRINTK_DBGP
     31	bool "Early printk via EHCI debug port"
     32	depends on EARLY_PRINTK && PCI
     33	select EARLY_PRINTK_USB
     34	help
     35	  Write kernel log output directly into the EHCI debug port.
     36
     37	  This is useful for kernel debugging when your machine crashes very
     38	  early before the console code is initialized. For normal operation
     39	  it is not recommended because it looks ugly and doesn't cooperate
     40	  with klogd/syslogd or the X server. You should normally say N here,
     41	  unless you want to debug such a crash. You need usb debug device.
     42
     43config EARLY_PRINTK_USB_XDBC
     44	bool "Early printk via the xHCI debug port"
     45	depends on EARLY_PRINTK && PCI
     46	select EARLY_PRINTK_USB
     47	help
     48	  Write kernel log output directly into the xHCI debug port.
     49
     50	  One use for this feature is kernel debugging, for example when your
     51	  machine crashes very early before the regular console code is
     52	  initialized. Other uses include simpler, lockless logging instead of
     53	  a full-blown printk console driver + klogd.
     54
     55	  For normal production environments this is normally not recommended,
     56	  because it doesn't feed events into klogd/syslogd and doesn't try to
     57	  print anything on the screen.
     58
     59	  You should normally say N here, unless you want to debug early
     60	  crashes or need a very simple printk logging facility.
     61
     62config EFI_PGT_DUMP
     63	bool "Dump the EFI pagetable"
     64	depends on EFI
     65	select PTDUMP_CORE
     66	help
     67	  Enable this if you want to dump the EFI page table before
     68	  enabling virtual mode. This can be used to debug miscellaneous
     69	  issues with the mapping of the EFI runtime regions into that
     70	  table.
     71
     72config DEBUG_TLBFLUSH
     73	bool "Set upper limit of TLB entries to flush one-by-one"
     74	depends on DEBUG_KERNEL
     75	help
     76	  X86-only for now.
     77
     78	  This option allows the user to tune the amount of TLB entries the
     79	  kernel flushes one-by-one instead of doing a full TLB flush. In
     80	  certain situations, the former is cheaper. This is controlled by the
     81	  tlb_flushall_shift knob under /sys/kernel/debug/x86. If you set it
     82	  to -1, the code flushes the whole TLB unconditionally. Otherwise,
     83	  for positive values of it, the kernel will use single TLB entry
     84	  invalidating instructions according to the following formula:
     85
     86	  flush_entries <= active_tlb_entries / 2^tlb_flushall_shift
     87
     88	  If in doubt, say "N".
     89
     90config IOMMU_DEBUG
     91	bool "Enable IOMMU debugging"
     92	depends on GART_IOMMU && DEBUG_KERNEL
     93	depends on X86_64
     94	help
     95	  Force the IOMMU to on even when you have less than 4GB of
     96	  memory and add debugging code. On overflow always panic. And
     97	  allow to enable IOMMU leak tracing. Can be disabled at boot
     98	  time with iommu=noforce. This will also enable scatter gather
     99	  list merging.  Currently not recommended for production
    100	  code. When you use it make sure you have a big enough
    101	  IOMMU/AGP aperture.  Most of the options enabled by this can
    102	  be set more finegrained using the iommu= command line
    103	  options. See Documentation/x86/x86_64/boot-options.rst for more
    104	  details.
    105
    106config IOMMU_LEAK
    107	bool "IOMMU leak tracing"
    108	depends on IOMMU_DEBUG && DMA_API_DEBUG
    109	help
    110	  Add a simple leak tracer to the IOMMU code. This is useful when you
    111	  are debugging a buggy device driver that leaks IOMMU mappings.
    112
    113config HAVE_MMIOTRACE_SUPPORT
    114	def_bool y
    115
    116config X86_DECODER_SELFTEST
    117	bool "x86 instruction decoder selftest"
    118	depends on DEBUG_KERNEL && INSTRUCTION_DECODER
    119	depends on !COMPILE_TEST
    120	help
    121	  Perform x86 instruction decoder selftests at build time.
    122	  This option is useful for checking the sanity of x86 instruction
    123	  decoder code.
    124	  If unsure, say "N".
    125
    126choice
    127	prompt "IO delay type"
    128	default IO_DELAY_0X80
    129
    130config IO_DELAY_0X80
    131	bool "port 0x80 based port-IO delay [recommended]"
    132	help
    133	  This is the traditional Linux IO delay used for in/out_p.
    134	  It is the most tested hence safest selection here.
    135
    136config IO_DELAY_0XED
    137	bool "port 0xed based port-IO delay"
    138	help
    139	  Use port 0xed as the IO delay. This frees up port 0x80 which is
    140	  often used as a hardware-debug port.
    141
    142config IO_DELAY_UDELAY
    143	bool "udelay based port-IO delay"
    144	help
    145	  Use udelay(2) as the IO delay method. This provides the delay
    146	  while not having any side-effect on the IO port space.
    147
    148config IO_DELAY_NONE
    149	bool "no port-IO delay"
    150	help
    151	  No port-IO delay. Will break on old boxes that require port-IO
    152	  delay for certain operations. Should work on most new machines.
    153
    154endchoice
    155
    156config DEBUG_BOOT_PARAMS
    157	bool "Debug boot parameters"
    158	depends on DEBUG_KERNEL
    159	depends on DEBUG_FS
    160	help
    161	  This option will cause struct boot_params to be exported via debugfs.
    162
    163config CPA_DEBUG
    164	bool "CPA self-test code"
    165	depends on DEBUG_KERNEL
    166	help
    167	  Do change_page_attr() self-tests every 30 seconds.
    168
    169config DEBUG_ENTRY
    170	bool "Debug low-level entry code"
    171	depends on DEBUG_KERNEL
    172	help
    173	  This option enables sanity checks in x86's low-level entry code.
    174	  Some of these sanity checks may slow down kernel entries and
    175	  exits or otherwise impact performance.
    176
    177	  If unsure, say N.
    178
    179config DEBUG_NMI_SELFTEST
    180	bool "NMI Selftest"
    181	depends on DEBUG_KERNEL && X86_LOCAL_APIC
    182	help
    183	  Enabling this option turns on a quick NMI selftest to verify
    184	  that the NMI behaves correctly.
    185
    186	  This might help diagnose strange hangs that rely on NMI to
    187	  function properly.
    188
    189	  If unsure, say N.
    190
    191config DEBUG_IMR_SELFTEST
    192	bool "Isolated Memory Region self test"
    193	depends on INTEL_IMR
    194	help
    195	  This option enables automated sanity testing of the IMR code.
    196	  Some simple tests are run to verify IMR bounds checking, alignment
    197	  and overlapping. This option is really only useful if you are
    198	  debugging an IMR memory map or are modifying the IMR code and want to
    199	  test your changes.
    200
    201	  If unsure say N here.
    202
    203config X86_DEBUG_FPU
    204	bool "Debug the x86 FPU code"
    205	depends on DEBUG_KERNEL
    206	default y
    207	help
    208	  If this option is enabled then there will be extra sanity
    209	  checks and (boot time) debug printouts added to the kernel.
    210	  This debugging adds some small amount of runtime overhead
    211	  to the kernel.
    212
    213	  If unsure, say N.
    214
    215config PUNIT_ATOM_DEBUG
    216	tristate "ATOM Punit debug driver"
    217	depends on PCI
    218	select DEBUG_FS
    219	select IOSF_MBI
    220	help
    221	  This is a debug driver, which gets the power states
    222	  of all Punit North Complex devices. The power states of
    223	  each device is exposed as part of the debugfs interface.
    224	  The current power state can be read from
    225	  /sys/kernel/debug/punit_atom/dev_power_state
    226
    227choice
    228	prompt "Choose kernel unwinder"
    229	default UNWINDER_ORC if X86_64
    230	default UNWINDER_FRAME_POINTER if X86_32
    231	help
    232	  This determines which method will be used for unwinding kernel stack
    233	  traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack,
    234	  livepatch, lockdep, and more.
    235
    236config UNWINDER_ORC
    237	bool "ORC unwinder"
    238	depends on X86_64
    239	select OBJTOOL
    240	help
    241	  This option enables the ORC (Oops Rewind Capability) unwinder for
    242	  unwinding kernel stack traces.  It uses a custom data format which is
    243	  a simplified version of the DWARF Call Frame Information standard.
    244
    245	  This unwinder is more accurate across interrupt entry frames than the
    246	  frame pointer unwinder.  It also enables a 5-10% performance
    247	  improvement across the entire kernel compared to frame pointers.
    248
    249	  Enabling this option will increase the kernel's runtime memory usage
    250	  by roughly 2-4MB, depending on your kernel config.
    251
    252config UNWINDER_FRAME_POINTER
    253	bool "Frame pointer unwinder"
    254	select FRAME_POINTER
    255	help
    256	  This option enables the frame pointer unwinder for unwinding kernel
    257	  stack traces.
    258
    259	  The unwinder itself is fast and it uses less RAM than the ORC
    260	  unwinder, but the kernel text size will grow by ~3% and the kernel's
    261	  overall performance will degrade by roughly 5-10%.
    262
    263config UNWINDER_GUESS
    264	bool "Guess unwinder"
    265	depends on EXPERT
    266	depends on !STACKDEPOT
    267	help
    268	  This option enables the "guess" unwinder for unwinding kernel stack
    269	  traces.  It scans the stack and reports every kernel text address it
    270	  finds.  Some of the addresses it reports may be incorrect.
    271
    272	  While this option often produces false positives, it can still be
    273	  useful in many cases.  Unlike the other unwinders, it has no runtime
    274	  overhead.
    275
    276endchoice
    277
    278config FRAME_POINTER
    279	depends on !UNWINDER_ORC && !UNWINDER_GUESS
    280	bool