5.2. 외부 커널 매개변수로 중요한 변경
이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 8.2와 함께 배포된 커널의 중요한 변경 사항을 요약합니다. 이러한 변경 사항에는 proc
항목, sysctl
및 sysfs
기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 보이는 동작 변경이 포함됩니다.
5.2.1. 새 커널 매개변수
- CPUidle.governor = [CPU_IDLE]
-
사용할
cpuidle
governor의 이름입니다. - deferred_probe_timeout = [KNL]
지연된 프로브가 프로브에 대한 종속성 대기를 중지할 때까지 시간 초과(초)를 설정하는 디버깅 매개 변수입니다.
옵트된 특정 종속성(하위 시스템 또는 드라이버)만 무시됩니다. 시간 제한 0은
initcall 끝에 시간 초과됩니다.
이 매개변수는 재시도 후에도 지연된 프로브 목록에 장치를 덤프합니다.- kvm.nx_huge_pages = [KVM]
이 매개 변수는
X86_BUG_ITLB_MULTIHIT
버그에 대한 소프트웨어 해결 방법을 제어합니다.옵션은 다음과 같습니다.
-
force
- 항상 해결방법을 배포합니다. -
off
- 해결방법을 배치하지 마십시오. -
auto
(기본값) -X86_BUG_ITLB_MULTIHIT
를 기반으로 해결방법을 배포합니다.
-
호스트에 소프트웨어 해결방법이 활성화된 경우 중첩 게스트에 대해 게스트를 활성화할 필요가 없습니다.
- kvm.nx_huge_pages_recovery_ratio = [KVM]
- 이 매개변수는 주기적으로 대규모 페이지로 다시 설정되는 4KiB 페이지 수를 제어합니다. 0은 복구를 비활성화합니다. 값이 N인 경우 KVM(커널 기반 가상 시스템)은 1분마다 4KiB 페이지의 1/N을 정지합니다. 기본값은 60입니다.
- page_alloc.shuffle = [KNL]
페이지 할당자가 사용 가능한 목록을 임의로 조정해야 하는지 여부를 제어하는 부울 플래그입니다.
커널이 직접 매핑 메모리 측 캐시가 있는 플랫폼에서 실행되고 있음을 감지하면 임의화를 자동으로 활성화할 수 있습니다. 이 매개 변수는 해당 동작을 재정의/비활성화하는 데 사용할 수 있습니다.
플래그 상태는
/sys/module/page_alloc/parameters/shuffle
파일에서sysfs
의사 파일 시스템에서 읽을 수 있습니다.- panic_print =
패닉이 발생할 때 시스템 정보를 인쇄하기 위한 비트마스크.
사용자는 다음 비트의 조합을 선택할 수 있습니다.
- 비트 0: 모든 작업 정보 출력
- 비트 1: 인쇄 시스템 메모리 정보
- 비트 2: 타이머 정보 인쇄
-
비트 3:
CONFIG_LOCKDEP
커널 구성이 있는 경우 정보 잠금 -
비트 4:
ftrace
버퍼 인쇄 -
비트 5: 버퍼에서 모든
printk
메시지 인쇄
- rcutree.sysrq_rcu = [KNL]
-
sysrq
키를 명령을 실행하여 새 유예 기간이 아직 시작되지 않은 이유를 확인하기 위해 주의해서 Tree RCU의rcu_node
트리를 덤프합니다. - rcutorture.fwd_progress = [KNL]
- 이 개념을 지원하는 RCU 유형에 대해 RCU(Read-copy update) grace-period forward-progress 테스팅을 활성화합니다.
- rcutorture.fwd_progress_div = [KNL]
- CPU-stall-warning 기간의 일부를 지정하여 엄격한 전방향 진행 테스트를 수행합니다.
- rcutorture.fwd_progress_holdoff = [KNL]
- 연속적인 전방향 진행 테스트 사이에 대기하는 시간(초)입니다.
- rcutorture.fwd_progress_need_resched = [KNL]
-
Close-loop forward-progress 테스팅 중에
need_resched()
를 검사 내에서cond_resched() 호출
을 포함합니다. - tsx = [X86]
이 매개변수는 TSX 제어를 지원하는 Intel 프로세서의 TSX(Transactional Synchronization Extensions) 기능을 제어합니다.
옵션은 다음과 같습니다.
-
의
- 시스템에서 TSX를 활성화합니다. 알려진 모든 보안 취약점에 대한 완화 조치가 있지만 TSX는 이전의 몇 가지 추측 관련 CVE를 가속화했습니다. 따라서 활성화된 상태로 두는 것과 관련된 알 수 없는 보안 위험이 있을 수 있습니다. -
off
- 시스템에서 TSX를 비활성화합니다. 이 옵션은 MDS(Microarchitectural Data Sampling)에 취약하지 않은 최신 CPU에만 적용됩니다. 즉,MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1
이 있고 마이크로 코드 업데이트를 통해 새IA32_TSX_CTRL
모델별 레지스터(MSR)를 가져옵니다. 이 새로운 MSR을 사용하면 TSX 기능을 안정적으로 비활성화할 수 있습니다. -
auto
-X86_BUG_TAA
가 있는 경우 TSX를 비활성화합니다. 그렇지 않으면 시스템에서 TSX를 활성화합니다.
-
이 매개변수를 지정하지 않는 것은 tsx=off
와 동일합니다.
자세한 내용은 업스트림 커널 설명서를 참조하십시오.
- tsx_async_abort = [X86,INTEL]
이 매개변수는 TSX Async Abort (TAA) 취약점에 대한 완화 기능을 제어합니다.
MDS(Micro-architectural Data Sampling)와 유사하게 TSX(Transactional Synchronization Extensions)를 지원하는 특정 CPU는 CPU 내부 버퍼에 대한 공격에 취약합니다. 이 취약점은 특정 조건에서 공개된 가젯에 정보를 전달할 수 있습니다.
취약한 프로세서에서 예측 가능한 전달된 데이터를 캐시 사이드 채널 공격에 사용하여 공격자가 직접 액세스할 수 없는 데이터에 액세스할 수 있습니다.
옵션은 다음과 같습니다.
-
full
- TSX가 활성화된 경우 취약한 CPU에서 TAA 완화를 활성화합니다. -
full,nosmt
- TAA 완화를 활성화하고 취약한 CPU에서 SMT(Simultaneous Multi Threading)를 비활성화합니다. TSX가 비활성화되면 CPU가 크로스 스레드 TAA 공격에 취약하지 않기 때문에 SMT가 비활성화되지 않습니다. off
- TAA 완화를 무조건 비활성화합니다.MDS 영향을 받는 시스템에서 두 취약점이 동일한 메커니즘으로 완화되므로 활성 MDS 완화를 통해
tsx_async_abort=off
매개 변수를 방지할 수 있습니다. 따라서 이 완화를 비활성화하려면mds=off
매개 변수도 지정해야 합니다.이 옵션을 지정하지 않으면
tsx_async_abort=full
과 동일합니다. 영향을 받는 MDS 완화 및 MDS 완화를 배포하는 CPU에서는 TAA 완화가 필요하지 않으며 추가 완화 기능을 제공하지 않습니다.
-
자세한 내용은 업스트림 커널 설명서를 참조하십시오.