/linux-6.14.4/Documentation/arch/x86/ |
D | kernel-stacks.rst | 4 Kernel Stacks 7 Kernel stacks on x86-64 bit 15 active thread. These thread stacks are THREAD_SIZE (4*PAGE_SIZE) big. 16 These stacks contain useful data as long as a thread is alive or a 20 In addition to the per thread stacks, there are specialized stacks 21 associated with each CPU. These stacks are only used while the kernel 23 specialized stacks contain no useful data. The main CPU stacks are: 30 the split thread and interrupt stacks on i386, this gives more room 38 hardware stacks cannot nest without races. 46 point to dedicated stacks; each stack can be a different size. [all …]
|
/linux-6.14.4/Documentation/mm/ |
D | vmalloced-kernel-stacks.rst | 15 series that introduced the `Virtually Mapped Kernel Stacks feature 25 Virtually mapped kernel stacks with guard pages cause kernel stack 30 support for virtually mapped stacks with guard pages. This feature 42 Architectures that can support Virtually Mapped Kernel Stacks should 45 - vmalloc space must be large enough to hold many kernel stacks. This 47 - Stacks in vmalloc space need to work reliably. For example, if 61 mapped task stacks. This option depends on HAVE_ARCH_VMAP_STACK. 63 - Enable this if you want the use virtually-mapped kernel stacks 94 - Allocated stacks are cached and later reused by new threads, so memcg 95 accounting is performed manually on assigning/releasing stacks to tasks. [all …]
|
D | page_owner.rst | 27 It can also be used to show all the stacks and their current number of 76 cat /sys/kernel/debug/page_owner_stacks/show_stacks > stacks.txt 77 cat stacks.txt
|
/linux-6.14.4/arch/arm64/include/asm/stacktrace/ |
D | common.h | 26 * @stacks: An array of stacks which can be unwound. 27 * @nr_stacks: The number of stacks in @stacks. 34 struct stack_info *stacks; member 83 info = &state->stacks[i]; in unwind_find_stack() 118 * Note that stacks can nest in several valid orders, e.g. in unwind_consume_stack()
|
/linux-6.14.4/lib/ |
D | ref_tracker.c | 28 } stacks[]; member 37 stats = kmalloc(struct_size(stats, stacks, limit), in ref_tracker_get_stats() 50 if (stats->stacks[i].stack_handle == stack) in ref_tracker_get_stats() 55 stats->stacks[i].stack_handle = stack; in ref_tracker_get_stats() 56 stats->stacks[i].count = 0; in ref_tracker_get_stats() 59 ++stats->stacks[i].count; in ref_tracker_get_stats() 107 stack = stats->stacks[i].stack_handle; in __ref_tracker_dir_pr_ostream() 111 stats->stacks[i].count, stats->total, sbuf); in __ref_tracker_dir_pr_ostream() 112 skipped -= stats->stacks[i].count; in __ref_tracker_dir_pr_ostream()
|
/linux-6.14.4/arch/sh/ |
D | Kconfig.debug | 37 bool "Use 4Kb for kernel stacks instead of 8Kb" 44 will also use IRQ stacks to compensate for the reduced stackspace. 47 bool "Use separate kernel stacks when processing interrupts" 50 If you say Y here the kernel will use separate kernel stacks 52 overflowing the process kernel stacks.
|
/linux-6.14.4/Documentation/arch/arm64/ |
D | gcs.rst | 32 control stacks with checks to ensure that the new stack is a valid 37 shadow stacks rather than GCS. 61 2. Enabling and disabling Guarded Control Stacks 113 3. Allocation of Guarded Control Stacks 129 * Additional Guarded Control Stacks can be allocated using the 132 * Stacks allocated using map_shadow_stack() can optionally have an end of 140 * Stacks allocated using map_shadow_stack() must have a size which is a
|
/linux-6.14.4/arch/arm64/kvm/hyp/nvhe/ |
D | stacktrace.c | 123 struct stack_info stacks[] = { in pkvm_save_backtrace() local 128 .stacks = stacks, in pkvm_save_backtrace() 129 .nr_stacks = ARRAY_SIZE(stacks), in pkvm_save_backtrace()
|
/linux-6.14.4/drivers/gpu/drm/panthor/ |
D | panthor_device.c | 51 ptdev->clks.stacks = devm_clk_get_optional(ptdev->base.dev, "stacks"); in panthor_clk_init() 52 if (IS_ERR(ptdev->clks.stacks)) in panthor_clk_init() 54 PTR_ERR(ptdev->clks.stacks), in panthor_clk_init() 55 "get 'stacks' clock failed"); in panthor_clk_init() 465 ret = clk_prepare_enable(ptdev->clks.stacks); in panthor_device_resume() 518 clk_disable_unprepare(ptdev->clks.stacks); in panthor_device_resume() 567 clk_disable_unprepare(ptdev->clks.stacks); in panthor_device_suspend()
|
/linux-6.14.4/arch/x86/kernel/ |
D | fred.c | 17 * "the stack you pointed me to is broken." Thus, always change stacks 78 * The purpose of separate stacks for NMI, #DB and #MC *in the kernel* in cpu_init_fred_rsps() 88 /* The FRED equivalents to IST stacks... */ in cpu_init_fred_rsps()
|
D | idt.c | 61 * stacks work only after cpu_init(). 80 * cpu_init() is invoked. Interrupt stacks cannot be used at that point and 218 * On X8664 these traps do not use interrupt stacks as they can't work 243 * stacks work only after cpu_init(). 252 * On X8664 this does not use interrupt stacks as they can't work before
|
D | dumpstack.c | 202 * Iterate through the stacks, starting with the current stack pointer. in show_trace_log_lvl() 205 * x86-64 can have several stacks: in show_trace_log_lvl() 208 * - HW exception stacks (double fault, nmi, debug, mce) in show_trace_log_lvl() 211 * x86-32 can have up to four stacks: in show_trace_log_lvl()
|
/linux-6.14.4/arch/arm64/kvm/ |
D | stacktrace.c | 182 struct stack_info stacks[] = { in hyp_dump_backtrace() local 187 .stacks = stacks, in hyp_dump_backtrace() 188 .nr_stacks = ARRAY_SIZE(stacks), in hyp_dump_backtrace()
|
/linux-6.14.4/Documentation/dev-tools/ |
D | kmemleak.rst | 47 enable the task stacks scanning (default) 49 disable the tasks stacks scanning 101 2. scan the memory starting with the data section and stacks, checking 187 kmemleak_erase functions (see above). The task stacks also increase the 198 stacks. Kmemleak defines MSECS_MIN_AGE (defaulting to 1000) representing
|
/linux-6.14.4/arch/powerpc/include/asm/ |
D | irq.h | 38 * Per-cpu stacks for handling critical, debug and machine check 47 * Per-cpu stacks for handling hard and soft interrupts.
|
/linux-6.14.4/samples/fprobe/ |
D | fprobe_example.c | 44 unsigned long stacks[BACKTRACE_DEPTH]; in show_backtrace() local 47 len = stack_trace_save(stacks, BACKTRACE_DEPTH, 2); in show_backtrace() 48 stack_trace_print(stacks, len, 24); in show_backtrace()
|
/linux-6.14.4/arch/arm64/kernel/ |
D | stacktrace.c | 299 * Per-cpu stacks are only accessible when unwinding the current task in a 310 * SDEI stacks are only accessible when unwinding the current task in an NMI 332 struct stack_info stacks[] = { in kunwind_stack_walk() local 348 .stacks = stacks, in kunwind_stack_walk() 349 .nr_stacks = ARRAY_SIZE(stacks), in kunwind_stack_walk()
|
D | sdei.c | 26 * VMAP'd stacks checking for stack overflow on exception using sp as a scratch 27 * register, meaning SDEI has to switch to its own stack. We need two stacks as 32 * For now, we allocate stacks when the driver is probed.
|
/linux-6.14.4/arch/parisc/ |
D | Kconfig | 332 bool "Use separate kernel stacks when processing interrupts" 335 If you say Y here the kernel will use separate kernel stacks 337 overflowing the process kernel stacks.
|
/linux-6.14.4/Documentation/devicetree/bindings/gpu/ |
D | arm,mali-valhall-csf.yaml | 48 - const: stacks 126 clock-names = "core", "coregroup", "stacks";
|
/linux-6.14.4/arch/x86/include/asm/ |
D | cpu_entry_area.h | 35 /* The exception stacks' physical storage. No guard pages required */ 116 * Exception stacks used for IST entries with guard pages.
|
/linux-6.14.4/tools/perf/scripts/python/ |
D | stackcollapse.py | 15 # perf script report stackcollapse > out.stacks-folded 48 help="do not separate stacks according to comm"),
|
D | flamegraph.py | 39 const stacks = [/** @flamegraph_json **/]; 45 .datum(stacks[0]) 203 output_fn = self.args.output or "stacks.json"
|
/linux-6.14.4/include/linux/ |
D | binfmts.h | 135 #define EXSTACK_DISABLE_X 1 /* Disable executable stacks */ 136 #define EXSTACK_ENABLE_X 2 /* Enable executable stacks */
|
/linux-6.14.4/arch/powerpc/kernel/ |
D | setup_64.c | 691 * This is used to allocate PACAs and various interrupt stacks that 722 panic("cannot allocate stacks"); in alloc_stack() 733 * Interrupt stacks must be in the first segment since we in irqstack_early_init() 780 * Emergency stacks must be under 256MB, we cannot afford to take in emergency_stack_init() 784 * Since we use these as temporary stacks during secondary CPU in emergency_stack_init() 789 * The IRQ stacks allocated elsewhere in this file are zeroed and in emergency_stack_init() 791 * to have emergency stacks available as early as possible. in emergency_stack_init()
|