37e14da1f2
* refs/heads/tmp-075ce55: ANDROID: 16K: Avoid mmap lock assertions for padding VMAs ANDROID: consolidate.fragment: don't disable CONFIG_PM_ADVANCED_DEBUG ANDROID: GKI: Update symbol list for mtk Revert "f2fs: fix to tag gcing flag on page during block migration" ANDROID: 16K: Only check basename of linker context FROMGIT: arm64: mte: Make mte_check_tfsr_*() conditional on KASAN instead of MTE ANDROID: gki_defconfig: Disable CONFIG_BRCMSTB_DPFE and CONFIG_BRCMSTB_MEMC FROMGIT: f2fs: fix to avoid use SSR allocate when do defragment ANDROID: 16K: Only check basename of linker context ANDROID: 16K: Avoid and document padding madvise lock warning ANDROID: arm64: vdso32: support user-supplied flags ANDROID: GKI: Add initial symbol list for bcmstb ANDROID: gki_defconfig: Enable Broadcom STB SoCs UPSTREAM: mmc: core: Do not force a retune before RPMB switch UPSTREAM: arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers BACKPORT: net: phy: Allow drivers to always call into ->suspend() UPSTREAM: ARM: perf: Mark all accessor functions inline UPSTREAM: arm64: perf: Mark all accessor functions inline UPSTREAM: perf/core: Drop __weak attribute from arch_perf_update_userpage() prototype UPSTREAM: ARM: perf: Allow the use of the PMUv3 driver on 32bit ARM UPSTREAM: ARM: Make CONFIG_CPU_V7 valid for 32bit ARMv8 implementations UPSTREAM: perf: pmuv3: Change GENMASK to GENMASK_ULL UPSTREAM: perf: pmuv3: Move inclusion of kvm_host.h to the arch-specific helper UPSTREAM: perf: pmuv3: Abstract PMU version checks UPSTREAM: arm64: perf: Abstract system register accesses away UPSTREAM: arm64: perf: Move PMUv3 driver to drivers/perf UPSTREAM: arm64/perf: Replace PMU version number '0' with ID_AA64DFR0_EL1_PMUVer_NI ANDROID: GKI: Update oplus symbol list UPSTREAM: block/blk-mq: Don't complete locally if capacities are different BACKPORT: sched: Add a new function to compare if two cpus have the same capacity ANDROID: GKI: Update symbol list for mtk ANDROID: GKI: Update rockchip symbols for rndis_host. ANDROID: GKI: Update rockchip symbols for snd multi dais. UPSTREAM: usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete UPSTREAM: usb: gadget: f_fs: use io_data->status consistently ANDROID: set rewrite_absolute_paths_in_config for GKI aarch64. UPSTREAM: wifi: cfg80211: Clear mlo_links info when STA disconnects ANDROID: ABI: Add usb_gadget_connect & usb_gadget_disconnect symbol ANDROID: GKI: Update symbol list for mtk BACKPORT: iommu: Have __iommu_probe_device() check for already probed devices ANDROID: ABI fixup for abi break in struct dst_ops BACKPORT: net: fix __dst_negative_advice() race ANDROID: ABI fixup for abi break in struct dst_ops BACKPORT: net: fix __dst_negative_advice() race Revert "crypto: api - Disallow identical driver names" UPSTREAM: USB: gadget: core: create sysfs link between udc and gadget ANDROID: GKI: add tegra20-cpufreq.ko to rockpi4 build ANDROID: GKI: update symbol list for db845c ANDROID: Build some tegra configs as vendor module ANDROID: gki_defconfig: Enable Tegra SoCs ANDROID: Update the ABI symbol list Revert^2 "BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST ..." ANDROID: binder: fix KMI-break due to alloc->lock ANDROID: binder: fix ptrdiff_t printk-format issue ANDROID: binder: fix KMI-break due to address type change Reapply "ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space" Reapply "ANDROID: Add vendor hooks for binder perf tuning" UPSTREAM: binder: switch alloc->mutex to spinlock_t UPSTREAM: binder: reverse locking order in shrinker callback UPSTREAM: binder: avoid user addresses in debug logs UPSTREAM: binder: refactor binder_delete_free_buffer() UPSTREAM: binder: collapse print_binder_buffer() into caller UPSTREAM: binder: document the final page calculation BACKPORT: UPSTREAM: binder: rename lru shrinker utilities UPSTREAM: binder: make oversized buffer code more readable UPSTREAM: binder: remove redundant debug log UPSTREAM: binder: perform page installation outside of locks UPSTREAM: binder: initialize lru pages in mmap callback UPSTREAM: binder: malloc new_buffer outside of locks UPSTREAM: binder: refactor page range allocation UPSTREAM: binder: relocate binder_alloc_clear_buf() UPSTREAM: binder: relocate low space calculation UPSTREAM: binder: separate the no-space debugging logic UPSTREAM: binder: remove pid param in binder_alloc_new_buf() UPSTREAM: binder: do unlocked work in binder_alloc_new_buf() UPSTREAM: binder: split up binder_update_page_range() UPSTREAM: binder: keep vma addresses type as unsigned long UPSTREAM: binder: remove extern from function prototypes Revert "ANDROID: Add vendor hooks for binder perf tuning" Revert "ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space_locked" Revert "ANDROID: vendor_hook: rename the the name of hooks" ANDROID: GKI: Update rockchip symbols for some usb wifi bt. UPSTREAM: selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior ANDROID: GKI: Update rockchip symbols to add iova APIs FROMLIST: kheaders: explicitly define file modes for archived headers ANDROID: incremental-fs: Make work with 16k pages ANDROID: pahole -J -j1 for reproducible BTF Revert "BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST ..." BACKPORT: FROMGIT: module: allow UNUSED_KSYMS_WHITELIST to be relative against objtree. ANDROID: export one function for mm metrics ANDROID: GKI: Update symbol list for mtk FROMLIST: kheaders: explicitly define file modes for archived headers ANDROID: pahole -J -j1 for reproducible BTF FROMLIST: usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state ANDROID: Export sysctl_sched_wakeup_granularity to enable modifying it UPSTREAM: epoll: be better about file lifetimes FROMLIST: usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state FROMLIST: usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state UPSTREAM: usb: gadget: ncm: Fix handling of zero block length packets ANDROID: Update the ABI symbol list ANDROID: GKI: Update symbol list for mtk UPSTREAM: usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs ANDROID: GKI: Update rockchip symbols to add iova APIs FROMLIST: sched/pi: Reweight fair_policy() tasks when inheriting prio ANDROID: Update the ABI symbol list ANDROID: mm: Add restricted vendor hook in do_read_fault() ANDROID: abi_gki_aarch64_qcom: Update symbol list ANDROID: abi_gki_aarch64_qcom: Update symbol list ANDROID: Update the ABI symbol list ANDROID: add vendor hooks and expoert reclaim_pages to reclaim memory FROMGIT: usb: dwc3: Wait unconditionally after issuing EndXfer command ANDROID: ABI: Update honor symbol list ANDROID: add vendor hook in do_read_fault to tune fault_around_bytes ANDROID: usb: Optimize the problem of slow transfer rate in USB accessory mode ANDROID: Zap kernel/sched/android.h stubs ANDROID: Update the ABI symbol list ANDROID: Export sysctl_sched_wakeup_granularity to enable modifying it ANDROID: export one function for mm metrics ANDROID: Update the ABI symbol list ANDROID: Export sysctl_sched_wakeup_granularity to enable modifying it UPSTREAM: ALSA: virtio: use ack callback UPSTREAM: usb: typec: tcpm: clear pd_event queue in PORT_RESET BACKPORT: usb: typec: tcpm: enforce ready state when queueing alt mode vdm ANDROID: GKI: Update QCOM symbol list and ABI STG ANDROID: GKI: fix ABI breakage in struct userfaultfd_ctx UPSTREAM: userfaultfd: fix deadlock warning when locking src and dst VMAs BACKPORT: userfaultfd: use per-vma locks in userfaultfd operations BACKPORT: mm: add vma_assert_locked() for !CONFIG_PER_VMA_LOCK BACKPORT: userfaultfd: protect mmap_changing with rw_sem in userfaulfd_ctx BACKPORT: userfaultfd: move userfaultfd_ctx struct to header file BACKPORT: userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb BACKPORT: selftests/mm: add separate UFFDIO_MOVE test for PMD splitting BACKPORT: selftests/mm: add UFFDIO_MOVE ioctl test BACKPORT: selftests/mm: add uffd_test_case_ops to allow test case-specific operations BACKPORT: selftests/mm: call uffd_test_ctx_clear at the end of the test UPSTREAM: userfaultfd: fix return error if mmap_changing is non-zero in MOVE ioctl BACKPORT: userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE BACKPORT: mm: userfaultfd: fix unexpected change to src_folio when UFFDIO_MOVE fails BACKPORT: userfaultfd: handle zeropage moves by UFFDIO_MOVE UPSTREAM: userfaultfd: avoid huge_zero_page in UFFDIO_MOVE UPSTREAM: userfaultfd: fix move_pages_pte() splitting folio under RCU read lock BACKPORT: userfaultfd: UFFDIO_MOVE uABI UPSTREAM: mm/rmap: support move to different root anon_vma in folio_move_anon_rmap() UPSTREAM: crypto: x86/curve25519 - disable gcov ANDROID: GKI: Update QCOM symbol list and ABI STG ANDROID: GKI: update symbol list file for xiaomi UPSTREAM: netfilter: nft_set_pipapo: do not free live element UPSTREAM: net: tls: handle backlogging of crypto requests UPSTREAM: af_unix: Fix garbage collector racing against connect() UPSTREAM: af_unix: Do not use atomic ops for unix_sk(sk)->inflight. ANDROID: 16K: Fix show maps CFI failure ANDROID: 16K: Handle pad VMA splits and merges ANDROID: 16K: madvise_vma_pad_pages: Remove filemap_fault check ANDROID: 16K: Only madvise padding from dynamic linker context ANDROID: 16K: Separate padding from ELF LOAD segment mappings ANDROID: 16K: Exclude ELF padding for fault around range ANDROID: 16K: Use MADV_DONTNEED to save VMA padding pages. ANDROID: 16K: Introduce ELF padding representation for VMAs ANDROID: 16K: Introduce /sys/kernel/mm/pgsize_miration/enabled FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it Revert "FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it" FROMGIT: usb: typec: tcpm: Check for port partner validity before consuming it ANDROID: vendor_hooks: add symbols for lazy preemption ANDROID: vendor_hooks: add two hooks for lazy preemption ANDROID: KVM: arm64: wait_for_initramfs for pKVM module loading procfs ANDROID: GKI: Expose device async to userspace BACKPORT: mtk-mmsys: Change mtk-mmsys & mtk-mutex to modules ANDROID: Update the ABI symbol list BACKPORT: clk: mediatek: Split configuration options for MT8186 clock drivers BACKPORT: clk: mediatek: Add MODULE_LICENSE() where missing FROMGIT: coresight: etm4x: Fix access to resource selector registers FROMGIT: coresight: etm4x: Safe access for TRCQCLTR FROMGIT: coresight: etm4x: Do not save/restore Data trace control registers FROMGIT: coresight: etm4x: Do not hardcode IOMEM access for register restore ANDROID: GKI: Update honda symbol list for led-trigger ANDROID: GKI: Update symbols to symbol list ANDROID: vendor_hook: Add hooks to support reader optimistic spin in rwsem UPSTREAM: af_unix: Fix garbage collector racing against connect() UPSTREAM: af_unix: Do not use atomic ops for unix_sk(sk)->inflight. ANDROID: GKI: fix ABI breakage in struct userfaultfd_ctx UPSTREAM: userfaultfd: fix deadlock warning when locking src and dst VMAs BACKPORT: userfaultfd: use per-vma locks in userfaultfd operations BACKPORT: mm: add vma_assert_locked() for !CONFIG_PER_VMA_LOCK BACKPORT: userfaultfd: protect mmap_changing with rw_sem in userfaulfd_ctx BACKPORT: userfaultfd: move userfaultfd_ctx struct to header file BACKPORT: userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb BACKPORT: selftests/mm: add separate UFFDIO_MOVE test for PMD splitting BACKPORT: selftests/mm: add UFFDIO_MOVE ioctl test BACKPORT: selftests/mm: add uffd_test_case_ops to allow test case-specific operations BACKPORT: selftests/mm: call uffd_test_ctx_clear at the end of the test UPSTREAM: userfaultfd: fix return error if mmap_changing is non-zero in MOVE ioctl BACKPORT: userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE BACKPORT: mm: userfaultfd: fix unexpected change to src_folio when UFFDIO_MOVE fails BACKPORT: userfaultfd: handle zeropage moves by UFFDIO_MOVE UPSTREAM: userfaultfd: avoid huge_zero_page in UFFDIO_MOVE UPSTREAM: userfaultfd: fix move_pages_pte() splitting folio under RCU read lock BACKPORT: userfaultfd: UFFDIO_MOVE uABI UPSTREAM: mm/rmap: support move to different root anon_vma in folio_move_anon_rmap() ANDROID: PM: hibernate: Encryption support with compression ANDROID: abi_gki_aarch64_qcom: Update symbol list ANDROID: vendor_hooks: Add hooks to support hibernation ANDROID: gki_defconfig: Sync gki_defconfig UPSTREAM: PM: hibernate: Support to select compression algorithm UPSTREAM: PM: hibernate: Add support for LZ4 compression for hibernation BACKPORT: PM: hibernate: Move to crypto APIs for LZO compression BACKPORT: PM: hibernate: Rename lzo* to make it generic Revert "hrtimer: Report offline hrtimer enqueue" Revert "drm/mipi-dsi: Fix detach call without attach" ANDROID: ABI: Update symbol list for Exynos SoC ANDROID: abi_gki_aarch64_qcom: Update symbol list BACKPORT: mtk-mmsys: Change mtk-mmsys & mtk-mutex to modules BACKPORT: clk: mediatek: Split configuration options for MT8186 clock drivers BACKPORT: clk: mediatek: Add MODULE_LICENSE() where missing ANDROID: Update the ABI symbol list Reapply "ANDROID: block: Add support for filesystem requests and small segments" UPSTREAM: usb:typec:tcpm:support double Rp to Vbus cable as sink ANDROID: Update the ABI symbol list ANDROID: Add known structs used by modules to KMI ANDROID: use reserved cpucaps for new capability Revert "mm/sparsemem: fix race in accessing memory_section->usage" UPSTREAM: netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path UPSTREAM: netfilter: nf_tables: release batch on table validation from abort path UPSTREAM: netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout UPSTREAM: netfilter: nft_set_pipapo: release elements in clone only from destroy path ANDROID: GKI: Add symbol list for Nothing ANDROID: GKI: Update honda symbol list for asound ANDROID: GKI: Update honda symbol list for xt_LOG ANDROID: GKI: Update honda symbol list for ebtables ANDROID: GKI: Update honda symbol list for net scheduler ANDROID: softirq: add tasklet to LONG_SOFTIRQ_MASK ANDROID: Update the ABI symbol list ANDROID: vendor_hooks: add restricted vendor hook for meminfo ANDROID: Update the ABI symbol list BACKPORT: cpufreq: Don't unregister cpufreq cooling on CPU hotplug FROMGIT: usb: typec: tcpm: Correct the PDO counting in pd_set UPSTREAM: tls: fix race between tx work scheduling and socket close UPSTREAM: netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain UPSTREAM: tls: fix race between async notify and socket close UPSTREAM: net: tls: factor out tls_*crypt_async_wait() UPSTREAM: tls: extract context alloc/initialization out of tls_set_sw_offload BACKPORT: mm: update mark_victim tracepoints fields Revert "FROMGIT: BACKPORT: mm: update mark_victim tracepoints fields" ANDROID: Update the ABI symbol list ANDROID: export two function to reclaim memory ANDROID: add reclaim tune parameter functions UPSTREAM: netfilter: nf_tables: disallow anonymous set with timeout flag ANDROID: drop redundant OWNERS_DrNo file UPSTREAM: ALSA: virtio: Fix "Coverity: virtsnd_kctl_tlv_op(): Uninitialized variables" warning. UPSTREAM: ALSA: virtio: add support for audio controls ANDROID: Update symbols list for virtio_snd.ko audio controls ANDROID: Move cpu_busy_with_softirqs() into sched.h UPSTREAM: mm: page_alloc: unreserve highatomic page blocks before oom UPSTREAM: mm: page_alloc: enforce minimum zone size to do high atomic reserves UPSTREAM: mm: page_alloc: correct high atomic reserve calculations ANDROID: Update the ABI symbol list ANDROID: Export cpu_busy_with_softirqs() ANDROID: GKI: update symbol list file for xiaomi Reapply "ANDROID: null_blk: Support configuring the maximum segment size" UPSTREAM: usb: typec: Return size of buffer if pd_set operation succeeds UPSTREAM: usb: typec: tcpm: Update PD of Type-C port upon pd_set UPSTREAM: usb: typec: tcpm: fix double-free issue in tcpm_port_unregister_pd() UPSTREAM: usb: typec: tcpm: Correct port source pdo array in pd_set callback Reapply "Merge tag 'android14-6.1.75_r00' into android14-6.1" Revert "ANDROID: null_blk: Support configuring the maximum segment size" Revert "usb: dwc3: core: configure TX/RX threshold for DWC3_IP" ANDROID: Update the ABI symbol list ANDROID: GKI: Update symbols for rockchip drm FROMLIST: binder: check offset alignment in binder_get_object() ANDROID: GKI: Add symbol list for Nothing ANDROID: thermal: Add vendor thermal_pm_notify_suspend function UPSTREAM: usb: dwc3: gadget: Don't disconnect if not started Revert "ANDROID: block: Add support for filesystem requests and small segments" ANDROID: vendor_hook: fix issue vip thread do not sleep while no vip work UPSTREAM: sched/wait: Fix a kthread_park race with wait_woken() ANDROID: KVM: arm64: Fix TLB invalidation when coalescing into a block ANDROID: ABI: Update symbol list for Exynos SoC ANDROID: GKI: Add symbols for rockchip snd trcm FROMGIT: usb: dwc2: Disable clock gating feature on Rockchip SoCs ANDROID: ABI: Update symbol list for Exynos SoC ANDROID: Add symbols for IIO SCMI module ANDROID: KVM: arm64: Fix missing trace event for nVHE dyn HVCs ANDROID: Update the ABI symbol list ANDROID: Update symbols list for open-dice.ko ANDROID: Add symbols for IIO SCMI module ANDROID: GKI: Update symbols for rockchip UPSTREAM: usb: dwc2: disable lpm feature on Rockchip SoCs ANDROID: Update symbols list for open-dice.ko FROMLIST: mm/migrate: set swap entry values of THP tail pages properly. ANDROID: Update the ABI symbol list ANDROID: virt: gunyah: Move send_lock around req and reply ANDROID: null_blk: Support configuring the maximum segment size ANDROID: scsi_debug: Support configuring the maximum segment size ANDROID: block: Add support for filesystem requests and small segments ANDROID: block: Support submitting passthrough requests with small segments ANDROID: block: Make sub_page_limit_queues available in debugfs ANDROID: block: Support configuring limits below the page size ANDROID: block: Prepare for supporting sub-page limits ANDROID: block: Use pr_info() instead of printk(KERN_INFO ...) ANDROID: sound: usb: add vendor hook for cpu suspend support ANDROID: usb: Add vendor hook for usb suspend and resume ANDROID: fips140: change linker script guard Revert "ANDROID: Update symbols list for open-dice.ko" ANDROID: Update symbols list for open-dice.ko FROMGIT: PM: sleep: wakeirq: fix wake irq warning in system suspend ANDROID: ABI: Update symbol for Exynos SoC UPSTREAM: usb: dwc3: core: set force_gen1 bit in USB31 devices if max speed is SS UPSTREAM: PCI: dwc: Strengthen the MSI address allocation logic UPSTREAM: PCI: dwc: Restrict only coherent DMA mask for MSI address allocation ANDROID: ABI: Update oplus symbol list ANDROID: vendor_hook: rename the the name of hooks FROMGIT: usb: xhci: Add error handling in xhci_map_urb_for_dma FROMGIT: usb: dwc3: host: Set XHCI_SG_TRB_CACHE_SIZE_QUIRK FROMGIT: usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK ANDROID: fuse-bpf: Fix readdir for getdents Linux 6.1.78 netfilter: nft_set_rbtree: skip end interval element from gc net: stmmac: xgmac: fix a typo of register name in DPP safety handling ALSA: usb-audio: Sort quirk table entries net: stmmac: xgmac: use #define for string constants clocksource: Skip watchdog check for large watchdog intervals block: treat poll queue enter similarly to timeouts f2fs: add helper to check compression level RDMA/irdma: Fix support for 64k pages vhost: use kzalloc() instead of kmalloc() followed by memset() Revert "ASoC: amd: Add new dmi entries for acp5x platform" io_uring/net: fix sr->len for IORING_OP_RECV with MSG_WAITALL and buffers Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU hrtimer: Report offline hrtimer enqueue usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK usb: dwc3: host: Set XHCI_SG_TRB_CACHE_SIZE_QUIRK USB: serial: cp210x: add ID for IMST iM871A-USB USB: serial: option: add Fibocom FM101-GL variant USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e ALSA: usb-audio: add quirk for RODE NT-USB+ ALSA: usb-audio: Add a quirk for Yamaha YIT-W12TX transmitter ALSA: usb-audio: Add delay quirk for MOTU M Series 2nd revision mtd: parsers: ofpart: add workaround for #size-cells 0 fs: dlm: don't put dlm_local_addrs on heap blk-iocost: Fix an UBSAN shift-out-of-bounds warning scsi: core: Move scsi_host_busy() out of host lock if it is for per-command fs/ntfs3: Fix an NULL dereference bug netfilter: nft_set_pipapo: remove scratch_aligned pointer netfilter: nft_set_pipapo: add helper to release pcpu scratch area netfilter: nft_set_pipapo: store index in scratch maps netfilter: nft_ct: reject direction for ct id drm/amd/display: Implement bounds check for stream encoder creation in DCN301 netfilter: nft_compat: restrict match/target protocol to u16 netfilter: nft_compat: reject unused compat flag netfilter: nft_compat: narrow down revision to unsigned 8-bits selftests: cmsg_ipv6: repeat the exact packet ppp_async: limit MRU to 64K af_unix: Call kfree_skb() for dead unix_(sk)->oob_skb in GC. tipc: Check the bearer type before calling tipc_udp_nl_bearer_add() rxrpc: Fix response to PING RESPONSE ACKs to a dead call drm/i915/gvt: Fix uninitialized variable in handle_mmio() inet: read sk->sk_family once in inet_recv_error() hwmon: (coretemp) Fix bogus core_id to attr name mapping hwmon: (coretemp) Fix out-of-bounds memory access hwmon: (aspeed-pwm-tacho) mutex for tach reading octeontx2-pf: Fix a memleak otx2_sq_init atm: idt77252: fix a memleak in open_card_ubr0 tunnels: fix out of bounds access when building IPv6 PMTU error selftests: net: avoid just another constant wait selftests: net: cut more slack for gro fwd tests. net: atlantic: Fix DMA mapping for PTP hwts ring netdevsim: avoid potential loop in nsim_dev_trap_report_work() wifi: mac80211: fix waiting for beacons logic net: stmmac: xgmac: fix handling of DPP safety error for DMA channels drm/msm/dpu: check for valid hw_pp in dpu_encoder_helper_phys_cleanup drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case drm/msms/dp: fixed link clock divider bits be over written in BPC unknown case cifs: failure to add channel on iface should bump up weight phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV phy: renesas: rcar-gen3-usb2: Fix returning wrong error code dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA dmaengine: ti: k3-udma: Report short packet errors dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools ext4: regenerate buddy after block freeing failed if under fc replay Linux 6.1.77 drm/amdgpu: Fix missing error code in 'gmc_v6/7/8/9_0_hw_init()' ASoC: codecs: wsa883x: fix PA volume control ASoC: codecs: lpass-wsa-macro: fix compander volume hack bonding: remove print in bond_verify_device_path gve: Fix use-after-free vulnerability LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init() drm/msm/dsi: Enable runtime PM Revert "drm/amd/display: Disable PSR-SU on Parade 0803 TCON again" mm, kmsan: fix infinite recursion due to RCU critical section arm64: irq: set the correct node for shadow call stack selftests: bonding: Check initial state selftests: team: Add missing config options net: sysfs: Fix /sys/class/net/<iface> path selftests: net: fix available tunnels detection af_unix: fix lockdep positive in sk_diag_dump_icons() net: ipv4: fix a memleak in ip_setup_cork netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger netfilter: nf_tables: restrict tunnel object to NFPROTO_NETDEV netfilter: conntrack: correct window scaling with retransmitted SYN selftests: net: add missing config for GENEVE bridge: mcast: fix disabled snooping after long uptime llc: call sock_orphan() at release time ipv6: Ensure natural alignment of const ipv6 loopback and router addresses net: dsa: qca8k: fix illegal usage of GPIO ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550() ixgbe: Refactor overtemp event handling ixgbe: Refactor returning internal error codes tcp: add sanity checks to rx zerocopy net: lan966x: Fix port configuration when using SGMII interface ipmr: fix kernel panic when forwarding mcast packets ipv4: raw: add drop reasons ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv() selftests: net: give more time for GRO aggregation HID: hidraw: fix a problem of memory leak in hidraw_release() scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler regulator: ti-abb: don't use devm_platform_ioremap_resource_byname for shared interrupt register scsi: isci: Fix an error code problem in isci_io_request_build() drm: using mul_u32_u32() requires linux/math64.h wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update perf: Fix the nr_addr_filters fix drm/amdkfd: Fix 'node' NULL check in 'svm_range_get_range_boundaries()' drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()' drm/amdgpu: Fix with right return code '-EIO' in 'amdgpu_gmc_vram_checking()' drm/amd/powerplay: Fix kzalloc parameter 'ATOM_Tonga_PPM_Table' in 'get_platform_power_management_table()' ceph: fix invalid pointer access if get_quota_realm return ERR_PTR ceph: fix deadlock or deadcode of misusing dget() ceph: reinitialize mds feature bit even when session in open blk-mq: fix IO hang from sbitmap wakeup race virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings drm/amdkfd: Fix lock dependency warning with srcu drm/amdkfd: Fix lock dependency warning libsubcmd: Fix memory leak in uniq() misc: lis3lv02d_i2c: Add missing setting of the reg_ctrl callback 9p: Fix initialisation of netfs_inode for 9p PCI/AER: Decode Requester ID when no error info found PCI: Fix 64GT/s effective data rate calculation spmi: mediatek: Fix UAF on device remove fs/kernfs/dir: obey S_ISGID tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE selftests/sgx: Fix linker script asserts usb: hub: Add quirk to decrease IN-ep poll interval for Microchip USB491x hub usb: hub: Replace hardcoded quirk value with BIT() macro perf cs-etm: Bump minimum OpenCSD version to ensure a bugfix is present PCI: switchtec: Fix stdev_release() crash after surprise hot remove PCI: Only override AMD USB controller if required mailbox: arm_mhuv2: Fix a bug for mhuv2_sender_interrupt mfd: ti_am335x_tscadc: Fix TI SoC dependencies xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import i3c: master: cdns: Update maximum prescaler value for i2c clock um: time-travel: fix time corruption um: net: Fix return type of uml_net_start_xmit() um: Don't use vfprintf() for os_info() um: Fix naming clash between UML and scheduler leds: trigger: panic: Don't register panic notifier if creating the trigger failed ALSA: hda/conexant: Fix headset auto detect fail in cx8070 and SN6140 drm/amdkfd: Fix iterator used outside loop in 'kfd_add_peer_prop()' drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()' drm/amdgpu: Fix '*fw' from request_firmware() not released in 'amdgpu_ucode_request()' drm/amdgpu: Let KFD sync with VM fences drm/amdgpu: Fix ecc irq enable/disable unpaired clk: imx: clk-imx8qxp: fix LVDS bypass, pixel and phy clocks drm/amd/display: make flip_timestamp_in_us a 64-bit variable watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() clk: hi3620: Fix memory leak in hi3620_mmc_clk_init() drm/amdgpu: fix ftrace event amdgpu_bo_move always move on same heap drm/msm/dpu: fix writeback programming for YUV cases drm/msm/dpu: Ratelimit framedone timeout msgs drm/amd/display: For prefetch mode > 0, extend prefetch if possible media: i2c: imx335: Fix hblank min/max values media: ddbridge: fix an error code problem in ddb_probe media: amphion: remove mutext lock in condition of wait_event IB/ipoib: Fix mcast list locking drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time f2fs: fix to tag gcing flag on page during block migration hwmon: (nct6775) Fix fan speed set failure in automatic mode media: rkisp1: Fix IRQ disable race issue media: rkisp1: Store IRQ lines media: rkisp1: Fix IRQ handler return values media: rkisp1: Drop IRQF_SHARED ALSA: hda: Intel: add HDA_ARL PCI ID support PCI: add INTEL_HDA_ARL to pci_ids.h media: rockchip: rga: fix swizzling for RGB formats media: stk1160: Fixed high volume of stk1160_dbg messages drm/mipi-dsi: Fix detach call without attach drm/framebuffer: Fix use of uninitialized variable drm/drm_file: fix use of uninitialized variable ASoC: amd: Add new dmi entries for acp5x platform f2fs: fix write pointers on zoned device after roll forward drm/amd/display: Fix tiled display misalignment drm/bridge: anx7625: Fix Set HPD irq detect window to 2ms drm/panel-edp: Add override_edid_mode quirk for generic edp RDMA/IPoIB: Fix error code return in ipoib_mcast_join fast_dput(): handle underflows gracefully ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument ALSA: hda: Refer to correct stream index at loops f2fs: fix to check return value of f2fs_reserve_new_block() net: dsa: qca8k: put MDIO bus OF node on qca8k_mdio_register() failure octeontx2-af: Fix max NPC MCAM entry check while validating ref_entry i40e: Fix VF disable behavior to block all traffic bridge: cfm: fix enum typo in br_cc_ccm_tx_parse net/smc: disable SEID on non-s390 archs where virtual ISM may be used Bluetooth: L2CAP: Fix possible multiple reject send Bluetooth: hci_sync: fix BR/EDR wakeup bug Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 wifi: cfg80211: free beacon_ies when overridden from hidden BSS wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift() libbpf: Fix NULL pointer dereference in bpf_object__collect_prog_relos wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices arm64: dts: amlogic: fix format for s4 uart node ice: fix pre-shifted bit usage arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property md: Whenassemble the array, consult the superblock of the freshest device block: prevent an integer overflow in bvec_try_merge_hw_page net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path net: atlantic: eliminate double free in error handling logic ice: fix ICE_AQ_VSI_Q_OPT_RSS_* register values scsi: hisi_sas: Set .phy_attached before notifing phyup event HISI_PHYE_PHY_UP_PM ARM: dts: imx23/28: Fix the DMA controller node name ARM: dts: imx23-sansa: Use preferred i2c-gpios properties ARM: dts: imx27-apf27dev: Fix LED name ARM: dts: imx25/27: Pass timing0 ARM: dts: imx25: Fix the iim compatible string block/rnbd-srv: Check for unlikely string overflow ionic: bypass firmware cmds when stuck in reset ionic: pass opcode to devcmd_wait net: phy: at803x: fix passing the wrong reference for config_intr ARM: dts: imx1: Fix sram node ARM: dts: imx27: Fix sram node ARM: dts: imx: Use flash@0,0 pattern ARM: dts: imx25/27-eukrea: Fix RTC node name ARM: dts: rockchip: fix rk3036 hdmi ports node wifi: wfx: fix possible NULL pointer dereference in wfx_set_mfp_ap() bpf: Set uattr->batch.count as zero before batched update or deletion scsi: libfc: Fix up timeout error in fc_fcp_rec_error() scsi: libfc: Don't schedule abort twice bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers wifi: ath11k: fix race due to setting ATH11K_FLAG_EXT_IRQ_ENABLED too early wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus() ARM: dts: imx7s: Fix nand-controller #size-cells ARM: dts: imx7s: Fix lcdif compatible ARM: dts: imx7d: Fix coresight funnel ports scsi: arcmsr: Support new PCI device IDs 1883 and 1886 scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116 net: usb: ax88179_178a: avoid two consecutive device resets bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk PCI: Add no PM reset quirk for NVIDIA Spectrum devices scsi: lpfc: Fix possible file string name overflow when updating firmware soc: xilinx: fix unhandled SGI warning message soc: xilinx: Fix for call trace due to the usage of smp_processor_id() selftests/bpf: Fix issues in setup_classid_environment() wifi: rt2x00: correct wrong BBP register in RxDCOC calibration selftests/bpf: Fix pyperf180 compilation failure with clang18 selftests/bpf: satisfy compiler by having explicit return in btf test wifi: rt2x00: restart beacon queue when hardware reset ext4: avoid online resizing failures due to oversized flex bg ext4: remove unnecessary check from alloc_flex_gd() ext4: unify the type of flexbg_size to unsigned int ext4: fix inconsistent between segment fstrim and full fstrim ecryptfs: Reject casefold directory inodes SUNRPC: Fix a suspicious RCU usage warning KVM: s390: fix setting of fpc register s390/ptrace: handle setting of fpc register correctly s390/vfio-ap: fix sysfs status attribute for AP queue devices arch: consolidate arch_irq_work_raise prototypes jfs: fix array-index-out-of-bounds in diNewExt rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock() afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*() afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu() crypto: stm32/crc32 - fix parsing list of devices erofs: fix ztailpacking for subpage compressed blocks crypto: octeontx2 - Fix cptvf driver cleanup pstore/ram: Fix crash when setting number of cpus to an odd number jfs: fix uaf in jfs_evict_inode jfs: fix array-index-out-of-bounds in dbAdjTree jfs: fix slab-out-of-bounds Read in dtSearch UBSAN: array-index-out-of-bounds in dtSplitRoot FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events PM / devfreq: Synchronize devfreq_monitor_[start/stop] ACPI: NUMA: Fix the logic of getting the fake_pxm value ACPI: extlog: fix NULL pointer dereference check PNP: ACPI: fix fortify warning ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop audit: Send netlink ACK before setting connection in auditd_set regulator: core: Only increment use_count when enable_count changes debugobjects: Stop accessing objects after releasing hash bucket lock perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel powerpc/lib: Validate size for vector operations powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE x86/boot: Ignore NMIs during very early boot powerpc/64s: Fix CONFIG_NUMA=n build due to create_section_mapping() powerpc/mm: Fix build failures due to arch_reserved_kernel_pages() powerpc: Fix build error due to is_valid_bugaddr() drivers/perf: pmuv3: don't expose SW_INCR event in sysfs arm64: irq: set the correct node for VMAP stack powerpc/mm: Fix null-pointer dereference in pgtable_cache_add asm-generic: make sparse happy with odd-sized put_unaligned_*() Linux 6.1.76 net/mlx5e: Handle hardware IPsec limits events serial: core: fix kernel-doc for uart_port_unlock_irqrestore() x86/entry/ia32: Ensure s32 is sign extended to s64 tick/sched: Preserve number of idle sleeps across CPU hotplug events mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan cxl/region:Fix overflow issue in alloc_hpa() MIPS: lantiq: register smp_ops on non-smp platforms spi: fix finalize message on error return spi: bcm-qspi: fix SFDP BFPT read by usig mspi read drm/bridge: anx7625: Ensure bridge is suspended in disable() block: Move checking GENHD_FL_NO_PART to bdev_add_partition() gpio: eic-sprd: Clear interrupt after set the interrupt type drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume drm/exynos: fix accidental on-stack copy of exynos_drm_plane drm/bridge: parade-ps8640: Make sure we drop the AUX mutex in the error case drm/bridge: parade-ps8640: Ensure bridge is suspended in .post_disable() drm/bridge: sii902x: Fix audio codec unregistration drm/bridge: sii902x: Fix probing race issue drm/bridge: sii902x: Use devm_regulator_bulk_get_enable() drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33] drm/bridge: parade-ps8640: Wait for HPD when doing an AUX transfer Revert "powerpc/64s: Increase default stack size to 32KB" drm/panel-edp: drm/panel-edp: Fix AUO B116XAK01 name and timing btrfs: zoned: optimize hint byte for zoned allocator btrfs: zoned: factor out prepare_allocation_zoned() serial: sc16is7xx: fix unconditional activation of THRI interrupt serial: sc16is7xx: Use port lock wrappers serial: core: Provide port lock wrappers dlm: use kernel_connect() and kernel_bind() ARM: dts: qcom: sdx55: fix USB SS wakeup ARM: dts: qcom: sdx55: fix USB DP/DM HS PHY interrupts ARM: dts: qcom: sdx55: fix pdc '#interrupt-cells' ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12 ARM: dts: qcom: sdx55: fix USB wakeup interrupt types pipe: wakeup wr_wait after setting max_usage fs/pipe: move check to pipe_has_watch_queue() thermal: intel: hfi: Add syscore callbacks for system-wide PM thermal: intel: hfi: Disable an HFI instance when all its CPUs go offline thermal: intel: hfi: Refactor enabling code into helper functions PM: sleep: Fix possible deadlocks in core system-wide PM code PM: core: Remove unnecessary (void *) conversions bus: mhi: ep: Do not allocate event ring element on stack media: ov13b10: Enable runtime PM before registering async sub-device media: ov13b10: Support device probe in non-zero ACPI D state erofs: fix lz4 inplace decompression erofs: get rid of the remaining kmap_atomic() drm/amdgpu/pm: Fix the power source flag error drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A drm/bridge: nxp-ptn3460: simplify some error checking platform/x86: intel-uncore-freq: Fix types in sysfs callbacks drm/amd/display: Disable PSR-SU on Parade 0803 TCON again drm/tidss: Fix atomic_flush check drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking drm: Don't unref the same fb many times by mistake due to deadlock handling cpufreq: intel_pstate: Refine computation of P-state for given frequency gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04 xfs: read only mounts with fsopen mount API are busted firmware: arm_scmi: Check mailbox/SMT channel for consistency ksmbd: fix global oob in ksmbd_nl_policy platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe netfilter: nf_tables: reject QUEUE/DROP verdict parameters netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes wifi: iwlwifi: fix a memory corruption exec: Fix error handling in begin_new_exec() rbd: don't move requests to the running list on errors btrfs: don't abort filesystem when attempting to snapshot deleted subvolume btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args btrfs: don't warn if discard range is not aligned to sector btrfs: tree-checker: fix inline ref size in error messages btrfs: ref-verify: free ref cache before clearing mount opt btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted nbd: always initialize struct msghdr completely net: fec: fix the unhandled context fault from smmu fjes: fix memleaks in fjes_hw_setup selftests: netdevsim: fix the udp_tunnel_nic test net: mvpp2: clear BM pool before initialization net: stmmac: Wait a bit for the reset to take effect netfilter: nf_tables: validate NFPROTO_* family netfilter: nf_tables: restrict anonymous set and map names to 16 bytes btrfs: fix race between reading a directory and adding entries to it btrfs: refresh dir last index during a rewinddir(3) call btrfs: set last dir index to the current last index when opening dir btrfs: fix infinite directory reads netfilter: nft_limit: reject configurations that cause integer overflow rcu: Defer RCU kthreads wakeup when CPU is dying net/mlx5e: fix a potential double-free in fs_any_create_groups net/mlx5e: fix a double-free in arfs_create_groups net/mlx5e: Allow software parsing when IPsec crypto is enabled net/mlx5: Use mlx5 device constant for selecting CQ period mode for ASO net/mlx5: DR, Can't go to uplink vport on RX rule net/mlx5: DR, Use the right GVMI number for drop action ipv6: init the accept_queue's spinlocks in inet6_create netlink: fix potential sleeping issue in mqueue_flush_file tcp: Add memory barrier to tcp_push() afs: Hide silly-rename files from userspace tracing: Ensure visibility when inserting an element into tracing_map netfs, fscache: Prevent Oops in fscache_put_cache() net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv net: micrel: Fix PTP frame parsing for lan8814 tun: add missing rx stats accounting in tun_xdp_act tun: fix missing dropped counter in tun_xdp_act net: fix removing a namespace with conflicting altnames udp: fix busy polling llc: Drop support for ETH_P_TR_802_2. llc: make llc_ui_sendmsg() more robust against bonding changes vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING bnxt_en: Wait for FLR to complete during probe tcp: make sure init the accept_queue's spinlocks once net/smc: fix illegal rmb_desc access in SMC-D connection dump wifi: mac80211: fix potential sta-link leak drm/amd/display: pbn_div need be updated for hotplug event Revert "drm/amd: Enable PCIe PME from D3" ksmbd: Add missing set_freezable() for freezable kthread ksmbd: send lease break notification on FILE_RENAME_INFORMATION ksmbd: don't increment epoch if current state and request state are same ksmbd: fix potential circular locking issue in smb2_set_ea() ksmbd: set v2 lease version on lease upgrade mm: page_alloc: unreserve highatomic page blocks before oom LoongArch/smp: Call rcutree_report_cpu_starting() earlier serial: sc16is7xx: improve do/while loop in sc16is7xx_irq() serial: sc16is7xx: remove obsolete loop in sc16is7xx_port_irq() serial: sc16is7xx: fix invalid sc16is7xx_lines bitfield in case of probe error serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO serial: sc16is7xx: change EFR lock to operate on each channels serial: sc16is7xx: remove unused line structure member serial: sc16is7xx: remove global regmap from struct sc16is7xx_port serial: sc16is7xx: remove wasteful static buffer in sc16is7xx_regmap_name() serial: sc16is7xx: improve regmap debugfs by using one regmap per port rename(): fix the locking of subdirectories mm/sparsemem: fix race in accessing memory_section->usage mm/rmap: fix misplaced parenthesis of a likely() ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path nouveau/vmm: don't set addr on the fail path to avoid warning rtc: Extend timeout for waiting for UIP to clear to 1s rtc: Add support for configuring the UIP timeout for RTC reads rtc: mc146818-lib: Adjust failure return code for mc146818_get_time() rtc: Adjust failure return code for cmos_set_alarm() rtc: cmos: Use ACPI alarm for non-Intel x86 systems too arm64: Rename ARM64_WORKAROUND_2966298 media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run mmc: mmc_spi: remove custom DMA mapped buffers mmc: core: Use mrq.sbc in close-ended ffu media: videobuf2-dma-sg: fix vmap callback scripts/get_abi: fix source path leak docs: kernel_abi.py: fix command injection lsm: new security_file_ioctl_compat() hook arm64: dts: qcom: sm8150: fix USB DP/DM HS PHY interrupts arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts arm64: dts: qcom: sc7280: fix usb_1 wakeup interrupt types arm64: dts: qcom: sm8150: fix USB wakeup interrupt types arm64: dts: qcom: sdm845: fix USB wakeup interrupt types arm64: dts: qcom: sc7180: fix USB wakeup interrupt types scsi: ufs: core: Remove the ufshcd_hba_exit() call from ufshcd_async_scan() dmaengine: fix NULL pointer in channel unregistration function iio: adc: ad7091r: Enable internal vref if external vref is not supplied async: Introduce async_schedule_dev_nocall() async: Split async_schedule_node_domain() parisc/power: Fix power soft-off button emulation on qemu parisc/firmware: Fix F-extend for PDC addresses bus: mhi: host: Add spinlock to protect WP access when queueing TREs bus: mhi: host: Drop chan lock before queuing buffers bus: mhi: host: Add alignment check for event ring read pointer mips: Fix max_mapnr being uninitialized on early stages s390/vfio-ap: let on_scan_complete() callback filter matrix and update guest's APCB s390/vfio-ap: loop over the shadow APCB when filtering guest's AP configuration s390/vfio-ap: always filter entire AP matrix media: ov9734: Enable runtime PM before registering async sub-device rpmsg: virtio: Free driver_override when rpmsg_remove() media: imx355: Enable runtime PM before registering async sub-device PM / devfreq: Fix buffer overflow in trans_stat_show s390/vfio-ap: unpin pages on gisc registration failure crypto: s390/aes - Fix buffer overread in CTR mode hwrng: core - Fix page fault dead lock on mmap-ed hwrng PM: hibernate: Enforce ordering during image compression/decompression crypto: api - Disallow identical driver names btrfs: sysfs: validate scrub_speed_max value OPP: Pass rounded rate to _set_opp() arm64: properly install vmlinuz.efi ext4: allow for the last group to be marked as trimmed iio: adc: ad7091r: Allow users to configure device events iio: adc: ad7091r: Set alert bit in config register Revert "nSVM: Check for reserved encodings of TLB_CONTROL in nested VMCB" usb: dwc3: gadget: Handle EP0 request dequeuing properly usb: dwc3: gadget: Queue PM runtime idle on disconnect event usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API Conflicts: Documentation/devicetree/bindings Documentation/devicetree/bindings/gpio/xlnx,gpio-xilinx.yaml Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml Documentation/devicetree/bindings/media/mediatek,mdp3-wrot.yaml Documentation/devicetree/bindings/media/rockchip-isp1.yaml Documentation/devicetree/bindings/nvmem/mxs-ocotp.yaml drivers/bus/mhi/host/main.c drivers/clk/qcom/videocc-sm8150.c drivers/soc/qcom/llcc-qcom.c include/dt-bindings/clock/qcom,videocc-sm8150.h Change-Id: I736b858a11a53d39b1a31aaa270d6508d9d527ba Upstream-Build: ks_qcom-android14-6.1-keystone-qcom-release@12087153 UKQ2.240714.001 Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2044 lines
64 KiB
Plaintext
2044 lines
64 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config CC_VERSION_TEXT
|
|
string
|
|
default "$(CC_VERSION_TEXT)"
|
|
help
|
|
This is used in unclear ways:
|
|
|
|
- Re-run Kconfig when the compiler is updated
|
|
The 'default' property references the environment variable,
|
|
CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
|
|
When the compiler is updated, Kconfig will be invoked.
|
|
|
|
- Ensure full rebuild when the compiler is updated
|
|
include/linux/compiler-version.h contains this option in the comment
|
|
line so fixdep adds include/config/CC_VERSION_TEXT into the
|
|
auto-generated dependency. When the compiler is updated, syncconfig
|
|
will touch it and then every file will be rebuilt.
|
|
|
|
config CC_IS_GCC
|
|
def_bool $(success,test "$(cc-name)" = GCC)
|
|
|
|
config GCC_VERSION
|
|
int
|
|
default $(cc-version) if CC_IS_GCC
|
|
default 0
|
|
|
|
config CC_IS_CLANG
|
|
def_bool $(success,test "$(cc-name)" = Clang)
|
|
|
|
config CLANG_VERSION
|
|
int
|
|
default $(cc-version) if CC_IS_CLANG
|
|
default 0
|
|
|
|
config AS_IS_GNU
|
|
def_bool $(success,test "$(as-name)" = GNU)
|
|
|
|
config AS_IS_LLVM
|
|
def_bool $(success,test "$(as-name)" = LLVM)
|
|
|
|
config AS_VERSION
|
|
int
|
|
# Use clang version if this is the integrated assembler
|
|
default CLANG_VERSION if AS_IS_LLVM
|
|
default $(as-version)
|
|
|
|
config LD_IS_BFD
|
|
def_bool $(success,test "$(ld-name)" = BFD)
|
|
|
|
config LD_VERSION
|
|
int
|
|
default $(ld-version) if LD_IS_BFD
|
|
default 0
|
|
|
|
config LD_IS_LLD
|
|
def_bool $(success,test "$(ld-name)" = LLD)
|
|
|
|
config LLD_VERSION
|
|
int
|
|
default $(ld-version) if LD_IS_LLD
|
|
default 0
|
|
|
|
config RUST_IS_AVAILABLE
|
|
def_bool $(success,$(srctree)/scripts/rust_is_available.sh)
|
|
help
|
|
This shows whether a suitable Rust toolchain is available (found).
|
|
|
|
Please see Documentation/rust/quick-start.rst for instructions on how
|
|
to satisfy the build requirements of Rust support.
|
|
|
|
In particular, the Makefile target 'rustavailable' is useful to check
|
|
why the Rust toolchain is not being detected.
|
|
|
|
config CC_CAN_LINK
|
|
bool
|
|
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT
|
|
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag))
|
|
|
|
config CC_CAN_LINK_STATIC
|
|
bool
|
|
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag) -static) if 64BIT
|
|
default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag) -static)
|
|
|
|
config CC_HAS_ASM_GOTO_OUTPUT
|
|
def_bool $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
|
|
|
|
config CC_HAS_ASM_GOTO_TIED_OUTPUT
|
|
depends on CC_HAS_ASM_GOTO_OUTPUT
|
|
# Detect buggy gcc and clang, fixed in gcc-11 clang-14.
|
|
def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
|
|
|
|
config TOOLS_SUPPORT_RELR
|
|
def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
|
|
|
|
config CC_HAS_ASM_INLINE
|
|
def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
|
|
|
|
config CC_HAS_NO_PROFILE_FN_ATTR
|
|
def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)
|
|
|
|
config PAHOLE_VERSION
|
|
int
|
|
default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE))
|
|
|
|
config CONSTRUCTORS
|
|
bool
|
|
|
|
config IRQ_WORK
|
|
bool
|
|
|
|
config BUILDTIME_TABLE_SORT
|
|
bool
|
|
|
|
config THREAD_INFO_IN_TASK
|
|
bool
|
|
help
|
|
Select this to move thread_info off the stack into task_struct. To
|
|
make this work, an arch will need to remove all thread_info fields
|
|
except flags and fix any runtime bugs.
|
|
|
|
One subtle change that will be needed is to use try_get_task_stack()
|
|
and put_task_stack() in save_thread_stack_tsk() and get_wchan().
|
|
|
|
menu "General setup"
|
|
|
|
config BROKEN
|
|
bool
|
|
|
|
config BROKEN_ON_SMP
|
|
bool
|
|
depends on BROKEN || !SMP
|
|
default y
|
|
|
|
config INIT_ENV_ARG_LIMIT
|
|
int
|
|
default 32 if !UML
|
|
default 128 if UML
|
|
help
|
|
Maximum of each of the number of arguments and environment
|
|
variables passed to init from the kernel command line.
|
|
|
|
config COMPILE_TEST
|
|
bool "Compile also drivers which will not load"
|
|
depends on HAS_IOMEM
|
|
help
|
|
Some drivers can be compiled on a different platform than they are
|
|
intended to be run on. Despite they cannot be loaded there (or even
|
|
when they load they cannot be used due to missing HW support),
|
|
developers still, opposing to distributors, might want to build such
|
|
drivers to compile-test them.
|
|
|
|
If you are a developer and want to build everything available, say Y
|
|
here. If you are a user/distributor, say N here to exclude useless
|
|
drivers to be distributed.
|
|
|
|
config WERROR
|
|
bool "Compile the kernel with warnings as errors"
|
|
default y
|
|
help
|
|
A kernel build should not cause any compiler warnings, and this
|
|
enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
|
|
to enforce that rule by default.
|
|
|
|
However, if you have a new (or very old) compiler with odd and
|
|
unusual warnings, or you have some architecture with problems,
|
|
you may need to disable this config option in order to
|
|
successfully build the kernel.
|
|
|
|
If in doubt, say Y.
|
|
|
|
config UAPI_HEADER_TEST
|
|
bool "Compile test UAPI headers"
|
|
depends on HEADERS_INSTALL && CC_CAN_LINK
|
|
help
|
|
Compile test headers exported to user-space to ensure they are
|
|
self-contained, i.e. compilable as standalone units.
|
|
|
|
If you are a developer or tester and want to ensure the exported
|
|
headers are self-contained, say Y here. Otherwise, choose N.
|
|
|
|
config LOCALVERSION
|
|
string "Local version - append to kernel release"
|
|
help
|
|
Append an extra string to the end of your kernel version.
|
|
This will show up when you type uname, for example.
|
|
The string you set here will be appended after the contents of
|
|
any files with a filename matching localversion* in your
|
|
object and source tree, in that order. Your total string can
|
|
be a maximum of 64 characters.
|
|
|
|
config LOCALVERSION_AUTO
|
|
bool "Automatically append version information to the version string"
|
|
default y
|
|
depends on !COMPILE_TEST
|
|
help
|
|
This will try to automatically determine if the current tree is a
|
|
release tree by looking for git tags that belong to the current
|
|
top of tree revision.
|
|
|
|
A string of the format -gxxxxxxxx will be added to the localversion
|
|
if a git-based tree is found. The string generated by this will be
|
|
appended after any matching localversion* files, and after the value
|
|
set in CONFIG_LOCALVERSION.
|
|
|
|
(The actual string used here is the first eight characters produced
|
|
by running the command:
|
|
|
|
$ git rev-parse --verify HEAD
|
|
|
|
which is done within the script "scripts/setlocalversion".)
|
|
|
|
config BUILD_SALT
|
|
string "Build ID Salt"
|
|
default ""
|
|
help
|
|
The build ID is used to link binaries and their debug info. Setting
|
|
this option will use the value in the calculation of the build id.
|
|
This is mostly useful for distributions which want to ensure the
|
|
build is unique between builds. It's safe to leave the default.
|
|
|
|
config HAVE_KERNEL_GZIP
|
|
bool
|
|
|
|
config HAVE_KERNEL_BZIP2
|
|
bool
|
|
|
|
config HAVE_KERNEL_LZMA
|
|
bool
|
|
|
|
config HAVE_KERNEL_XZ
|
|
bool
|
|
|
|
config HAVE_KERNEL_LZO
|
|
bool
|
|
|
|
config HAVE_KERNEL_LZ4
|
|
bool
|
|
|
|
config HAVE_KERNEL_ZSTD
|
|
bool
|
|
|
|
config HAVE_KERNEL_UNCOMPRESSED
|
|
bool
|
|
|
|
choice
|
|
prompt "Kernel compression mode"
|
|
default KERNEL_GZIP
|
|
depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_ZSTD || HAVE_KERNEL_UNCOMPRESSED
|
|
help
|
|
The linux kernel is a kind of self-extracting executable.
|
|
Several compression algorithms are available, which differ
|
|
in efficiency, compression and decompression speed.
|
|
Compression speed is only relevant when building a kernel.
|
|
Decompression speed is relevant at each boot.
|
|
|
|
If you have any problems with bzip2 or lzma compressed
|
|
kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older
|
|
version of this functionality (bzip2 only), for 2.4, was
|
|
supplied by Christian Ludwig)
|
|
|
|
High compression options are mostly useful for users, who
|
|
are low on disk space (embedded systems), but for whom ram
|
|
size matters less.
|
|
|
|
If in doubt, select 'gzip'
|
|
|
|
config KERNEL_GZIP
|
|
bool "Gzip"
|
|
depends on HAVE_KERNEL_GZIP
|
|
help
|
|
The old and tried gzip compression. It provides a good balance
|
|
between compression ratio and decompression speed.
|
|
|
|
config KERNEL_BZIP2
|
|
bool "Bzip2"
|
|
depends on HAVE_KERNEL_BZIP2
|
|
help
|
|
Its compression ratio and speed is intermediate.
|
|
Decompression speed is slowest among the choices. The kernel
|
|
size is about 10% smaller with bzip2, in comparison to gzip.
|
|
Bzip2 uses a large amount of memory. For modern kernels you
|
|
will need at least 8MB RAM or more for booting.
|
|
|
|
config KERNEL_LZMA
|
|
bool "LZMA"
|
|
depends on HAVE_KERNEL_LZMA
|
|
help
|
|
This compression algorithm's ratio is best. Decompression speed
|
|
is between gzip and bzip2. Compression is slowest.
|
|
The kernel size is about 33% smaller with LZMA in comparison to gzip.
|
|
|
|
config KERNEL_XZ
|
|
bool "XZ"
|
|
depends on HAVE_KERNEL_XZ
|
|
help
|
|
XZ uses the LZMA2 algorithm and instruction set specific
|
|
BCJ filters which can improve compression ratio of executable
|
|
code. The size of the kernel is about 30% smaller with XZ in
|
|
comparison to gzip. On architectures for which there is a BCJ
|
|
filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ
|
|
will create a few percent smaller kernel than plain LZMA.
|
|
|
|
The speed is about the same as with LZMA: The decompression
|
|
speed of XZ is better than that of bzip2 but worse than gzip
|
|
and LZO. Compression is slow.
|
|
|
|
config KERNEL_LZO
|
|
bool "LZO"
|
|
depends on HAVE_KERNEL_LZO
|
|
help
|
|
Its compression ratio is the poorest among the choices. The kernel
|
|
size is about 10% bigger than gzip; however its speed
|
|
(both compression and decompression) is the fastest.
|
|
|
|
config KERNEL_LZ4
|
|
bool "LZ4"
|
|
depends on HAVE_KERNEL_LZ4
|
|
help
|
|
LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
|
|
A preliminary version of LZ4 de/compression tool is available at
|
|
<https://code.google.com/p/lz4/>.
|
|
|
|
Its compression ratio is worse than LZO. The size of the kernel
|
|
is about 8% bigger than LZO. But the decompression speed is
|
|
faster than LZO.
|
|
|
|
config KERNEL_ZSTD
|
|
bool "ZSTD"
|
|
depends on HAVE_KERNEL_ZSTD
|
|
help
|
|
ZSTD is a compression algorithm targeting intermediate compression
|
|
with fast decompression speed. It will compress better than GZIP and
|
|
decompress around the same speed as LZO, but slower than LZ4. You
|
|
will need at least 192 KB RAM or more for booting. The zstd command
|
|
line tool is required for compression.
|
|
|
|
config KERNEL_UNCOMPRESSED
|
|
bool "None"
|
|
depends on HAVE_KERNEL_UNCOMPRESSED
|
|
help
|
|
Produce uncompressed kernel image. This option is usually not what
|
|
you want. It is useful for debugging the kernel in slow simulation
|
|
environments, where decompressing and moving the kernel is awfully
|
|
slow. This option allows early boot code to skip the decompressor
|
|
and jump right at uncompressed kernel image.
|
|
|
|
endchoice
|
|
|
|
config DEFAULT_INIT
|
|
string "Default init path"
|
|
default ""
|
|
help
|
|
This option determines the default init for the system if no init=
|
|
option is passed on the kernel command line. If the requested path is
|
|
not present, we will still then move on to attempting further
|
|
locations (e.g. /sbin/init, etc). If this is empty, we will just use
|
|
the fallback list when init= is not passed.
|
|
|
|
config DEFAULT_HOSTNAME
|
|
string "Default hostname"
|
|
default "(none)"
|
|
help
|
|
This option determines the default system hostname before userspace
|
|
calls sethostname(2). The kernel traditionally uses "(none)" here,
|
|
but you may wish to use a different default here to make a minimal
|
|
system more usable with less configuration.
|
|
|
|
config SYSVIPC
|
|
bool "System V IPC"
|
|
help
|
|
Inter Process Communication is a suite of library functions and
|
|
system calls which let processes (running programs) synchronize and
|
|
exchange information. It is generally considered to be a good thing,
|
|
and some programs won't run unless you say Y here. In particular, if
|
|
you want to run the DOS emulator dosemu under Linux (read the
|
|
DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
|
|
you'll need to say Y here.
|
|
|
|
You can find documentation about IPC with "info ipc" and also in
|
|
section 6.4 of the Linux Programmer's Guide, available from
|
|
<http://www.tldp.org/guides.html>.
|
|
|
|
config SYSVIPC_SYSCTL
|
|
bool
|
|
depends on SYSVIPC
|
|
depends on SYSCTL
|
|
default y
|
|
|
|
config SYSVIPC_COMPAT
|
|
def_bool y
|
|
depends on COMPAT && SYSVIPC
|
|
|
|
config POSIX_MQUEUE
|
|
bool "POSIX Message Queues"
|
|
depends on NET
|
|
help
|
|
POSIX variant of message queues is a part of IPC. In POSIX message
|
|
queues every message has a priority which decides about succession
|
|
of receiving it by a process. If you want to compile and run
|
|
programs written e.g. for Solaris with use of its POSIX message
|
|
queues (functions mq_*) say Y here.
|
|
|
|
POSIX message queues are visible as a filesystem called 'mqueue'
|
|
and can be mounted somewhere if you want to do filesystem
|
|
operations on message queues.
|
|
|
|
If unsure, say Y.
|
|
|
|
config POSIX_MQUEUE_SYSCTL
|
|
bool
|
|
depends on POSIX_MQUEUE
|
|
depends on SYSCTL
|
|
default y
|
|
|
|
config WATCH_QUEUE
|
|
bool "General notification queue"
|
|
default n
|
|
help
|
|
|
|
This is a general notification queue for the kernel to pass events to
|
|
userspace by splicing them into pipes. It can be used in conjunction
|
|
with watches for key/keyring change notifications and device
|
|
notifications.
|
|
|
|
See Documentation/core-api/watch_queue.rst
|
|
|
|
config CROSS_MEMORY_ATTACH
|
|
bool "Enable process_vm_readv/writev syscalls"
|
|
depends on MMU
|
|
default y
|
|
help
|
|
Enabling this option adds the system calls process_vm_readv and
|
|
process_vm_writev which allow a process with the correct privileges
|
|
to directly read from or write to another process' address space.
|
|
See the man page for more details.
|
|
|
|
config USELIB
|
|
bool "uselib syscall (for libc5 and earlier)"
|
|
default ALPHA || M68K || SPARC
|
|
help
|
|
This option enables the uselib syscall, a system call used in the
|
|
dynamic linker from libc5 and earlier. glibc does not use this
|
|
system call. If you intend to run programs built on libc5 or
|
|
earlier, you may need to enable this syscall. Current systems
|
|
running glibc can safely disable this.
|
|
|
|
config AUDIT
|
|
bool "Auditing support"
|
|
depends on NET
|
|
help
|
|
Enable auditing infrastructure that can be used with another
|
|
kernel subsystem, such as SELinux (which requires this for
|
|
logging of avc messages output). System call auditing is included
|
|
on architectures which support it.
|
|
|
|
config HAVE_ARCH_AUDITSYSCALL
|
|
bool
|
|
|
|
config AUDITSYSCALL
|
|
def_bool y
|
|
depends on AUDIT && HAVE_ARCH_AUDITSYSCALL
|
|
select FSNOTIFY
|
|
|
|
source "kernel/irq/Kconfig"
|
|
source "kernel/time/Kconfig"
|
|
source "kernel/bpf/Kconfig"
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
menu "CPU/Task time and stats accounting"
|
|
|
|
config VIRT_CPU_ACCOUNTING
|
|
bool
|
|
|
|
choice
|
|
prompt "Cputime accounting"
|
|
default TICK_CPU_ACCOUNTING
|
|
|
|
# Kind of a stub config for the pure tick based cputime accounting
|
|
config TICK_CPU_ACCOUNTING
|
|
bool "Simple tick based cputime accounting"
|
|
depends on !S390 && !NO_HZ_FULL
|
|
help
|
|
This is the basic tick based cputime accounting that maintains
|
|
statistics about user, system and idle time spent on per jiffies
|
|
granularity.
|
|
|
|
If unsure, say Y.
|
|
|
|
config VIRT_CPU_ACCOUNTING_NATIVE
|
|
bool "Deterministic task and CPU time accounting"
|
|
depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL
|
|
select VIRT_CPU_ACCOUNTING
|
|
help
|
|
Select this option to enable more accurate task and CPU time
|
|
accounting. This is done by reading a CPU counter on each
|
|
kernel entry and exit and on transitions within the kernel
|
|
between system, softirq and hardirq state, so there is a
|
|
small performance impact. In the case of s390 or IBM POWER > 5,
|
|
this also enables accounting of stolen time on logically-partitioned
|
|
systems.
|
|
|
|
config VIRT_CPU_ACCOUNTING_GEN
|
|
bool "Full dynticks CPU time accounting"
|
|
depends on HAVE_CONTEXT_TRACKING_USER
|
|
depends on HAVE_VIRT_CPU_ACCOUNTING_GEN
|
|
depends on GENERIC_CLOCKEVENTS
|
|
select VIRT_CPU_ACCOUNTING
|
|
select CONTEXT_TRACKING_USER
|
|
help
|
|
Select this option to enable task and CPU time accounting on full
|
|
dynticks systems. This accounting is implemented by watching every
|
|
kernel-user boundaries using the context tracking subsystem.
|
|
The accounting is thus performed at the expense of some significant
|
|
overhead.
|
|
|
|
For now this is only useful if you are working on the full
|
|
dynticks subsystem development.
|
|
|
|
If unsure, say N.
|
|
|
|
endchoice
|
|
|
|
config IRQ_TIME_ACCOUNTING
|
|
bool "Fine granularity task level IRQ time accounting"
|
|
depends on HAVE_IRQ_TIME_ACCOUNTING && !VIRT_CPU_ACCOUNTING_NATIVE
|
|
help
|
|
Select this option to enable fine granularity task irq time
|
|
accounting. This is done by reading a timestamp on each
|
|
transitions between softirq and hardirq state, so there can be a
|
|
small performance impact.
|
|
|
|
If in doubt, say N here.
|
|
|
|
config HAVE_SCHED_AVG_IRQ
|
|
def_bool y
|
|
depends on IRQ_TIME_ACCOUNTING || PARAVIRT_TIME_ACCOUNTING
|
|
depends on SMP
|
|
|
|
config SCHED_THERMAL_PRESSURE
|
|
bool
|
|
default y if ARM && ARM_CPU_TOPOLOGY
|
|
default y if ARM64
|
|
depends on SMP
|
|
depends on CPU_FREQ_THERMAL
|
|
help
|
|
Select this option to enable thermal pressure accounting in the
|
|
scheduler. Thermal pressure is the value conveyed to the scheduler
|
|
that reflects the reduction in CPU compute capacity resulted from
|
|
thermal throttling. Thermal throttling occurs when the performance of
|
|
a CPU is capped due to high operating temperatures.
|
|
|
|
If selected, the scheduler will be able to balance tasks accordingly,
|
|
i.e. put less load on throttled CPUs than on non/less throttled ones.
|
|
|
|
This requires the architecture to implement
|
|
arch_update_thermal_pressure() and arch_scale_thermal_pressure().
|
|
|
|
config BSD_PROCESS_ACCT
|
|
bool "BSD Process Accounting"
|
|
depends on MULTIUSER
|
|
help
|
|
If you say Y here, a user level program will be able to instruct the
|
|
kernel (via a special system call) to write process accounting
|
|
information to a file: whenever a process exits, information about
|
|
that process will be appended to the file by the kernel. The
|
|
information includes things such as creation time, owning user,
|
|
command name, memory usage, controlling terminal etc. (the complete
|
|
list is in the struct acct in <file:include/linux/acct.h>). It is
|
|
up to the user level program to do useful things with this
|
|
information. This is generally a good idea, so say Y.
|
|
|
|
config BSD_PROCESS_ACCT_V3
|
|
bool "BSD Process Accounting version 3 file format"
|
|
depends on BSD_PROCESS_ACCT
|
|
default n
|
|
help
|
|
If you say Y here, the process accounting information is written
|
|
in a new file format that also logs the process IDs of each
|
|
process and its parent. Note that this file format is incompatible
|
|
with previous v0/v1/v2 file formats, so you will need updated tools
|
|
for processing it. A preliminary version of these tools is available
|
|
at <http://www.gnu.org/software/acct/>.
|
|
|
|
config TASKSTATS
|
|
bool "Export task/process statistics through netlink"
|
|
depends on NET
|
|
depends on MULTIUSER
|
|
default n
|
|
help
|
|
Export selected statistics for tasks/processes through the
|
|
generic netlink interface. Unlike BSD process accounting, the
|
|
statistics are available during the lifetime of tasks/processes as
|
|
responses to commands. Like BSD accounting, they are sent to user
|
|
space on task exit.
|
|
|
|
Say N if unsure.
|
|
|
|
config MSM_SYSSTATS
|
|
tristate "Export system/task statistics through netlink"
|
|
depends on NET
|
|
depends on MULTIUSER
|
|
help
|
|
Export system and task statistics through generic netlink
|
|
interface. Userspace can retrieve these statistics via netlink
|
|
socket.
|
|
If unsure, say N
|
|
|
|
config MSM_SYSSTATS_STUB_NONEXPORTED_SYMBOLS
|
|
bool "Stub out non-exported core-kernel symbols"
|
|
depends on MSM_SYSSTATS
|
|
help
|
|
Stub out is_system_dmabufheap(), vmalloc_nr_pages() and si_swapinfo().
|
|
Enabling this option will make the swap_used, swap_total and
|
|
vmalloc_total fields of struct sysstats_mem 0, and will make the
|
|
unreclaimable field either 0, or make it only include the KGSL memory.
|
|
If unsure, say N.
|
|
|
|
config TASK_DELAY_ACCT
|
|
bool "Enable per-task delay accounting"
|
|
depends on TASKSTATS
|
|
select SCHED_INFO
|
|
help
|
|
Collect information on time spent by a task waiting for system
|
|
resources like cpu, synchronous block I/O completion and swapping
|
|
in pages. Such statistics can help in setting a task's priorities
|
|
relative to other tasks for cpu, io, rss limits etc.
|
|
|
|
Say N if unsure.
|
|
|
|
config TASK_XACCT
|
|
bool "Enable extended accounting over taskstats"
|
|
depends on TASKSTATS
|
|
help
|
|
Collect extended task accounting data and send the data
|
|
to userland for processing over the taskstats interface.
|
|
|
|
Say N if unsure.
|
|
|
|
config TASK_IO_ACCOUNTING
|
|
bool "Enable per-task storage I/O accounting"
|
|
depends on TASK_XACCT
|
|
help
|
|
Collect information on the number of bytes of storage I/O which this
|
|
task has caused.
|
|
|
|
Say N if unsure.
|
|
|
|
config PSI
|
|
bool "Pressure stall information tracking"
|
|
select KERNFS
|
|
help
|
|
Collect metrics that indicate how overcommitted the CPU, memory,
|
|
and IO capacity are in the system.
|
|
|
|
If you say Y here, the kernel will create /proc/pressure/ with the
|
|
pressure statistics files cpu, memory, and io. These will indicate
|
|
the share of walltime in which some or all tasks in the system are
|
|
delayed due to contention of the respective resource.
|
|
|
|
In kernels with cgroup support, cgroups (cgroup2 only) will
|
|
have cpu.pressure, memory.pressure, and io.pressure files,
|
|
which aggregate pressure stalls for the grouped tasks only.
|
|
|
|
For more details see Documentation/accounting/psi.rst.
|
|
|
|
Say N if unsure.
|
|
|
|
config PSI_DEFAULT_DISABLED
|
|
bool "Require boot parameter to enable pressure stall information tracking"
|
|
default n
|
|
depends on PSI
|
|
help
|
|
If set, pressure stall information tracking will be disabled
|
|
per default but can be enabled through passing psi=1 on the
|
|
kernel commandline during boot.
|
|
|
|
This feature adds some code to the task wakeup and sleep
|
|
paths of the scheduler. The overhead is too low to affect
|
|
common scheduling-intense workloads in practice (such as
|
|
webservers, memcache), but it does show up in artificial
|
|
scheduler stress tests, such as hackbench.
|
|
|
|
If you are paranoid and not sure what the kernel will be
|
|
used for, say Y.
|
|
|
|
Say N if unsure.
|
|
|
|
endmenu # "CPU/Task time and stats accounting"
|
|
|
|
config CPU_ISOLATION
|
|
bool "CPU isolation"
|
|
depends on SMP || COMPILE_TEST
|
|
default y
|
|
help
|
|
Make sure that CPUs running critical tasks are not disturbed by
|
|
any source of "noise" such as unbound workqueues, timers, kthreads...
|
|
Unbound jobs get offloaded to housekeeping CPUs. This is driven by
|
|
the "isolcpus=" boot parameter.
|
|
|
|
Say Y if unsure.
|
|
|
|
source "kernel/rcu/Kconfig"
|
|
|
|
config BUILD_BIN2C
|
|
bool
|
|
default n
|
|
|
|
config IKCONFIG
|
|
tristate "Kernel .config support"
|
|
help
|
|
This option enables the complete Linux kernel ".config" file
|
|
contents to be saved in the kernel. It provides documentation
|
|
of which kernel options are used in a running kernel or in an
|
|
on-disk kernel. This information can be extracted from the kernel
|
|
image file with the script scripts/extract-ikconfig and used as
|
|
input to rebuild the current kernel or to build another kernel.
|
|
It can also be extracted from a running kernel by reading
|
|
/proc/config.gz if enabled (below).
|
|
|
|
config IKCONFIG_PROC
|
|
bool "Enable access to .config through /proc/config.gz"
|
|
depends on IKCONFIG && PROC_FS
|
|
help
|
|
This option enables access to the kernel configuration file
|
|
through /proc/config.gz.
|
|
|
|
config IKHEADERS
|
|
tristate "Enable kernel headers through /sys/kernel/kheaders.tar.xz"
|
|
depends on SYSFS
|
|
help
|
|
This option enables access to the in-kernel headers that are generated during
|
|
the build process. These can be used to build eBPF tracing programs,
|
|
or similar programs. If you build the headers as a module, a module called
|
|
kheaders.ko is built which can be loaded on-demand to get access to headers.
|
|
|
|
config LOG_BUF_SHIFT
|
|
int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
|
|
range 12 25
|
|
default 17
|
|
depends on PRINTK
|
|
help
|
|
Select the minimal kernel log buffer size as a power of 2.
|
|
The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
|
|
parameter, see below. Any higher size also might be forced
|
|
by "log_buf_len" boot parameter.
|
|
|
|
Examples:
|
|
17 => 128 KB
|
|
16 => 64 KB
|
|
15 => 32 KB
|
|
14 => 16 KB
|
|
13 => 8 KB
|
|
12 => 4 KB
|
|
|
|
config LOG_CPU_MAX_BUF_SHIFT
|
|
int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
|
|
depends on SMP
|
|
range 0 21
|
|
default 12 if !BASE_SMALL
|
|
default 0 if BASE_SMALL
|
|
depends on PRINTK
|
|
help
|
|
This option allows to increase the default ring buffer size
|
|
according to the number of CPUs. The value defines the contribution
|
|
of each CPU as a power of 2. The used space is typically only few
|
|
lines however it might be much more when problems are reported,
|
|
e.g. backtraces.
|
|
|
|
The increased size means that a new buffer has to be allocated and
|
|
the original static one is unused. It makes sense only on systems
|
|
with more CPUs. Therefore this value is used only when the sum of
|
|
contributions is greater than the half of the default kernel ring
|
|
buffer as defined by LOG_BUF_SHIFT. The default values are set
|
|
so that more than 16 CPUs are needed to trigger the allocation.
|
|
|
|
Also this option is ignored when "log_buf_len" kernel parameter is
|
|
used as it forces an exact (power of two) size of the ring buffer.
|
|
|
|
The number of possible CPUs is used for this computation ignoring
|
|
hotplugging making the computation optimal for the worst case
|
|
scenario while allowing a simple algorithm to be used from bootup.
|
|
|
|
Examples shift values and their meaning:
|
|
17 => 128 KB for each CPU
|
|
16 => 64 KB for each CPU
|
|
15 => 32 KB for each CPU
|
|
14 => 16 KB for each CPU
|
|
13 => 8 KB for each CPU
|
|
12 => 4 KB for each CPU
|
|
|
|
config PRINTK_SAFE_LOG_BUF_SHIFT
|
|
int "Temporary per-CPU printk log buffer size (12 => 4KB, 13 => 8KB)"
|
|
range 10 21
|
|
default 13
|
|
depends on PRINTK
|
|
help
|
|
Select the size of an alternate printk per-CPU buffer where messages
|
|
printed from usafe contexts are temporary stored. One example would
|
|
be NMI messages, another one - printk recursion. The messages are
|
|
copied to the main log buffer in a safe context to avoid a deadlock.
|
|
The value defines the size as a power of 2.
|
|
|
|
Those messages are rare and limited. The largest one is when
|
|
a backtrace is printed. It usually fits into 4KB. Select
|
|
8KB if you want to be on the safe side.
|
|
|
|
Examples:
|
|
17 => 128 KB for each CPU
|
|
16 => 64 KB for each CPU
|
|
15 => 32 KB for each CPU
|
|
14 => 16 KB for each CPU
|
|
13 => 8 KB for each CPU
|
|
12 => 4 KB for each CPU
|
|
|
|
config PRINTK_INDEX
|
|
bool "Printk indexing debugfs interface"
|
|
depends on PRINTK && DEBUG_FS
|
|
help
|
|
Add support for indexing of all printk formats known at compile time
|
|
at <debugfs>/printk/index/<module>.
|
|
|
|
This can be used as part of maintaining daemons which monitor
|
|
/dev/kmsg, as it permits auditing the printk formats present in a
|
|
kernel, allowing detection of cases where monitored printks are
|
|
changed or no longer present.
|
|
|
|
There is no additional runtime cost to printk with this enabled.
|
|
|
|
#
|
|
# Architectures with an unreliable sched_clock() should select this:
|
|
#
|
|
config HAVE_UNSTABLE_SCHED_CLOCK
|
|
bool
|
|
|
|
config GENERIC_SCHED_CLOCK
|
|
bool
|
|
|
|
menu "Scheduler features"
|
|
|
|
config UCLAMP_TASK
|
|
bool "Enable utilization clamping for RT/FAIR tasks"
|
|
depends on CPU_FREQ_GOV_SCHEDUTIL
|
|
help
|
|
This feature enables the scheduler to track the clamped utilization
|
|
of each CPU based on RUNNABLE tasks scheduled on that CPU.
|
|
|
|
With this option, the user can specify the min and max CPU
|
|
utilization allowed for RUNNABLE tasks. The max utilization defines
|
|
the maximum frequency a task should use while the min utilization
|
|
defines the minimum frequency it should use.
|
|
|
|
Both min and max utilization clamp values are hints to the scheduler,
|
|
aiming at improving its frequency selection policy, but they do not
|
|
enforce or grant any specific bandwidth for tasks.
|
|
|
|
If in doubt, say N.
|
|
|
|
config UCLAMP_BUCKETS_COUNT
|
|
int "Number of supported utilization clamp buckets"
|
|
range 5 20
|
|
default 5
|
|
depends on UCLAMP_TASK
|
|
help
|
|
Defines the number of clamp buckets to use. The range of each bucket
|
|
will be SCHED_CAPACITY_SCALE/UCLAMP_BUCKETS_COUNT. The higher the
|
|
number of clamp buckets the finer their granularity and the higher
|
|
the precision of clamping aggregation and tracking at run-time.
|
|
|
|
For example, with the minimum configuration value we will have 5
|
|
clamp buckets tracking 20% utilization each. A 25% boosted tasks will
|
|
be refcounted in the [20..39]% bucket and will set the bucket clamp
|
|
effective value to 25%.
|
|
If a second 30% boosted task should be co-scheduled on the same CPU,
|
|
that task will be refcounted in the same bucket of the first task and
|
|
it will boost the bucket clamp effective value to 30%.
|
|
The clamp effective value of a bucket is reset to its nominal value
|
|
(20% in the example above) when there are no more tasks refcounted in
|
|
that bucket.
|
|
|
|
An additional boost/capping margin can be added to some tasks. In the
|
|
example above the 25% task will be boosted to 30% until it exits the
|
|
CPU. If that should be considered not acceptable on certain systems,
|
|
it's always possible to reduce the margin by increasing the number of
|
|
clamp buckets to trade off used memory for run-time tracking
|
|
precision.
|
|
|
|
If in doubt, use the default value.
|
|
|
|
endmenu
|
|
|
|
#
|
|
# For architectures that want to enable the support for NUMA-affine scheduler
|
|
# balancing logic:
|
|
#
|
|
config ARCH_SUPPORTS_NUMA_BALANCING
|
|
bool
|
|
|
|
#
|
|
# For architectures that prefer to flush all TLBs after a number of pages
|
|
# are unmapped instead of sending one IPI per page to flush. The architecture
|
|
# must provide guarantees on what happens if a clean TLB cache entry is
|
|
# written after the unmap. Details are in mm/rmap.c near the check for
|
|
# should_defer_flush. The architecture should also consider if the full flush
|
|
# and the refill costs are offset by the savings of sending fewer IPIs.
|
|
config ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
|
|
bool
|
|
|
|
config CC_HAS_INT128
|
|
def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
|
|
|
|
config CC_IMPLICIT_FALLTHROUGH
|
|
string
|
|
default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5)
|
|
default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough)
|
|
|
|
# Currently, disable gcc-11+ array-bounds globally.
|
|
# It's still broken in gcc-13, so no upper bound yet.
|
|
config GCC11_NO_ARRAY_BOUNDS
|
|
def_bool y
|
|
|
|
config CC_NO_ARRAY_BOUNDS
|
|
bool
|
|
default y if CC_IS_GCC && GCC_VERSION >= 110000 && GCC11_NO_ARRAY_BOUNDS
|
|
|
|
#
|
|
# For architectures that know their GCC __int128 support is sound
|
|
#
|
|
config ARCH_SUPPORTS_INT128
|
|
bool
|
|
|
|
# For architectures that (ab)use NUMA to represent different memory regions
|
|
# all cpu-local but of different latencies, such as SuperH.
|
|
#
|
|
config ARCH_WANT_NUMA_VARIABLE_LOCALITY
|
|
bool
|
|
|
|
config NUMA_BALANCING
|
|
bool "Memory placement aware NUMA scheduler"
|
|
depends on ARCH_SUPPORTS_NUMA_BALANCING
|
|
depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY
|
|
depends on SMP && NUMA && MIGRATION && !PREEMPT_RT
|
|
help
|
|
This option adds support for automatic NUMA aware memory/task placement.
|
|
The mechanism is quite primitive and is based on migrating memory when
|
|
it has references to the node the task is running on.
|
|
|
|
This system will be inactive on UMA systems.
|
|
|
|
config NUMA_BALANCING_DEFAULT_ENABLED
|
|
bool "Automatically enable NUMA aware memory/task placement"
|
|
default y
|
|
depends on NUMA_BALANCING
|
|
help
|
|
If set, automatic NUMA balancing will be enabled if running on a NUMA
|
|
machine.
|
|
|
|
menuconfig CGROUPS
|
|
bool "Control Group support"
|
|
select KERNFS
|
|
help
|
|
This option adds support for grouping sets of processes together, for
|
|
use with process control subsystems such as Cpusets, CFS, memory
|
|
controls or device isolation.
|
|
See
|
|
- Documentation/scheduler/sched-design-CFS.rst (CFS)
|
|
- Documentation/admin-guide/cgroup-v1/ (features for grouping, isolation
|
|
and resource control)
|
|
|
|
Say N if unsure.
|
|
|
|
if CGROUPS
|
|
|
|
config PAGE_COUNTER
|
|
bool
|
|
|
|
config CGROUP_FAVOR_DYNMODS
|
|
bool "Favor dynamic modification latency reduction by default"
|
|
help
|
|
This option enables the "favordynmods" mount option by default
|
|
which reduces the latencies of dynamic cgroup modifications such
|
|
as task migrations and controller on/offs at the cost of making
|
|
hot path operations such as forks and exits more expensive.
|
|
|
|
Say N if unsure.
|
|
|
|
config MEMCG
|
|
bool "Memory controller"
|
|
select PAGE_COUNTER
|
|
select EVENTFD
|
|
help
|
|
Provides control over the memory footprint of tasks in a cgroup.
|
|
|
|
config MEMCG_KMEM
|
|
bool
|
|
depends on MEMCG && !SLOB
|
|
default y
|
|
|
|
config BLK_CGROUP
|
|
bool "IO controller"
|
|
depends on BLOCK
|
|
default n
|
|
help
|
|
Generic block IO controller cgroup interface. This is the common
|
|
cgroup interface which should be used by various IO controlling
|
|
policies.
|
|
|
|
Currently, CFQ IO scheduler uses it to recognize task groups and
|
|
control disk bandwidth allocation (proportional time slice allocation)
|
|
to such task groups. It is also used by bio throttling logic in
|
|
block layer to implement upper limit in IO rates on a device.
|
|
|
|
This option only enables generic Block IO controller infrastructure.
|
|
One needs to also enable actual IO controlling logic/policy. For
|
|
enabling proportional weight division of disk bandwidth in CFQ, set
|
|
CONFIG_BFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
|
|
CONFIG_BLK_DEV_THROTTLING=y.
|
|
|
|
See Documentation/admin-guide/cgroup-v1/blkio-controller.rst for more information.
|
|
|
|
config CGROUP_WRITEBACK
|
|
bool
|
|
depends on MEMCG && BLK_CGROUP
|
|
default y
|
|
|
|
menuconfig CGROUP_SCHED
|
|
bool "CPU controller"
|
|
default n
|
|
help
|
|
This feature lets CPU scheduler recognize task groups and control CPU
|
|
bandwidth allocation to such task groups. It uses cgroups to group
|
|
tasks.
|
|
|
|
if CGROUP_SCHED
|
|
config FAIR_GROUP_SCHED
|
|
bool "Group scheduling for SCHED_OTHER"
|
|
depends on CGROUP_SCHED
|
|
default CGROUP_SCHED
|
|
|
|
config CFS_BANDWIDTH
|
|
bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
|
|
depends on FAIR_GROUP_SCHED
|
|
default n
|
|
help
|
|
This option allows users to define CPU bandwidth rates (limits) for
|
|
tasks running within the fair group scheduler. Groups with no limit
|
|
set are considered to be unconstrained and will run with no
|
|
restriction.
|
|
See Documentation/scheduler/sched-bwc.rst for more information.
|
|
|
|
config RT_GROUP_SCHED
|
|
bool "Group scheduling for SCHED_RR/FIFO"
|
|
depends on CGROUP_SCHED
|
|
default n
|
|
help
|
|
This feature lets you explicitly allocate real CPU bandwidth
|
|
to task groups. If enabled, it will also make it impossible to
|
|
schedule realtime tasks for non-root users until you allocate
|
|
realtime bandwidth for them.
|
|
See Documentation/scheduler/sched-rt-group.rst for more information.
|
|
|
|
endif #CGROUP_SCHED
|
|
|
|
config UCLAMP_TASK_GROUP
|
|
bool "Utilization clamping per group of tasks"
|
|
depends on CGROUP_SCHED
|
|
depends on UCLAMP_TASK
|
|
default n
|
|
help
|
|
This feature enables the scheduler to track the clamped utilization
|
|
of each CPU based on RUNNABLE tasks currently scheduled on that CPU.
|
|
|
|
When this option is enabled, the user can specify a min and max
|
|
CPU bandwidth which is allowed for each single task in a group.
|
|
The max bandwidth allows to clamp the maximum frequency a task
|
|
can use, while the min bandwidth allows to define a minimum
|
|
frequency a task will always use.
|
|
|
|
When task group based utilization clamping is enabled, an eventually
|
|
specified task-specific clamp value is constrained by the cgroup
|
|
specified clamp value. Both minimum and maximum task clamping cannot
|
|
be bigger than the corresponding clamping defined at task group level.
|
|
|
|
If in doubt, say N.
|
|
|
|
config CGROUP_PIDS
|
|
bool "PIDs controller"
|
|
help
|
|
Provides enforcement of process number limits in the scope of a
|
|
cgroup. Any attempt to fork more processes than is allowed in the
|
|
cgroup will fail. PIDs are fundamentally a global resource because it
|
|
is fairly trivial to reach PID exhaustion before you reach even a
|
|
conservative kmemcg limit. As a result, it is possible to grind a
|
|
system to halt without being limited by other cgroup policies. The
|
|
PIDs controller is designed to stop this from happening.
|
|
|
|
It should be noted that organisational operations (such as attaching
|
|
to a cgroup hierarchy) will *not* be blocked by the PIDs controller,
|
|
since the PIDs limit only affects a process's ability to fork, not to
|
|
attach to a cgroup.
|
|
|
|
config CGROUP_RDMA
|
|
bool "RDMA controller"
|
|
help
|
|
Provides enforcement of RDMA resources defined by IB stack.
|
|
It is fairly easy for consumers to exhaust RDMA resources, which
|
|
can result into resource unavailability to other consumers.
|
|
RDMA controller is designed to stop this from happening.
|
|
Attaching processes with active RDMA resources to the cgroup
|
|
hierarchy is allowed even if can cross the hierarchy's limit.
|
|
|
|
config CGROUP_FREEZER
|
|
bool "Freezer controller"
|
|
help
|
|
Provides a way to freeze and unfreeze all tasks in a
|
|
cgroup.
|
|
|
|
This option affects the ORIGINAL cgroup interface. The cgroup2 memory
|
|
controller includes important in-kernel memory consumers per default.
|
|
|
|
If you're using cgroup2, say N.
|
|
|
|
config CGROUP_HUGETLB
|
|
bool "HugeTLB controller"
|
|
depends on HUGETLB_PAGE
|
|
select PAGE_COUNTER
|
|
default n
|
|
help
|
|
Provides a cgroup controller for HugeTLB pages.
|
|
When you enable this, you can put a per cgroup limit on HugeTLB usage.
|
|
The limit is enforced during page fault. Since HugeTLB doesn't
|
|
support page reclaim, enforcing the limit at page fault time implies
|
|
that, the application will get SIGBUS signal if it tries to access
|
|
HugeTLB pages beyond its limit. This requires the application to know
|
|
beforehand how much HugeTLB pages it would require for its use. The
|
|
control group is tracked in the third page lru pointer. This means
|
|
that we cannot use the controller with huge page less than 3 pages.
|
|
|
|
config CPUSETS
|
|
bool "Cpuset controller"
|
|
depends on SMP
|
|
help
|
|
This option will let you create and manage CPUSETs which
|
|
allow dynamically partitioning a system into sets of CPUs and
|
|
Memory Nodes and assigning tasks to run only within those sets.
|
|
This is primarily useful on large SMP or NUMA systems.
|
|
|
|
Say N if unsure.
|
|
|
|
config PROC_PID_CPUSET
|
|
bool "Include legacy /proc/<pid>/cpuset file"
|
|
depends on CPUSETS
|
|
default y
|
|
|
|
config CGROUP_DEVICE
|
|
bool "Device controller"
|
|
help
|
|
Provides a cgroup controller implementing whitelists for
|
|
devices which a process in the cgroup can mknod or open.
|
|
|
|
config CGROUP_CPUACCT
|
|
bool "Simple CPU accounting controller"
|
|
help
|
|
Provides a simple controller for monitoring the
|
|
total CPU consumed by the tasks in a cgroup.
|
|
|
|
config CGROUP_PERF
|
|
bool "Perf controller"
|
|
depends on PERF_EVENTS
|
|
help
|
|
This option extends the perf per-cpu mode to restrict monitoring
|
|
to threads which belong to the cgroup specified and run on the
|
|
designated cpu. Or this can be used to have cgroup ID in samples
|
|
so that it can monitor performance events among cgroups.
|
|
|
|
Say N if unsure.
|
|
|
|
config CGROUP_BPF
|
|
bool "Support for eBPF programs attached to cgroups"
|
|
depends on BPF_SYSCALL
|
|
select SOCK_CGROUP_DATA
|
|
help
|
|
Allow attaching eBPF programs to a cgroup using the bpf(2)
|
|
syscall command BPF_PROG_ATTACH.
|
|
|
|
In which context these programs are accessed depends on the type
|
|
of attachment. For instance, programs that are attached using
|
|
BPF_CGROUP_INET_INGRESS will be executed on the ingress path of
|
|
inet sockets.
|
|
|
|
config CGROUP_MISC
|
|
bool "Misc resource controller"
|
|
default n
|
|
help
|
|
Provides a controller for miscellaneous resources on a host.
|
|
|
|
Miscellaneous scalar resources are the resources on the host system
|
|
which cannot be abstracted like the other cgroups. This controller
|
|
tracks and limits the miscellaneous resources used by a process
|
|
attached to a cgroup hierarchy.
|
|
|
|
For more information, please check misc cgroup section in
|
|
/Documentation/admin-guide/cgroup-v2.rst.
|
|
|
|
config CGROUP_DEBUG
|
|
bool "Debug controller"
|
|
default n
|
|
depends on DEBUG_KERNEL
|
|
help
|
|
This option enables a simple controller that exports
|
|
debugging information about the cgroups framework. This
|
|
controller is for control cgroup debugging only. Its
|
|
interfaces are not stable.
|
|
|
|
Say N.
|
|
|
|
config SOCK_CGROUP_DATA
|
|
bool
|
|
default n
|
|
|
|
endif # CGROUPS
|
|
|
|
menuconfig NAMESPACES
|
|
bool "Namespaces support" if EXPERT
|
|
depends on MULTIUSER
|
|
default !EXPERT
|
|
help
|
|
Provides the way to make tasks work with different objects using
|
|
the same id. For example same IPC id may refer to different objects
|
|
or same user id or pid may refer to different tasks when used in
|
|
different namespaces.
|
|
|
|
if NAMESPACES
|
|
|
|
config UTS_NS
|
|
bool "UTS namespace"
|
|
default y
|
|
help
|
|
In this namespace tasks see different info provided with the
|
|
uname() system call
|
|
|
|
config TIME_NS
|
|
bool "TIME namespace"
|
|
depends on GENERIC_VDSO_TIME_NS
|
|
default y
|
|
help
|
|
In this namespace boottime and monotonic clocks can be set.
|
|
The time will keep going with the same pace.
|
|
|
|
config IPC_NS
|
|
bool "IPC namespace"
|
|
depends on (SYSVIPC || POSIX_MQUEUE)
|
|
default y
|
|
help
|
|
In this namespace tasks work with IPC ids which correspond to
|
|
different IPC objects in different namespaces.
|
|
|
|
config USER_NS
|
|
bool "User namespace"
|
|
default n
|
|
help
|
|
This allows containers, i.e. vservers, to use user namespaces
|
|
to provide different user info for different servers.
|
|
|
|
When user namespaces are enabled in the kernel it is
|
|
recommended that the MEMCG option also be enabled and that
|
|
user-space use the memory control groups to limit the amount
|
|
of memory a memory unprivileged users can use.
|
|
|
|
If unsure, say N.
|
|
|
|
config PID_NS
|
|
bool "PID Namespaces"
|
|
default y
|
|
help
|
|
Support process id namespaces. This allows having multiple
|
|
processes with the same pid as long as they are in different
|
|
pid namespaces. This is a building block of containers.
|
|
|
|
config NET_NS
|
|
bool "Network namespace"
|
|
depends on NET
|
|
default y
|
|
help
|
|
Allow user space to create what appear to be multiple instances
|
|
of the network stack.
|
|
|
|
endif # NAMESPACES
|
|
|
|
config CHECKPOINT_RESTORE
|
|
bool "Checkpoint/restore support"
|
|
depends on PROC_FS
|
|
select PROC_CHILDREN
|
|
select KCMP
|
|
default n
|
|
help
|
|
Enables additional kernel features in a sake of checkpoint/restore.
|
|
In particular it adds auxiliary prctl codes to setup process text,
|
|
data and heap segment sizes, and a few additional /proc filesystem
|
|
entries.
|
|
|
|
If unsure, say N here.
|
|
|
|
config SCHED_AUTOGROUP
|
|
bool "Automatic process group scheduling"
|
|
select CGROUPS
|
|
select CGROUP_SCHED
|
|
select FAIR_GROUP_SCHED
|
|
help
|
|
This option optimizes the scheduler for common desktop workloads by
|
|
automatically creating and populating task groups. This separation
|
|
of workloads isolates aggressive CPU burners (like build jobs) from
|
|
desktop applications. Task group autogeneration is currently based
|
|
upon task session.
|
|
|
|
config RT_SOFTIRQ_AWARE_SCHED
|
|
bool "Improve RT scheduling during long softirq execution"
|
|
depends on SMP && !PREEMPT_RT
|
|
default n
|
|
help
|
|
Enable an optimization which tries to avoid placing RT tasks on CPUs
|
|
occupied by nonpreemptible tasks, such as a long softirq or CPUs
|
|
which may soon block preemptions, such as a CPU running a ksoftirq
|
|
thread which handles slow softirqs.
|
|
|
|
config SYSFS_DEPRECATED
|
|
bool "Enable deprecated sysfs features to support old userspace tools"
|
|
depends on SYSFS
|
|
default n
|
|
help
|
|
This option adds code that switches the layout of the "block" class
|
|
devices, to not show up in /sys/class/block/, but only in
|
|
/sys/block/.
|
|
|
|
This switch is only active when the sysfs.deprecated=1 boot option is
|
|
passed or the SYSFS_DEPRECATED_V2 option is set.
|
|
|
|
This option allows new kernels to run on old distributions and tools,
|
|
which might get confused by /sys/class/block/. Since 2007/2008 all
|
|
major distributions and tools handle this just fine.
|
|
|
|
Recent distributions and userspace tools after 2009/2010 depend on
|
|
the existence of /sys/class/block/, and will not work with this
|
|
option enabled.
|
|
|
|
Only if you are using a new kernel on an old distribution, you might
|
|
need to say Y here.
|
|
|
|
config SYSFS_DEPRECATED_V2
|
|
bool "Enable deprecated sysfs features by default"
|
|
default n
|
|
depends on SYSFS
|
|
depends on SYSFS_DEPRECATED
|
|
help
|
|
Enable deprecated sysfs by default.
|
|
|
|
See the CONFIG_SYSFS_DEPRECATED option for more details about this
|
|
option.
|
|
|
|
Only if you are using a new kernel on an old distribution, you might
|
|
need to say Y here. Even then, odds are you would not need it
|
|
enabled, you can always pass the boot option if absolutely necessary.
|
|
|
|
config RELAY
|
|
bool "Kernel->user space relay support (formerly relayfs)"
|
|
select IRQ_WORK
|
|
help
|
|
This option enables support for relay interface support in
|
|
certain file systems (such as debugfs).
|
|
It is designed to provide an efficient mechanism for tools and
|
|
facilities to relay large amounts of data from kernel space to
|
|
user space.
|
|
|
|
If unsure, say N.
|
|
|
|
config BLK_DEV_INITRD
|
|
bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
|
|
help
|
|
The initial RAM filesystem is a ramfs which is loaded by the
|
|
boot loader (loadlin or lilo) and that is mounted as root
|
|
before the normal boot procedure. It is typically used to
|
|
load modules needed to mount the "real" root file system,
|
|
etc. See <file:Documentation/admin-guide/initrd.rst> for details.
|
|
|
|
If RAM disk support (BLK_DEV_RAM) is also included, this
|
|
also enables initial RAM disk (initrd) support and adds
|
|
15 Kbytes (more on some other architectures) to the kernel size.
|
|
|
|
If unsure say Y.
|
|
|
|
if BLK_DEV_INITRD
|
|
|
|
source "usr/Kconfig"
|
|
|
|
endif
|
|
|
|
config BOOT_CONFIG
|
|
bool "Boot config support"
|
|
select BLK_DEV_INITRD if !BOOT_CONFIG_EMBED
|
|
help
|
|
Extra boot config allows system admin to pass a config file as
|
|
complemental extension of kernel cmdline when booting.
|
|
The boot config file must be attached at the end of initramfs
|
|
with checksum, size and magic word.
|
|
See <file:Documentation/admin-guide/bootconfig.rst> for details.
|
|
|
|
If unsure, say Y.
|
|
|
|
config BOOT_CONFIG_EMBED
|
|
bool "Embed bootconfig file in the kernel"
|
|
depends on BOOT_CONFIG
|
|
help
|
|
Embed a bootconfig file given by BOOT_CONFIG_EMBED_FILE in the
|
|
kernel. Usually, the bootconfig file is loaded with the initrd
|
|
image. But if the system doesn't support initrd, this option will
|
|
help you by embedding a bootconfig file while building the kernel.
|
|
|
|
If unsure, say N.
|
|
|
|
config BOOT_CONFIG_EMBED_FILE
|
|
string "Embedded bootconfig file path"
|
|
depends on BOOT_CONFIG_EMBED
|
|
help
|
|
Specify a bootconfig file which will be embedded to the kernel.
|
|
This bootconfig will be used if there is no initrd or no other
|
|
bootconfig in the initrd.
|
|
|
|
config INITRAMFS_PRESERVE_MTIME
|
|
bool "Preserve cpio archive mtimes in initramfs"
|
|
default y
|
|
help
|
|
Each entry in an initramfs cpio archive carries an mtime value. When
|
|
enabled, extracted cpio items take this mtime, with directory mtime
|
|
setting deferred until after creation of any child entries.
|
|
|
|
If unsure, say Y.
|
|
|
|
choice
|
|
prompt "Compiler optimization level"
|
|
default CC_OPTIMIZE_FOR_PERFORMANCE
|
|
|
|
config CC_OPTIMIZE_FOR_PERFORMANCE
|
|
bool "Optimize for performance (-O2)"
|
|
help
|
|
This is the default optimization level for the kernel, building
|
|
with the "-O2" compiler flag for best performance and most
|
|
helpful compile-time warnings.
|
|
|
|
config CC_OPTIMIZE_FOR_SIZE
|
|
bool "Optimize for size (-Os)"
|
|
help
|
|
Choosing this option will pass "-Os" to your compiler resulting
|
|
in a smaller kernel.
|
|
|
|
endchoice
|
|
|
|
config HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
|
bool
|
|
help
|
|
This requires that the arch annotates or otherwise protects
|
|
its external entry points from being discarded. Linker scripts
|
|
must also merge .text.*, .data.*, and .bss.* correctly into
|
|
output sections. Care must be taken not to pull in unrelated
|
|
sections (e.g., '.text.init'). Typically '.' in section names
|
|
is used to distinguish them from label names / C identifiers.
|
|
|
|
config LD_DEAD_CODE_DATA_ELIMINATION
|
|
bool "Dead code and data elimination (EXPERIMENTAL)"
|
|
depends on HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
|
depends on EXPERT
|
|
depends on $(cc-option,-ffunction-sections -fdata-sections)
|
|
depends on $(ld-option,--gc-sections)
|
|
help
|
|
Enable this if you want to do dead code and data elimination with
|
|
the linker by compiling with -ffunction-sections -fdata-sections,
|
|
and linking with --gc-sections.
|
|
|
|
This can reduce on disk and in-memory size of the kernel
|
|
code and static data, particularly for small configs and
|
|
on small systems. This has the possibility of introducing
|
|
silently broken kernel if the required annotations are not
|
|
present. This option is not well tested yet, so use at your
|
|
own risk.
|
|
|
|
config LD_ORPHAN_WARN
|
|
def_bool y
|
|
depends on ARCH_WANT_LD_ORPHAN_WARN
|
|
depends on $(ld-option,--orphan-handling=warn)
|
|
|
|
config SYSCTL
|
|
bool
|
|
|
|
config HAVE_UID16
|
|
bool
|
|
|
|
config SYSCTL_EXCEPTION_TRACE
|
|
bool
|
|
help
|
|
Enable support for /proc/sys/debug/exception-trace.
|
|
|
|
config SYSCTL_ARCH_UNALIGN_NO_WARN
|
|
bool
|
|
help
|
|
Enable support for /proc/sys/kernel/ignore-unaligned-usertrap
|
|
Allows arch to define/use @no_unaligned_warning to possibly warn
|
|
about unaligned access emulation going on under the hood.
|
|
|
|
config SYSCTL_ARCH_UNALIGN_ALLOW
|
|
bool
|
|
help
|
|
Enable support for /proc/sys/kernel/unaligned-trap
|
|
Allows arches to define/use @unaligned_enabled to runtime toggle
|
|
the unaligned access emulation.
|
|
see arch/parisc/kernel/unaligned.c for reference
|
|
|
|
config HAVE_PCSPKR_PLATFORM
|
|
bool
|
|
|
|
# interpreter that classic socket filters depend on
|
|
config BPF
|
|
bool
|
|
select CRYPTO_LIB_SHA1
|
|
|
|
menuconfig EXPERT
|
|
bool "Configure standard kernel features (expert users)"
|
|
# Unhide debug options, to make the on-by-default options visible
|
|
select DEBUG_KERNEL
|
|
help
|
|
This option allows certain base kernel options and settings
|
|
to be disabled or tweaked. This is for specialized
|
|
environments which can tolerate a "non-standard" kernel.
|
|
Only use this if you really know what you are doing.
|
|
|
|
config UID16
|
|
bool "Enable 16-bit UID system calls" if EXPERT
|
|
depends on HAVE_UID16 && MULTIUSER
|
|
default y
|
|
help
|
|
This enables the legacy 16-bit UID syscall wrappers.
|
|
|
|
config MULTIUSER
|
|
bool "Multiple users, groups and capabilities support" if EXPERT
|
|
default y
|
|
help
|
|
This option enables support for non-root users, groups and
|
|
capabilities.
|
|
|
|
If you say N here, all processes will run with UID 0, GID 0, and all
|
|
possible capabilities. Saying N here also compiles out support for
|
|
system calls related to UIDs, GIDs, and capabilities, such as setuid,
|
|
setgid, and capset.
|
|
|
|
If unsure, say Y here.
|
|
|
|
config SGETMASK_SYSCALL
|
|
bool "sgetmask/ssetmask syscalls support" if EXPERT
|
|
def_bool PARISC || M68K || PPC || MIPS || X86 || SPARC || MICROBLAZE || SUPERH
|
|
help
|
|
sys_sgetmask and sys_ssetmask are obsolete system calls
|
|
no longer supported in libc but still enabled by default in some
|
|
architectures.
|
|
|
|
If unsure, leave the default option here.
|
|
|
|
config SYSFS_SYSCALL
|
|
bool "Sysfs syscall support" if EXPERT
|
|
default y
|
|
help
|
|
sys_sysfs is an obsolete system call no longer supported in libc.
|
|
Note that disabling this option is more secure but might break
|
|
compatibility with some systems.
|
|
|
|
If unsure say Y here.
|
|
|
|
config FHANDLE
|
|
bool "open by fhandle syscalls" if EXPERT
|
|
select EXPORTFS
|
|
default y
|
|
help
|
|
If you say Y here, a user level program will be able to map
|
|
file names to handle and then later use the handle for
|
|
different file system operations. This is useful in implementing
|
|
userspace file servers, which now track files using handles instead
|
|
of names. The handle would remain the same even if file names
|
|
get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2)
|
|
syscalls.
|
|
|
|
config POSIX_TIMERS
|
|
bool "Posix Clocks & timers" if EXPERT
|
|
default y
|
|
help
|
|
This includes native support for POSIX timers to the kernel.
|
|
Some embedded systems have no use for them and therefore they
|
|
can be configured out to reduce the size of the kernel image.
|
|
|
|
When this option is disabled, the following syscalls won't be
|
|
available: timer_create, timer_gettime: timer_getoverrun,
|
|
timer_settime, timer_delete, clock_adjtime, getitimer,
|
|
setitimer, alarm. Furthermore, the clock_settime, clock_gettime,
|
|
clock_getres and clock_nanosleep syscalls will be limited to
|
|
CLOCK_REALTIME, CLOCK_MONOTONIC and CLOCK_BOOTTIME only.
|
|
|
|
If unsure say y.
|
|
|
|
config PRINTK
|
|
default y
|
|
bool "Enable support for printk" if EXPERT
|
|
select IRQ_WORK
|
|
help
|
|
This option enables normal printk support. Removing it
|
|
eliminates most of the message strings from the kernel image
|
|
and makes the kernel more or less silent. As this makes it
|
|
very difficult to diagnose system problems, saying N here is
|
|
strongly discouraged.
|
|
|
|
config BUG
|
|
bool "BUG() support" if EXPERT
|
|
default y
|
|
help
|
|
Disabling this option eliminates support for BUG and WARN, reducing
|
|
the size of your kernel image and potentially quietly ignoring
|
|
numerous fatal conditions. You should only consider disabling this
|
|
option for embedded systems with no facilities for reporting errors.
|
|
Just say Y.
|
|
|
|
config ELF_CORE
|
|
depends on COREDUMP
|
|
default y
|
|
bool "Enable ELF core dumps" if EXPERT
|
|
help
|
|
Enable support for generating core dumps. Disabling saves about 4k.
|
|
|
|
|
|
config PCSPKR_PLATFORM
|
|
bool "Enable PC-Speaker support" if EXPERT
|
|
depends on HAVE_PCSPKR_PLATFORM
|
|
select I8253_LOCK
|
|
default y
|
|
help
|
|
This option allows to disable the internal PC-Speaker
|
|
support, saving some memory.
|
|
|
|
config BASE_FULL
|
|
default y
|
|
bool "Enable full-sized data structures for core" if EXPERT
|
|
help
|
|
Disabling this option reduces the size of miscellaneous core
|
|
kernel data structures. This saves memory on small machines,
|
|
but may reduce performance.
|
|
|
|
config FUTEX
|
|
bool "Enable futex support" if EXPERT
|
|
depends on !(SPARC32 && SMP)
|
|
default y
|
|
imply RT_MUTEXES
|
|
help
|
|
Disabling this option will cause the kernel to be built without
|
|
support for "fast userspace mutexes". The resulting kernel may not
|
|
run glibc-based applications correctly.
|
|
|
|
config FUTEX_PI
|
|
bool
|
|
depends on FUTEX && RT_MUTEXES
|
|
default y
|
|
|
|
config EPOLL
|
|
bool "Enable eventpoll support" if EXPERT
|
|
default y
|
|
help
|
|
Disabling this option will cause the kernel to be built without
|
|
support for epoll family of system calls.
|
|
|
|
config SIGNALFD
|
|
bool "Enable signalfd() system call" if EXPERT
|
|
default y
|
|
help
|
|
Enable the signalfd() system call that allows to receive signals
|
|
on a file descriptor.
|
|
|
|
If unsure, say Y.
|
|
|
|
config TIMERFD
|
|
bool "Enable timerfd() system call" if EXPERT
|
|
default y
|
|
help
|
|
Enable the timerfd() system call that allows to receive timer
|
|
events on a file descriptor.
|
|
|
|
If unsure, say Y.
|
|
|
|
config EVENTFD
|
|
bool "Enable eventfd() system call" if EXPERT
|
|
default y
|
|
help
|
|
Enable the eventfd() system call that allows to receive both
|
|
kernel notification (ie. KAIO) or userspace notifications.
|
|
|
|
If unsure, say Y.
|
|
|
|
config SHMEM
|
|
bool "Use full shmem filesystem" if EXPERT
|
|
default y
|
|
depends on MMU
|
|
help
|
|
The shmem is an internal filesystem used to manage shared memory.
|
|
It is backed by swap and manages resource limits. It is also exported
|
|
to userspace as tmpfs if TMPFS is enabled. Disabling this
|
|
option replaces shmem and tmpfs with the much simpler ramfs code,
|
|
which may be appropriate on small systems without swap.
|
|
|
|
config AIO
|
|
bool "Enable AIO support" if EXPERT
|
|
default y
|
|
help
|
|
This option enables POSIX asynchronous I/O which may by used
|
|
by some high performance threaded applications. Disabling
|
|
this option saves about 7k.
|
|
|
|
config IO_URING
|
|
bool "Enable IO uring support" if EXPERT
|
|
select IO_WQ
|
|
default y
|
|
help
|
|
This option enables support for the io_uring interface, enabling
|
|
applications to submit and complete IO through submission and
|
|
completion rings that are shared between the kernel and application.
|
|
|
|
config ADVISE_SYSCALLS
|
|
bool "Enable madvise/fadvise syscalls" if EXPERT
|
|
default y
|
|
help
|
|
This option enables the madvise and fadvise syscalls, used by
|
|
applications to advise the kernel about their future memory or file
|
|
usage, improving performance. If building an embedded system where no
|
|
applications use these syscalls, you can disable this option to save
|
|
space.
|
|
|
|
config MEMBARRIER
|
|
bool "Enable membarrier() system call" if EXPERT
|
|
default y
|
|
help
|
|
Enable the membarrier() system call that allows issuing memory
|
|
barriers across all running threads, which can be used to distribute
|
|
the cost of user-space memory barriers asymmetrically by transforming
|
|
pairs of memory barriers into pairs consisting of membarrier() and a
|
|
compiler barrier.
|
|
|
|
If unsure, say Y.
|
|
|
|
config KALLSYMS
|
|
bool "Load all symbols for debugging/ksymoops" if EXPERT
|
|
default y
|
|
help
|
|
Say Y here to let the kernel print out symbolic crash information and
|
|
symbolic stack backtraces. This increases the size of the kernel
|
|
somewhat, as all symbols have to be loaded into the kernel image.
|
|
|
|
config KALLSYMS_ALL
|
|
bool "Include all symbols in kallsyms"
|
|
depends on DEBUG_KERNEL && KALLSYMS
|
|
help
|
|
Normally kallsyms only contains the symbols of functions for nicer
|
|
OOPS messages and backtraces (i.e., symbols from the text and inittext
|
|
sections). This is sufficient for most cases. And only if you want to
|
|
enable kernel live patching, or other less common use cases (e.g.,
|
|
when a debugger is used) all symbols are required (i.e., names of
|
|
variables from the data sections, etc).
|
|
|
|
This option makes sure that all symbols are loaded into the kernel
|
|
image (i.e., symbols from all sections) in cost of increased kernel
|
|
size (depending on the kernel configuration, it may be 300KiB or
|
|
something like this).
|
|
|
|
Say N unless you really need all symbols, or kernel live patching.
|
|
|
|
config KALLSYMS_ABSOLUTE_PERCPU
|
|
bool
|
|
depends on KALLSYMS
|
|
default X86_64 && SMP
|
|
|
|
config KALLSYMS_BASE_RELATIVE
|
|
bool
|
|
depends on KALLSYMS
|
|
default !IA64
|
|
help
|
|
Instead of emitting them as absolute values in the native word size,
|
|
emit the symbol references in the kallsyms table as 32-bit entries,
|
|
each containing a relative value in the range [base, base + U32_MAX]
|
|
or, when KALLSYMS_ABSOLUTE_PERCPU is in effect, each containing either
|
|
an absolute value in the range [0, S32_MAX] or a relative value in the
|
|
range [base, base + S32_MAX], where base is the lowest relative symbol
|
|
address encountered in the image.
|
|
|
|
On 64-bit builds, this reduces the size of the address table by 50%,
|
|
but more importantly, it results in entries whose values are build
|
|
time constants, and no relocation pass is required at runtime to fix
|
|
up the entries based on the runtime load address of the kernel.
|
|
|
|
# end of the "standard kernel features (expert users)" menu
|
|
|
|
# syscall, maps, verifier
|
|
|
|
config ARCH_HAS_MEMBARRIER_CALLBACKS
|
|
bool
|
|
|
|
config ARCH_HAS_MEMBARRIER_SYNC_CORE
|
|
bool
|
|
|
|
config KCMP
|
|
bool "Enable kcmp() system call" if EXPERT
|
|
help
|
|
Enable the kernel resource comparison system call. It provides
|
|
user-space with the ability to compare two processes to see if they
|
|
share a common resource, such as a file descriptor or even virtual
|
|
memory space.
|
|
|
|
If unsure, say N.
|
|
|
|
config RSEQ
|
|
bool "Enable rseq() system call" if EXPERT
|
|
default y
|
|
depends on HAVE_RSEQ
|
|
select MEMBARRIER
|
|
help
|
|
Enable the restartable sequences system call. It provides a
|
|
user-space cache for the current CPU number value, which
|
|
speeds up getting the current CPU number from user-space,
|
|
as well as an ABI to speed up user-space operations on
|
|
per-CPU data.
|
|
|
|
If unsure, say Y.
|
|
|
|
config DEBUG_RSEQ
|
|
default n
|
|
bool "Enabled debugging of rseq() system call" if EXPERT
|
|
depends on RSEQ && DEBUG_KERNEL
|
|
help
|
|
Enable extra debugging checks for the rseq system call.
|
|
|
|
If unsure, say N.
|
|
|
|
config EMBEDDED
|
|
bool "Embedded system"
|
|
select EXPERT
|
|
help
|
|
This option should be enabled if compiling the kernel for
|
|
an embedded system so certain expert options are available
|
|
for configuration.
|
|
|
|
config HAVE_PERF_EVENTS
|
|
bool
|
|
help
|
|
See tools/perf/design.txt for details.
|
|
|
|
config GUEST_PERF_EVENTS
|
|
bool
|
|
depends on HAVE_PERF_EVENTS
|
|
|
|
config PERF_USE_VMALLOC
|
|
bool
|
|
help
|
|
See tools/perf/design.txt for details
|
|
|
|
config PC104
|
|
bool "PC/104 support" if EXPERT
|
|
help
|
|
Expose PC/104 form factor device drivers and options available for
|
|
selection and configuration. Enable this option if your target
|
|
machine has a PC/104 bus.
|
|
|
|
menu "Kernel Performance Events And Counters"
|
|
|
|
config PERF_EVENTS
|
|
bool "Kernel performance events and counters"
|
|
default y if PROFILING
|
|
depends on HAVE_PERF_EVENTS
|
|
select IRQ_WORK
|
|
select SRCU
|
|
help
|
|
Enable kernel support for various performance events provided
|
|
by software and hardware.
|
|
|
|
Software events are supported either built-in or via the
|
|
use of generic tracepoints.
|
|
|
|
Most modern CPUs support performance events via performance
|
|
counter registers. These registers count the number of certain
|
|
types of hw events: such as instructions executed, cachemisses
|
|
suffered, or branches mis-predicted - without slowing down the
|
|
kernel or applications. These registers can also trigger interrupts
|
|
when a threshold number of events have passed - and can thus be
|
|
used to profile the code that runs on that CPU.
|
|
|
|
The Linux Performance Event subsystem provides an abstraction of
|
|
these software and hardware event capabilities, available via a
|
|
system call and used by the "perf" utility in tools/perf/. It
|
|
provides per task and per CPU counters, and it provides event
|
|
capabilities on top of those.
|
|
|
|
Say Y if unsure.
|
|
|
|
config DEBUG_PERF_USE_VMALLOC
|
|
default n
|
|
bool "Debug: use vmalloc to back perf mmap() buffers"
|
|
depends on PERF_EVENTS && DEBUG_KERNEL && !PPC
|
|
select PERF_USE_VMALLOC
|
|
help
|
|
Use vmalloc memory to back perf mmap() buffers.
|
|
|
|
Mostly useful for debugging the vmalloc code on platforms
|
|
that don't require it.
|
|
|
|
Say N if unsure.
|
|
|
|
endmenu
|
|
|
|
config SYSTEM_DATA_VERIFICATION
|
|
def_bool n
|
|
select SYSTEM_TRUSTED_KEYRING
|
|
select KEYS
|
|
select CRYPTO
|
|
select CRYPTO_RSA
|
|
select ASYMMETRIC_KEY_TYPE
|
|
select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
|
|
select ASN1
|
|
select OID_REGISTRY
|
|
select X509_CERTIFICATE_PARSER
|
|
select PKCS7_MESSAGE_PARSER
|
|
help
|
|
Provide PKCS#7 message verification using the contents of the system
|
|
trusted keyring to provide public keys. This then can be used for
|
|
module verification, kexec image verification and firmware blob
|
|
verification.
|
|
|
|
config PROFILING
|
|
bool "Profiling support"
|
|
help
|
|
Say Y here to enable the extended profiling support mechanisms used
|
|
by profilers.
|
|
|
|
config RUST
|
|
bool "Rust support"
|
|
depends on HAVE_RUST
|
|
depends on RUST_IS_AVAILABLE
|
|
depends on !MODVERSIONS
|
|
depends on !GCC_PLUGINS
|
|
depends on !RANDSTRUCT
|
|
depends on !DEBUG_INFO_BTF || PAHOLE_HAS_LANG_EXCLUDE
|
|
select CONSTRUCTORS
|
|
help
|
|
Enables Rust support in the kernel.
|
|
|
|
This allows other Rust-related options, like drivers written in Rust,
|
|
to be selected.
|
|
|
|
It is also required to be able to load external kernel modules
|
|
written in Rust.
|
|
|
|
See Documentation/rust/ for more information.
|
|
|
|
If unsure, say N.
|
|
|
|
config RUSTC_VERSION_TEXT
|
|
string
|
|
depends on RUST
|
|
default $(shell,command -v $(RUSTC) >/dev/null 2>&1 && $(RUSTC) --version || echo n)
|
|
|
|
config BINDGEN_VERSION_TEXT
|
|
string
|
|
depends on RUST
|
|
default $(shell,command -v $(BINDGEN) >/dev/null 2>&1 && $(BINDGEN) --version || echo n)
|
|
|
|
#
|
|
# Place an empty function call at each tracepoint site. Can be
|
|
# dynamically changed for a probe function.
|
|
#
|
|
config TRACEPOINTS
|
|
bool
|
|
|
|
endmenu # General setup
|
|
|
|
source "arch/Kconfig"
|
|
|
|
config RT_MUTEXES
|
|
bool
|
|
default y if PREEMPT_RT
|
|
|
|
config BASE_SMALL
|
|
int
|
|
default 0 if BASE_FULL
|
|
default 1 if !BASE_FULL
|
|
|
|
config MODULE_SIG_FORMAT
|
|
def_bool n
|
|
select SYSTEM_DATA_VERIFICATION
|
|
|
|
source "kernel/module/Kconfig"
|
|
|
|
config INIT_ALL_POSSIBLE
|
|
bool
|
|
help
|
|
Back when each arch used to define their own cpu_online_mask and
|
|
cpu_possible_mask, some of them chose to initialize cpu_possible_mask
|
|
with all 1s, and others with all 0s. When they were centralised,
|
|
it was better to provide this option than to break all the archs
|
|
and have several arch maintainers pursuing me down dark alleys.
|
|
|
|
source "block/Kconfig"
|
|
|
|
config PREEMPT_NOTIFIERS
|
|
bool
|
|
|
|
config PADATA
|
|
depends on SMP
|
|
bool
|
|
|
|
config ASN1
|
|
tristate
|
|
help
|
|
Build a simple ASN.1 grammar compiler that produces a bytecode output
|
|
that can be interpreted by the ASN.1 stream decoder and used to
|
|
inform it as to what tags are to be expected in a stream and what
|
|
functions to call on what tags.
|
|
|
|
source "kernel/Kconfig.locks"
|
|
|
|
config ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
|
|
bool
|
|
|
|
config ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
|
|
bool
|
|
|
|
# It may be useful for an architecture to override the definitions of the
|
|
# SYSCALL_DEFINE() and __SYSCALL_DEFINEx() macros in <linux/syscalls.h>
|
|
# and the COMPAT_ variants in <linux/compat.h>, in particular to use a
|
|
# different calling convention for syscalls. They can also override the
|
|
# macros for not-implemented syscalls in kernel/sys_ni.c and
|
|
# kernel/time/posix-stubs.c. All these overrides need to be available in
|
|
# <asm/syscall_wrapper.h>.
|
|
config ARCH_HAS_SYSCALL_WRAPPER
|
|
def_bool n
|
|
|
|
source "init/Kconfig.gki"
|
|
source "init/Kconfig.gki-debug"
|