5장. 외부 커널 매개변수에 대한 중요한 변경 사항
이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 9.4와 함께 배포된 커널의 중요한 변경 사항에 대한 요약을 제공합니다. 이러한 변경으로는 proc
항목, sysctl
및 sysfs
기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 띄는 동작 변경과 같은 추가 또는 업데이트된 동작 변경이 포함될 수 있습니다.
새 커널 매개변수
accept_memory=
[MM]
값:
lazy
(기본값)- 기본적으로 승인되지 않은 메모리는 긴 부팅 시간을 피하기 위해 lazily가 허용됩니다. lazy 옵션은 모든 메모리가 수락될 때까지 일부 런타임 오버헤드를 추가합니다. 대부분의 경우 오버헤드는 무시할 수 있습니다.
eager
-
일부 워크로드 또는 디버깅 용도의 경우
accept_memory=eager
를 사용하여 부팅 중에 한 번에 모든 메모리를 허용할 수 있습니다.
arm64.nomops
[ARM64]
무조건 메모리 복사 및 메모리 세트 지침이 지원됩니다.
cgroup_favordynmods=
[KNL]
favordynmods
를 활성화하거나 비활성화합니다.
값:
-
true
-
false
기본값은 CONFIG_CGROUP_FAVOR_DYNMODS
입니다.
early_page_ext
[KNL]
더 초기 부팅 할당을 처리하기 위해 page_ext
초기화를 이전 단계에 적용합니다.
부작용으로 일부 최적화는 비활성화되어 있을 수 있습니다. 예를 들어 병렬화된 메모리 초기화는 비활성화되어 있습니다. 따라서 특히 메모리가 많은 시스템에서 부팅 프로세스가 더 오래 걸릴 수 있습니다.
CONFIG_PAGE_EXTENSION=y
에서 사용할 수 있습니다.
fw_devlink.sync_state=
[KNL]
프로브할 수 있는 모든 장치가 프로빙을 완료하면 이 매개변수는 아직 sync_state()
호출을 수신하지 않은 장치에서 수행할 작업을 제어합니다.
값:
strict
(기본값)- 소비자가 성공적으로 프로브를 계속 기다립니다.
timeout
-
소비자에서 대기하고
deferred_probe_timeout
이 만료되었거나CONFIG_MODULES
가false
인 경우late_initcall()
후sync_state()
호출을 아직 수신하지 않은 모든 장치에서sync_state()
를 호출합니다.
ia32_emulation=
[X86-64]
값:
true
-
32비트 프로그램을 로드하고 32비트 syscall을 실행할 수 있으므로 기본적으로 부팅 시
IA32_EMULATION_DEFAULT_DISABLED
를 덮어씁니다. false
- 무조건 IA32 에뮬레이션을 비활성화합니다.
kunit.enable=
[KUNIT]
KUnit 테스트 실행을 활성화합니다. CONFIG_KUNIT
을 완전히 활성화하도록 설정해야 합니다.
KUNIT_DEFAULT_ENABLED
를 사용하여 기본값을 재정의할 수 있습니다.
기본값은 1입니다(활성화).
mtrr=debug
[X86]
부팅 시 MTRR 레지스터와 관련된 디버그 정보를 출력할 수 있습니다.
rcupdate.rcu_cpu_stall_cputime=
[KNL]
샘플링 기간 동안 CPU 시간과 인터럽트 및 작업 수에 대한 통계를 제공합니다. 연속 RCU stalls의 경우 모든 샘플링 기간은 첫 번째 RCU의 절반 시간 제한에서 시작됩니다.
rcupdate.rcu_exp_stall_task_details=
[KNL]
빠른 RCU CPU가 경고하는 동안 현재 RCU 유예 기간을 차단하는 모든 작업의 스택 덤프를 출력합니다.
spec_rstack_overflow=
[X86]
AMD Cryostat CPU에서 RAS 오버플로 완화 기능을 제어합니다.
값:
off
- 완화 비활성화
마이크로 코드
- 마이크로 코드 완화만 활성화합니다.
safe-ret
(기본값)- 소프트웨어 전용 보안 RET 완화 기능을 활성화합니다.
ibpb
- 커널 항목에서 IBPB를 실행하여 완화 기능을 활성화합니다.
ibpb-vmexit
- VMEXIT에서만 IBPB를 발행합니다. 이 완화 방법은 클라우드 환경에 따라 다릅니다.
workqueue.unbound_cpus=
[KNL,SMP]
바인딩되지 않은 작업 큐에서 사용할 하나 또는 일부 CPU를 제한하려면 을 지정합니다.
value: CPU 목록입니다.
기본적으로 모든 온라인 CPU는 바인딩되지 않은 작업 큐에 사용할 수 있습니다.
업데이트된 커널 매개변수
amd_iommu=
[HW, X86-64]
시스템의 AMD IOMMU 드라이버에 매개변수를 전달합니다.
값:
fullflush
-
더 이상 사용되지 않는
iommu.strict=1
. off
- 시스템에 있는 AMD IOMMU를 초기화하지 마십시오.
force_isolation
-
모든 장치에 대해 장치 격리를 강제 적용합니다. IOMMU 드라이버는 더 이상 필요에 따라 격리 요구 사항을 대체할 수 없습니다. 이 옵션은
iommu=pt
를 덮어쓰지 않습니다. force_enable
- IOMMU가 활성화된 버그로 알려진 플랫폼에서 IOMMU를 강제로 활성화합니다. 이 옵션을 주의해서 사용하십시오.
- new:
pgtbl_v1
(기본값) - Cryostat-API에 버전 1 페이지 테이블을 사용합니다.
- new:
pgtbl_v2
- Cryostat-API에 버전 2 페이지 테이블을 사용합니다.
- new:
irtcachedis
- IRT(Interrupt Remapping Table) 캐싱을 비활성화합니다.
nosmt
[KNL, PPC, S390]
대칭 멀티스레딩(SMT)을 비활성화합니다. smt=1
과 동일합니다.
[KNL, X86, PPC]
대칭 멀티스레딩(SMT)을 비활성화합니다.
nosmt=force
-
강제 SMT를 비활성화합니다.
sysfs
제어 파일을 사용하여 실행 취소할 수 없습니다.
page_reporting.page_reporting_order=
[KNL]
최소 페이지 보고 순서.
값: integer.
최소 페이지 보고 순서를 조정합니다.
new: 페이지 보고는 MAX_ORDER
를 초과하면 비활성화되어 있습니다.
tsc=
TSC에 대한 클럭 소스 안정성 검사를 비활성화합니다.
값:
- [x86]
신뢰할 수 있는
- tsc 클럭 소스를 신뢰할 수 있음으로 표시합니다. 이렇게 하면 런타임 시 클럭 소스 확인이 비활성화되고 부팅 시 수행되는 안정성 검사가 비활성화됩니다. 이전 하드웨어 및 가상화 환경에서 해상도가 높은 타이머 모드를 활성화하는 데 사용됩니다.
- [x86]
noirqtime
-
irq
계정을 수행하는 데 TSC를 사용하지 마십시오. 시간을 실행하는 데 사용하면 RDTSC가 느리고 이 회계에서 오버헤드가 증가할 수 있는 모든 플랫폼에서IRQ_TIME_ACCOUNTING
을 비활성화합니다. - [x86]
불안정
- TSC 클럭 소스를 불안정으로 표시합니다. 이는 부팅시 TSC가 무조건 불안정하게 표시하며, TSC 워치(TSC 워치)가 명시된 후 추가 허블을 방지할 수 있습니다.
- [x86]
nowatchdog
- 클럭 소스 워치독을 비활성화합니다. 클럭 소스 워치독의 중단이 허용되지 않는 엄격한 대기 시간 요구 사항이 있는 상황에서 사용됩니다.
- [x86]
recalibrate
- TSC 주파수가 MSR 또는 CPUID(0x15)를 사용하여 HW 또는 FW에서 얻은 시스템의 HW 타이머(HPET 또는 PM 타이머)에 대한 강제 재조정. 차이가 500 ppm 이상인 경우 경고합니다.
- 새로운 기능: [x86]
워치독
TSC를 다른 HW 타이머(HPET 또는 PM 타이머)를 확인하기 위해 워치독 클럭소스로 사용하지만 TSC가 신뢰할 수 있는 것으로 간주되는 시스템에서만 사용합니다.
이전
tsc=nowatchdog
은 이를 비활성화합니다. 나중에tsc=nowatchdog
이 이를 재정의합니다. 콘솔 메시지는 이러한 억제 또는 덮어쓰기에 플래그를 지정합니다.
usbcore.authorized_default=
[USB]
기본 USB 장치 권한 부여.
값:
- New:
-1
(기본값) - 권한 부여(동일 1).
0
- 권한이 없습니다.
1
- 권한 부여.
2
- 장치가 내부 포트에 연결된 경우 권한이 부여됩니다.
제거된 커널 매개변수
-
cpu0_hotplug
-
sysfs.deprecated
새로운 sysctl 매개변수
io_uring_group
값:
1
-
io_uring
인스턴스를 생성하려면 프로세스가 권한이 있어야 합니다(CAP_SYS_ADMIN
) 또는io_uring_group
그룹에 있어야 합니다. -1
(기본값)-
CAP_SYS_ADMIN
기능이 있는 프로세스만io_uring
인스턴스를 생성할 수 있습니다.
numa_balancing_promote_rate_limit_MBps
서로 다른 메모리 유형 간의 승격 또는 강등 처리량이 너무 높으면 애플리케이션 대기 시간이 저하될 수 있습니다. 이 매개변수를 사용하여 승격 처리량을 평가할 수 있습니다. 노드당 최대 승격 처리량(MB/s)은 설정된 값 이상으로 제한됩니다.
엄지엄 규칙은 이를 PMEM 노드 쓰기 대역폭의 1/10 미만으로 설정하는 것입니다.
업데이트된 sysctl 매개변수
io_uring_disabled
모든 프로세스에서 새 io_uring
인스턴스를 생성하지 못하도록 합니다. 이를 활성화하면 커널의 공격 면적이 줄어듭니다.
값:
- 새로운 기능:
0
-
모든 프로세스는
io_uring
인스턴스를 정상적으로 생성할 수 있습니다. - 새로운 기능:
1
io_uring
생성은 io_uring_group 그룹에 없는 권한이 없는 프로세스에 대해 비활성화되어 있습니다.io_uring_setup()
은-EPERM
. 기존io_uring
인스턴스를 계속 사용할 수 있습니다.자세한 내용은
io_uring_group
설명서를 참조하십시오.- 새로운 기능:
2
(기본값) -
모든 프로세스에 대해
io_uring
생성이 비활성화됩니다.io_uring_setup()
은 항상-EPERM
. 기존io_uring
인스턴스를 계속 사용할 수 있습니다.