xx_vv_immortalwrt/config/Config-ipq.in
2025-02-26 17:20:38 +08:00

146 lines
4.0 KiB
Plaintext

# vim: set ft=kconfig
menu "Qualcomm IPQ Options"
comment "Kernel build options"
choice KERNEL_IPQ_MEM_PROFILE
prompt "IPQ memory profile"
default IPQ_MEM_PROFILE_1024
config IPQ_MEM_PROFILE_1024
bool "1024"
config IPQ_MEM_PROFILE_512
bool "512"
config IPQ_MEM_PROFILE_256
bool "256"
endchoice
config KERNEL_IPQ_MEM_PROFILE
int
default 1024 if IPQ_MEM_PROFILE_1024
default 512 if IPQ_MEM_PROFILE_512
default 256 if IPQ_MEM_PROFILE_256
help
This option select memory profile to used, which defines
the reserved memory configuration used in device tree
config KERNEL_SKB_RECYCLER
bool "Generic SKB recycling"
default y if KERNEL_IPQ_MEM_PROFILE > 256
choice KERNEL_SKB_RECYCLE_SIZE
prompt "SKB recycler size"
default SKB_RECYCLE_SIZE_2304
default SKB_RECYCLE_SIZE_1856 if KERNEL_IPQ_MEM_PROFILE < 1024
depends on KERNEL_SKB_RECYCLER
config SKB_RECYCLE_SIZE_1856
bool "1856"
config SKB_RECYCLE_SIZE_2304
bool "2304"
endchoice
config KERNEL_SKB_RECYCLE_SIZE
int
depends on KERNEL_SKB_RECYCLER
default 2304 if SKB_RECYCLE_SIZE_2304
default 1856 if SKB_RECYCLE_SIZE_1856
help
SKB recycler default size
config KERNEL_SKB_RECYCLER_MULTI_CPU
bool "Cross-CPU recycling for CPU-locked workloads"
depends on KERNEL_SKB_RECYCLER
default y
config KERNEL_SKB_RECYCLER_PREALLOC
bool "Enable preallocation of SKBs (For SFE not NSS)"
depends on KERNEL_SKB_RECYCLER
default n
help
NOTE: This is primarily for platforms utilizing SFE (Shortcut Forwarding Engine)
and not NSS (Network Subsystem) offload.
NSS offload platforms mostly utilize the SKB recycling feature when managing memory.
Mostly when to "reclaim" it.
This option enables preallocation of SKBs.
The default is '16384' which means 16384 x 4096 (Size of SKB) = 64MB.
config KERNEL_SKB_RECYCLE_MAX_PREALLOC_SKBS
int "Number of SKBs to be preallocated"
depends on KERNEL_SKB_RECYCLER_PREALLOC
default 16384
config KERNEL_SKB_FIXED_SIZE_2K
bool "SKB size fixed at 2K"
default n
default y if KERNEL_IPQ_MEM_PROFILE < 512
help
SKB size fixed at 2K. Primarily for platforms with less than 512MB memory.
config KERNEL_ALLOC_SKB_PAGE_FRAG_DISABLE
depends on KERNEL_SKB_RECYCLER
bool "Disable alloc skb page frag"
default n
choice KERNEL_PREEMPTION
prompt "Kernel preemption level"
default KERNEL_PREEMPT
config KERNEL_PREEMPT_NONE
bool "No Forced Preemption (Server)"
help
This is the traditional Linux preemption model, geared towards
throughput. It will still provide good latencies most of the time,
but there are no guarantees and occasional longer delays are
possible.
Select this option if you are building a kernel for a server or
scientific/computation system, or if you want to maximize the
raw processing power of the kernel, irrespective of scheduling
latencies.
config KERNEL_PREEMPT_NONE_BUILD
depends on KERNEL_PREEMPT_NONE
bool
default y
config KERNEL_PREEMPT
bool "Preemptible Kernel (Low-Latency)"
help
This option reduces the latency of the kernel by making
all kernel code (that is not executing in a critical section)
preemptible. This allows reaction to interactive events by
permitting a low priority process to be preempted involuntarily
even if it is in kernel mode executing a system call and would
otherwise not be about to reach a natural preemption point.
This allows applications to run more 'smoothly' even when the
system is under load, at the cost of slightly lower throughput
and a slight runtime overhead to kernel code.
Select this if you are building a kernel for a desktop or
embedded system with latency requirements in the milliseconds
range.
if KERNEL_PREEMPT
config KERNEL_PREEMPT_RCU
bool "Preemptible RCU"
default y
select KERNEL_PREEMPT_COUNT
help
This option selects the RCU implementation that is
designed for very large SMP systems with hundreds or
thousands of CPUs, but for which real-time response
is also required. It also scales down nicely to
smaller systems.
Select this option if you are unsure.
endif
endchoice
endmenu