5장. 외부 커널 매개변수 관련 중요 변경


이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 8.6과 함께 제공되는 커널의 중요한 변경 사항에 대한 요약을 제공합니다. 이러한 변경에는 예를 들어 추가되거나 업데이트된 proc 항목, sysctl, sysfs 기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 띄는 동작 변경이 포함될 수 있습니다.

새로운 커널 매개변수

fw_devlink.strict = [KNL]

형식: <bool>

이 매개변수를 사용하면 유추된 모든 종속성을 필수 종속 항목으로 처리할 수 있습니다. 이 설정은 fw_devlink=on|rpm 에서만 적용됩니다.

no_hash_pointers
이 매개 변수를 사용하면 콘솔 또는 버퍼에 출력되는 포인터를 해시 해제하도록 강제할 수 있습니다. 기본적으로 포인터가 출력되면 해시로 포인터의 값을 가리키는 %p 형식 문자열이 모호해집니다.By default, when a pointer is printed using the %p format string that pointer's value is obscured by hashing. 실제 커널 주소를 권한이 없는 사용자로부터 숨기는 보안 기능입니다. 그러나 또한 AMQ 포인터를 비교할 수 없기 때문에 커널을 디버깅하기가 더 어려워집니다. 이 명령줄 매개 변수를 지정하면 모든 일반 포인터에 true 값이 출력됩니다. %pK 형식 문자열을 사용하여 인쇄되는 포인터는 여전히 해시될 수 있습니다. no_hash_pointers 를 커널을 디버깅하고 프로덕션 환경에서 사용하지 않도록 지정합니다.
no_entry_flush = [PPC]
이 매개변수를 사용하면 커널을 입력할 때 L1-D 캐시가 플러시되지 않도록 할 수 있습니다.
no_uaccess_flush = [PPC]
이 매개변수를 사용하면 사용자 데이터에 액세스한 후 L1-D 캐시의 플러시를 방지할 수 있습니다.
rcutorture.nocbs_nthreads = [KNL]

이 매개변수를 사용하면 RCU(Read-copy-update) 콜백-오프로드 토글러 수를 설정할 수 있습니다.

기본값은 0(zero)이며, 강제 처리를 비활성화합니다.

rcutorture.nocbs_toggle = [KNL]
이 매개변수를 사용하면 연속 콜백-오프로드 투기 시도 사이의 지연(밀리초)을 설정할 수 있습니다.
refscale.verbose_batched = [KNL]

이 매개변수를 사용하면 추가 printk() 문을 배치할 수 있습니다.

0(기본값) 또는 음수 값을 지정하여 모든 항목을 출력할 수 있습니다. 그렇지 않으면 모든 N번째 상세 정보 표시를 인쇄합니다. 여기서 N은 지정된 값입니다.

strict_sas_size = [X86]

형식: <bool>

이 매개변수를 사용하면 지원되는 부동 소수점 단위(FPU) 기능에 따라 필요한 신호 프레임 크기에 대해 엄격한 sigaltstack 크기 검사를 활성화하거나 비활성화할 수 있습니다. 이 매개 변수를 사용하여 아직 AT_MINSIGSTKSZ 보조 벡터를 인식하지 않은 바이너리를 필터링할 수 있습니다.

torture.verbose_sleep_frequency = [KNL]

이 매개변수는 각 sleep 간에 출력해야 하는 자세한 printk() 문 수를 지정합니다.

기본값 0(zero)은 verbose-printk() 절전을 비활성화합니다.

torture.verbose_sleep_duration = [KNL]
이 매개변수는 jiffies에서 각 verbose-printk() sleep의 기간을 지정합니다.
tsc_early_khz = [X86]

형식: <unsigned int>

이 매개 변수를 사용하면TSC (Time Stamp counter) 교정을 건너 뛰고 대신 지정된 값을 사용할 수 있습니다. 이 매개변수는 초기 TSC 빈도 검색 절차를 신뢰할 수 없는 경우 유용합니다. CPUID.16h가 지원하고 부분 CPUID.15h 지원이 있는 오버클로킹된 시스템 등.

업데이트된 커널 매개변수

amd_iommu = [HW,X86-64]

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

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

  • Fullflush - 매핑 해제 시 IO/TLB 항목을 플러시할 수 있도록 합니다. 그렇지 않으면 재사용되기 전에 플러시되므로 훨씬 빠릅니다.
  • Off - 시스템에 있는 AMD IOMMU를 초기화하지 마십시오.
  • force_isolation - 모든 장치에 대해 강제로 장치 격리. IOMMU 드라이버는 더 이상 필요에 따라 격리 요구 사항을 상승시킬 수 없습니다. 이 옵션은 iommu=pt 를 덮어쓰지 않습니다.
  • force_enable - IOMMU가 활성화된 것으로 알려진 플랫폼에서 IOMMU를 사용할 수 있습니다. 주의해서 이 옵션을 사용하십시오.
acpi.debug_level = [HW,ACPI,ACPI_DEBUG]

형식: <int>

Advanced Configuration and Power Interface (ACPI) 디버그 출력을 생성하려면 CONFIG_ACPI_DEBUG 를 활성화해야 합니다. debug_layer 의 비트는 ACPI 소스 파일의 _COMPONENT 에 해당합니다. 예를 들어 debug_level의 #define _COMPONENT ACPI_EVENTS 비트는 ACPI_DEBUG_PRINT 문의 수준에 해당합니다. 예: ACPI_DEBUG_PRINT((ACPI_DB_INFO, …

debug_level 마스크의 기본값은 "info"입니다. 디버그 계층 및 수준에 대한 자세한 내용은 Documentation/acpi/debug.txt 를 참조하십시오.

프로세서 드라이버 정보 메시지를 활성화합니다.

acpi.debug_layer=0x20000000

AML "Debug" 출력을 활성화합니다. 예를 들어 AML을 해석하는 동안 Debug 오브젝트에 저장소를 저장합니다.

ACPI .debug_layer=0xffffffffff,acpi.debug_level=0x2 ACPI 하드웨어: acpi.debug_layer=0x2,acpi.debug_level=0xffffffffff

일부 값은 시스템을 사용할 수 없는 너무 많은 출력을 생성합니다. log_buf_len 매개 변수는 더 많은 출력을 캡처해야 하는 경우 유용합니다.

acpi_mask_gpe = [HW,ACPI]

형식: <byte> 또는 <bitmap-list>

_Lxx/_Exx 가 존재하기 때문에 지원되지 않는 하드웨어 또는 펌웨어 기능에 의해 트리거되는 일부 일반 목적 이벤트(GPE)를 사용하면 GPE 디스패처가 자동으로 비활성화할 수 없습니다. 이 시설을 사용하여 제어되지 않은 GPE 홍수를 방지할 수 있습니다.

cgroup_disable = [KNL]

Format: <s) 또는 feature(s) to disable

이 매개변수를 사용하면 특정 컨트롤러 또는 선택적 기능을 비활성화할 수 있습니다.

cgroup_disable = <controller/feature>의 영향은 다음과 같습니다.

  • 단일 계층에 모든 cgroup 을 마운트하면 컨트롤러/기능이 자동 마운트되지 않습니다.
  • 컨트롤러/기능 은 개별적으로 마운트 가능한 하위 시스템으로 표시되지 않습니다.
  • controller/feature 가 선택적 기능인 경우 기능이 비활성화되어 해당 cgroup 파일이 생성되지 않습니다.

    현재 메모리 컨트롤러만 이 문제를 처리하여 오버헤드를 잘라내고 다른 컨트롤러는 사용을 비활성화합니다. 따라서 cgroup_disable=memory 만 실제로 가치가 있습니다.

    "pressure"를 지정하면 정보 계정 기능이 정지되지 않은 상태만 사용할 수 없습니다.

clearcpuid = BITNUM[,BITNUM…​] [X86]
이 매개변수를 사용하면 커널의 CPUID 기능 X를 비활성화할 수 있습니다. 유효한 비트 번호는 arch/x86/include/asm/cpufeatures.h 를 참조하십시오. Linux 특정 비트는 커널 옵션을 통해 반드시 안정적인 것은 아니지만 특정 벤더는 여야 합니다. CPUID를 직접 호출하거나 아무것도 확인하지 않고 기능을 사용하는 사용자 프로그램은 여전히 볼 수 있습니다. 이렇게 하면 커널에서 사용하거나 /proc/cpuinfo 에 표시되지 않습니다. 또한 중요한 비트를 비활성화하면 커널이 오작동될 수 있습니다.
iommu.strict = [ARM64, X86]

형식: <"0" | "1">

이 매개변수를 사용하면TLB(Translation look-aside buffer)가 무효화 동작을 구성할 수 있습니다.

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

  • 0 - 지연 모드, DV(Direct Memory Access) 매핑 해제 작업을 사용하는 요청이 지연됨
  • 1 - 엄격한 모드(기본값), DMA unmap 작업이 무효화 IOMMU 하드웨어 TLBs 동기적으로 작동합니다.

    AMD64 및 Intel 64에서 기본 동작은 해당하는 드라이버별 매개 변수에 따라 달라집니다. 그러나 두 방법 중 하나로 명시적으로 지정된 엄격한 모드가 우선합니다.

rcutree.use_softirq = [KNL]

이 매개 변수가 0으로 설정된 경우 모든 RCU_SOFTIRQ 처리를 CPU당 rcuc kthreads로 이동합니다. 기본값은 0이 아닌 값입니다. 이는 RCU_SOFTIRQ 가 기본적으로 사용됨을 의미합니다.

rcuc kthreads를 사용하려면 rcutree.use_softirq = 0 을 지정합니다. 그러나 CONFIG_PREEMPT_RT=y 커널은 이 커널 부팅 매개 변수를 비활성화(따라서 0으로 설정)합니다.

rcupdate.rcu_normal_after_boot = [KNL]

이 매개변수를 사용하면 부팅이 완료되면 일반 grace-period primitives만 사용할 수 있습니다. 이는 rcu_end_inkernel_boot() 호출이 호출된 후입니다. CONFIG_TINY_RCU 커널에는 영향을 미치지 않습니다.

CONFIG_PREEMPT_RT=y 설정이 있는 커널은 이 커널 부팅 매개 변수를 활성화하고 강제로 값 하나로 설정합니다. 즉, Exedited Read-copy-update (RCU) 유예 기간의 모든 부팅 시도를 변환하여 대신 정상적으로 완료되지 않은 유예 시간 처리를 사용합니다.

spectre_v2 = [X86]

이 매개변수를 사용하면 Spectre variant 2 (indirect branch speculation) 취약점의 완화 기능을 제어할 수 있습니다.

기본 작업은 사용자 공간 공격으로부터 커널을 보호합니다.

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

  • on -conditionally enable, means spectre_v2_user=on
  • off - 무조건 비활성화, spectre_v2_user=off를 의미합니다.
  • Auto - 커널이 CPU 모델이 취약한지 여부를 탐지합니다.

    'on'을 선택하면 'auto'를 선택하면 CPU에 따라 런타임 시 완화 방법을 선택할 수 있습니다. 사용 가능한 마이크로 코드, CONFIG_RETPOLINE 구성 옵션 및 커널이 빌드된 컴파일러를 설정합니다.

    'on'을 선택하면 사용자 공간 작업 공격에 대한 완화도 활성화됩니다.

    'off'를 선택하면 커널과 사용자 공간 보호가 모두 비활성화됩니다.

    특정 완화 조치를 수동으로 선택할 수도 있습니다.

  • Retpoline - 간접 분기 교체
  • Retpoline,generic - Retpolines
  • Retpoline,lfence - LFENCE; 간접 분기
  • retpoline,amd - retpoline,lfence의 별칭
  • eibrs - 향상된 간접 분기 제한 사양(IBRS)
  • 이메일:
  • eibrs,lfence - 향상된 IBRS + LFENCE
  • IBRS - IBRS를 사용하여 커널 보호
  • ibrs_always - 커널과 userland 둘 다 보호하려면 IBRS를 사용합니다.
  • retpoline,ibrs_user - 간접 분기를 retpolines로 교체하고 IBRS를 사용하여 사용자랜드를 보호

이 옵션을 지정하지 않는 것은 spectre_v2=auto 와 동일합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.