4장. 외부 커널 매개변수에 대한 중요한 변경 사항


이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 9.6에서 배포된 커널의 중요한 변경 사항에 대한 요약을 제공합니다. 이러한 변경으로는 proc 항목, sysctlsysfs 기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 띄는 동작 변경과 같은 추가 또는 업데이트된 동작 변경이 포함될 수 있습니다.

새 커널 매개변수

arm64.no32bit_el0=

[ARM64]

무조건 32비트 애플리케이션의 실행을 비활성화합니다.

con3215_drop=

[S390]

형식: y|n|Y|N|1|0

true로 설정하면 콘솔 버퍼가 가득 차면 3215 콘솔에서 데이터를 삭제합니다. 이 경우 3270 터미널 에뮬레이터(예: x3270)를 사용하는 Operator는 콘솔 출력을 위해 명확한 키를 입력할 필요가 없으며 계속하려면 커널을 입력할 필요가 없습니다. 이로 인해 3270 터미널 에뮬레이터가 활성화되면 부팅 시간이 훨씬 빨라집니다. 3270 터미널 에뮬레이터를 사용하지 않으면 이 매개변수는 적용되지 않습니다.

stress_hpt=

[PPC]

해시 페이지 테이블의 커널 HPT 항목 수를 제한하여 커널 주소의 해시 페이지 테이블 폴트 속도를 늘립니다.

kvm.enable_virt_at_load=

[KVM,ARM64,LOONGARCH,MIPS,RISCV,X86]

활성화하면 KVM은 KVM이 로드될 때 하드웨어에서 가상화를 활성화하고 KVM이 언로드될 때 가상화를 비활성화합니다(KVM이 모듈로 구축된 경우).

비활성화된 경우 KVM은 VM을 생성하고 삭제할 때 필요에 따라 가상화를 동적으로 활성화하고 비활성화합니다. 즉, VM 수의 0 Cryostat1 및 1 Cryostat0이 전환됩니다.

모듈 lode에서 가상화를 활성화하면 KVM이 모든 온라인 CPU에서 가상화를 직렬화할 때 0 Cryostat1 VM 생성 시 발생할 수 있는 대기 시간을 방지할 수 있습니다. KVM이 로드될 때 가상화를 활성화하는 "비용"은 이렇게 하면 "소유" 가상화 하드웨어를 사용하려는 트리 외 하이퍼바이저를 사용할 수 있다는 점입니다.

kvm-arm.wfe_trap_policy=

[KVM,ARM]

KVM VM에 대해 WFE 명령 트랩을 설정할 시기를 제어합니다. CPU 아키텍처에서는 트랩이 허용되지만 CPU 아키텍처에서는 보장되지 않습니다.

트랩: WFE 명령 트랩 설정

notrap: 명확한 WFE 명령 트랩

kvm-arm.wfi_trap_policy=

[KVM,ARM]

KVM VM에 대해 WFI 명령 트랩을 설정할 시기를 제어합니다. CPU 아키텍처에서는 트랩이 허용되지만 CPU 아키텍처에서는 보장되지 않습니다.

트랩: WFI 명령 트랩 설정

notrap: 명확한 WFI 명령 트랩

config_acs=

Format: <ACS flags>@<pci_dev>[; …​]

(위에 지정된 형식으로 하나 이상의 PCI 장치)를 선택적으로 지정(선택 사항)에 추가하여 flags로 구분됩니다. 플래그에 지정된 사항에 따라 특정 기능이 활성화, 비활성화 또는 변경되지 않습니다.

ACS 플래그는 다음과 같이 정의됩니다.

bit-0
ACS 소스 검증
bit-1
ACS Translation Blocking
bit-2
ACS P2P 요청 리디렉션
bit-3
ACS P2P 완료 리디렉션
bit-4
ACS Upstream Forwarding
bit-5
ACS P2P Egress Control
bit-6
ACS 직접 번역 P2P

각 비트는 다음과 같이 표시할 수 있습니다.

0 - 강제 비활성화

1 - 강제 활성화

X - 변경되지 않음

예를 들어, pci=config_acs=10x는 P2P 요청 리디렉션을 활성화하고, Translation Block을 비활성화하고, 소스 유효성 검사를 변경하지 않고, 전원 또는 펌웨어가 설정한 상태에서 변경되지 않도록 ACS를 지원하는 모든 장치를 구성합니다.

참고

이렇게 하면 장치 간 격리가 제거될 수 있으며 IOMMU 그룹에 더 많은 장치를 배치할 수 있습니다.

rcutree.nocb_nobypass_lim_per_jiffy=

[KNL]

콜백 오프로드(rcu_nocbs) CPU에서 RCU는 →nocb_bypass 목록을 사용하여 콜백 플러드로 인해 발생하는 잠금 경합을 줄입니다. 그러나 영향을 받지 않는 일반적인 경우 →nocb_bypass 목록 및 해당 잠금의 추가 오버헤드를 방지하기 위해 RCU 큐가 기본 →cblist로 직접 큐입니다. 그러나 단일 jiffy 동안 대기열에 너무 많은 콜백이 있는 경우 RCU는 콜백을 →nocb_bypass 큐로 사전 큐에 추가합니다. "too many"의 정의는 이 커널 부팅 매개 변수에 의해 제공됩니다.

rcutree.nohz_full_patience_delay=

[KNL]

callback-offloaded (rcu_nocbs) CPU에서 유예 기간이 지정된 기간(밀리초)에 도달하지 않는 한 RCU를 방해하지 않도록 합니다. 기본값은 0입니다. 큰 값은 5초 후에 제한됩니다. 모든 값은 jiffies로 표시 가능한 가장 가까운 값으로 반올림됩니다.

rcutree.rcu_divisor=

[KNL]

이 CPU에서 대기열에 있는 콜백 수에서 callback-invocation batch limit bl을 계산하는 데 사용할 shift-right count를 설정합니다. 결과는 rcutree.blimit 커널 매개변수 값으로 아래에 바인딩됩니다. 모든 bl 콜백은 CPU가 다른 작업을 수행할 수 있도록 softirq 핸들러를 종료합니다.

이 콜백 주입 배치 제한은 오프로드되지 않은 콜백 호출에만 적용됩니다. 오프로드된 콜백은 대신 rcuoc kthread의 컨텍스트에서 호출되며 스케줄러는 다른 작업을 수행하는 것처럼 선점합니다.

rcutree.enable_rcu_lazy=

[KNL]

전원을 절약하기 위해 지연 후 배치 RCU 콜백 및 플러시, 메모리 부족 또는 콜백 목록이 너무 커집니다.

rcutree.rcu_normal_wake_from_gp=

[KNL]

synchronize_rcu() 호출의 대기 시간을 줄입니다. 이 방법은 synchronize_rcu() 호출자의 자체 추적을 유지하므로 call_rcu[_hurry]() 경로를 사용하지 않기 때문에 일반 콜백과 상호 작용하지 않습니다. 이는 정상적인 유예 기간 동안의 것입니다.

이를 활성화하는 방법:

echo 1 > /sys/module/rcutree/parameters/rcu_normal_wake_from_gpp 또는 boot 매개변수 "rcutree.rcu_normal_wake_from_gp=1"

기본값은 0입니다.

제거된 커널 매개변수

clocksource.max_cswd_read_retries=

[KNL]

클럭이 불안정하게 표시되기 전에 외부 지연으로 인한 clocksource_watchdog() 재시도 횟수입니다. 기본값은 두 번의 재시도(즉, 테스트 중인 시계를 세 번 읽으려고 함)입니다.

disable_cpu_apicid=

[X86,APIC,SMP]

형식: <int>

부팅 시 비활성화될 해당 CPU의 초기 APIC ID 수입니다. 주로 kdump 2nd 커널이 BSP를 비활성화하여 AP에서 BSP로 INIT를 BSP로 전송하여 시스템을 재설정하거나 중단하지 않고 여러 CPU를 해제하는 데 사용됩니다.

변경된 커널 매개변수

amd_iommu=

[HW,X86_64]

시스템의 AMD IOMMU 드라이버에 매개변수를 전달합니다.

가능한 값은 다음과 같습니다.

fullflush
더 이상 사용되지 않는 iommu.strict=1
off
시스템에 있는 AMD IOMMU를 초기화하지 마십시오.
force_isolation
모든 장치에 대해 장치 격리를 강제 적용합니다. IOMMU 드라이버는 더 이상 필요에 따라 격리 요구 사항을 대체할 수 없습니다. 이 옵션은 iommu=pt를 덮어쓰지 않습니다.
force_enable
IOMMU가 활성화된 버그로 알려진 플랫폼에서 IOMMU를 강제로 활성화합니다. 이 옵션을 주의해서 사용하십시오.
pgtbl_v1
Cryostat-API(기본값)에 v1 페이지 테이블을 사용합니다.
pgtbl_v2
Cryostat-API에 v2 페이지 테이블을 사용합니다.
irtcachedis
IRT(Interrupt Remapping Table) 캐싱을 비활성화합니다.
nohugepages
v1 페이지 테이블에 사용되는 페이지 크기를 4KiB로 제한합니다.
v2_pgsizes_only
v1 페이지 테이블에 사용되는 페이지 크기를 4KiB 또는 2Mib 또는 1GiB로 제한합니다.

debug_guardpage_minorder=

[KNL]

CONFIG_DEBUG_PAGEALLOC가 설정된 경우 이 매개변수는 의도적으로 보관되는 페이지 순서를 제어할 수 있으므로 buddy al Cryostat에 의해 무료로 보호됩니다. 값이 클수록 임의 메모리 손상을 추적할 가능성이 높지만 일반 시스템 사용을 위한 메모리 양을 줄입니다. 가능한 최대 값은 MAX_PAGE_ORDER/2입니다. 이 매개변수를 1 또는 2로 설정하면 CPU가 임의의 메모리 위치에 쓰일 때 커널 또는 드라이버 코드의 버그로 인해 발생하는 대부분의 임의 메모리 손상 문제를 식별하기에 충분합니다. CONFIG_DEBUG_PAGEALLOC에서 감지할 수 없는 CPU MMU를 우회할 수 없는 버그 하드웨어 또는 펌웨어로 인한 메모리 손상의 클래스가 있거나 드라이버 잘못 프로그래밍(버스 수준에서 메모리가 기록되고 CPU MMU는 무시됨)이 있으므로 이 옵션은 이러한 문제를 추적하는 데 도움이 되지 않습니다.

page_reporting.page_reporting_order=

[KNL]

최소 페이지 보고 순서.

형식: <integer>

최소 페이지 보고 순서를 조정합니다. Max_PAGE_ORDER를 초과하면 페이지 보고가 비활성화됩니다.

preempt=

[KNL]

CONFIG_PREEMPT_DYNAMIC none - cond_resched() 호출을 개인 정보- cond_resched() 호출에 한정하고 might_sleep() 호출을 full-sleep() 호출 전체 - 명시적으로 선점할 수 없는 모든 섹션을 선점할 수 있는 경우 선점 모드를 선택합니다. 또한 작업은 누적 스핀 잠금을 생성합니다(중요 섹션이 잠금 자체 이상으로 명시적으로 비활성화되지 않은 경우).

sched_thermal_decay_shift=

[Deprecated] [KNL, SMP]

스케줄러 온도 부족 신호에 대한 교대 전환을 설정합니다. 열압 신호는 다른 스케줄러 페트의 기본 decay 기간을 따릅니다.

usb-storage.delay_use=

[UMS]

논리 단위(기본값 1)에 대해 새 장치를 스캔하기 전의 지연 시간(초)입니다. 값이 "ms" 접미사가 있는 경우 선택적으로 지연 시간(밀리초)입니다. 예: delay_use=2567ms.

새로운 sysctl 매개변수

skb_defer_max

할당된 CPU에 의해 해제되는 skbs의 per-cpu 목록의 최대 크기(skbs)입니다. 지금까지 TCP 스택에서 사용합니다.

기본값: 64

sysctl 매개변수 변경

overcommit_memory

이 값에는 메모리 과다 할당을 활성화하는 플래그가 포함되어 있습니다.

이 플래그가 0이면 커널은 사용자 공간 메모리 요청 크기를 총 메모리와 스왑과 비교하고 명확한 오버 커밋을 거부합니다.

이 플래그가 1이면 커널은 실제로 실행될 때까지 충분한 메모리가 있는 것으로 간주합니다.

이 플래그가 2인 경우 커널은 메모리 과다 할당을 방지하는 "없음 오버 커밋" 정책을 사용합니다. user_reserve_kbytes는 이 정책에 영향을 미칩니다.

이 기능은 많은 양의 메모리 "단일 인 케이스"가 있고 많이 사용하지 않는 프로그램이 많이 있기 때문에 매우 유용할 수 있습니다.

기본값은 0입니다.

자세한 내용은 Documentation/mm/overcommit-accounting.rst 및 mm/util.c::__vm_enough_memory()를 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat