5.2. 외부 커널 매개변수로 중요한 변경

이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 8.2와 함께 배포된 커널의 중요한 변경 사항을 요약합니다. 이러한 변경 사항에는 proc 항목, sysctlsysfs 기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 보이는 동작 변경이 포함됩니다.

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 완화가 필요하지 않으며 추가 완화 기능을 제공하지 않습니다.

자세한 내용은 업스트림 커널 설명서를 참조하십시오.