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


이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 8.5에 포함된 커널의 중요한 변경 사항을 요약해서 설명합니다. 이러한 변경에는 추가 또는 업데이트된 proc 항목, sysctl 및 sysfs 기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 띄게 동작 변경이 포함될 수 있습니다.

새 커널 매개변수

idxd.sva = [HW]

형식: <bool>

이 매개변수를 사용하면 idxd 커널 모듈에 대해 공유 가상 메모리(SVA) 지원을 강제로 비활성화할 수 있습니다.

기본값은 true 입니다(1.

lSM.debug = [SECURITY]
이 매개변수를 사용하여 LSM(Linux Security Module) 초기화 디버깅 출력을 활성화할 수 있습니다.
lsm = lsm1,…​,lsmN [SECURITY]

이 매개변수를 사용하여 LSM(Linux Security Module) 초기화 순서를 선택할 수 있습니다.

이 매개 변수는 CONFIG_LSM 옵션과 security= 매개 변수를 재정의합니다.

rcutree.qovld = [KNL]

이 매개변수를 사용하면 대기 중인 RCU(읽기 복사-업데이트) 콜백의 임계값을 설정할 수 있습니다. 이 임계값을 넘어서 RCU의 force-quis advanced-state 스캔은 cond_resched() 시스템 호출의 도움을 받고 CPU가 더 빨리 정지 상태에 도달할 수 있도록 IPI를 예약하는 데 적극적으로 도움을 줍니다.

부팅 시 rcutree.qhimark 매개변수를 기반으로 이 매개변수를 0보다 작은 값으로 설정할 수 있습니다. 또는 보다 적극적인 도움말 등록을 비활성화하려면 이 매개변수를 0으로 설정합니다.

rcutree.rcu_unlock_delay = [KNL]

이 매개변수를 사용하면 구성 부울이 CONFIG _RCU_STRICT_GRACE_PERIOD=y로 설정된 커널에서 rcu_read_unlock() -time delay를 지정할 수 있습니다.

기본값은 0입니다.

더 큰 지연으로 인해 RCU(Read-copy-update) 포인터 누수를 감지할 가능성이 높아집니다. 관련 rcu_read_unlock() 이 완료된 후 RCU 보호 포인터를 사용하는 결함이 있는 것입니다.

rcutorture.irqreader = [KNL]
이 매개변수를 사용하여 RCU(Read-copy-update) 리더를 인터럽트 요청(IRQ) 핸들러에서 실행하거나 타이머 핸들러에서 실행할 수 있습니다.
rcutorture.leakpointer = [KNL]
이 매개변수를 사용하면 RCU(Read-copy-update) 보호 포인터를 리더 외부에서 유출할 수 있습니다. 이 경우 스플릿이 발생할 수 있으며 CONFIG_RCU_STRICT_GRACE_PERIOD=y 와 같은 구성 기능을 테스트하여 이러한 누수를 감지하기 위한 것입니다.
rcutorture.read_exit = [KNL]
이 매개변수를 사용하면 읽기-then-exit kthreads 수를 설정하여 RCU(Read-copy-update) 업데이트 및 task-exit 프로세싱의 상호 작용을 테스트할 수 있습니다.
rcutorture.read_exit_burst = [KNL]
이 매개변수를 사용하면 지정된 read-then-exit 에피소드에서 일련의 read-then-exit kthreads가 생성되는 횟수를 지정할 수 있습니다.
rcutorture.read_exit_delay = [KNL]
이 매개 변수를 사용하여 연속적인 read-then-exit 테스트 에피소드 간에 지연(초)을 지정할 수 있습니다.
rcutorture.stall_cpu_block = [KNL]
이 매개변수를 사용하면 중지하는 동안 유휴 상태로 설정할 수 있습니다. 결과적으로 RRC(Read-copy-update)의 다른 모든 지연 관련 활동 외에 미리 비어 있는 RRC(Read-copy-update)의 경고가 발생할 수 있습니다.
rcutorture.stall_gp_kthread = [KNL]

이 매개변수를 사용하면 RCU CPU 중단 경고를 테스트하기 위해 RCU(Read-copy-update) grace-period kthread 내에서 강제 절전 기간(초)을 지정할 수 있습니다.

기능을 비활성화하려면 이 매개 변수를 0으로 설정합니다.

stall_cpu 및 stall_gp_kthread 매개변수가 모두 지정되면 kthread가 먼저 종료된 다음 CPU를 사용합니다.

rcupdate.rcu_cpu_stall_suppress_at_boot = [KNL]
이 매개변수를 사용하면 RCU CPU stall 경고 메시지와 초기 부팅 중에 발생하는 서지 작성기 중단 경고를 억제할 수 있습니다. init 작업이 생성되기 전의 시간입니다.
rcupdate.rcu_task_ipi_delay = [KNL]

이 매개변수를 사용하면 RCU(Read-copy-update) 작업에서 지정된 유예 기간부터 시작하여 IPI를 보내지 않는 시간을 jiffies에 설정할 수 있습니다.

다수의 값을 설정하면 실시간 워크로드 방해가 방지되지만 유예 기간이 길어집니다.

refscale.holdoff = [KNL]
이 매개변수를 사용하면 테스트 시작 유지 기간을 설정할 수 있습니다. 이 매개 변수의 목적은 간섭을 방지하기 위해 부팅이 완료될 때까지 테스트 시작을 지연시키는 것입니다.
refscale.loops = [KNL]

이 매개변수를 사용하여 테스트에서 기본 동기화를 통해 반복문을 설정할 수 있습니다. 이 수를 늘리면 루프 시작/종료 오버헤드로 인한 노이즈가 줄어듭니다.

기본값은 2020년 x86 노트북에서 몇 분량의 피코초로 줄었습니다.

refscale.nreaders = [KNL]

이 매개변수를 사용하여 리더 수를 설정할 수 있습니다.

기본값 -1은 N을 선택합니다. 여기서 N은 CPU 수의 약 75%입니다.

refscale.nruns = [KNL]
이 매개변수를 사용하여 각 실행 수는 콘솔 로그에 덤프됩니다.
refscale.readdelay = [KNL]
이 매개변수를 사용하면 마이크로초 단위로 측정된 읽기 측 심각 섹션 기간을 설정할 수 있습니다.
refscale.scale_type = [KNL]
이 매개변수를 사용하여 테스트할 읽기 보호 구현을 지정할 수 있습니다.
refscale.shutdown = [KNL]

이 매개변수를 사용하면 성능 테스트 종료 시 시스템을 종료할 수 있습니다.

기본값은 1이고 시스템이 종료됩니다. refscale이 커널에 빌드됩니다.

값이 0이고 시스템이 계속 실행되도록 둡니다. refscale은 모듈로 구축됩니다.

refscale.verbose = [KNL]
이 매개변수를 사용하여 추가 printk() 문을 활성화할 수 있습니다.
scftorture.holdoff = [KNL]

이 매개변수를 사용하여 테스트를 시작하기 전에 대기할 시간(초)을 지정할 수 있습니다.

paramter는 모듈 삽입을 위해 기본적으로 0으로, smp_call_function() 테스트의 경우 10초로 설정됩니다.

scftorture.longwait = [KNL]

이 매개변수를 사용하면 선택한 한도(초)까지 임의로 선택한 매우 긴 대기 시간을 요청할 수 있습니다.

기본값은 0이며 이 기능을 비활성화합니다.

심지어 0이 아닌 작은 시간을 요청하면 RCU(Read-copy-update) CPU 중단 경고, 소프트 잠금 문제 등이 발생할 수 있습니다.

scftorture.nthreads = [KNL]

이 매개변수를 사용하여 생성할 kthreads 수를 지정하여 smp_call_function() 함수 제품군을 호출할 수 있습니다.

기본값 -1은 CPU 수와 동일한 kthreads 수를 지정합니다.

scftorture.onoff_holdoff = [KNL]
이 매개변수를 사용하여 CPU-hotplug 작업을 시작하기 전에 테스트를 시작한 후 대기하는 시간(초)을 지정할 수 있습니다.
scftorture.onoff_interval = [KNL]

이 매개변수를 사용하여 연속 CPU-핫플러그 작업 사이에 대기할 시간(초)을 지정할 수 있습니다.

기본값은 0이며 CPU-핫플러그 작업이 비활성화됩니다.

scftorture.shutdown_secs = [KNL]

이 매개변수를 사용하여 테스트를 시작한 후 초 수를 지정할 수 있습니다. 테스트 후 시스템이 종료됩니다.

기본값 0을 사용하면 시스템 종료를 방지할 수 있습니다. 0이 아닌 값은 자동화된 테스트에 유용합니다.

scftorture.stat_interval = [KNL]

이 매개변수를 사용하여 현재 테스트 통계를 콘솔로 출력하는 시간(초)을 지정할 수 있습니다.

값이 0이면 통계 출력을 비활성화합니다.

scftorture.stutter_cpus = [KNL]
이 매개변수를 사용하면 테스트 중인 CPU 세트로 변경될 때마다 대기할 jiffies 수를 지정할 수 있습니다.
scftorture.use_cpus_read_lock = [KNL]
이 매개변수를 사용하면 기본 preempt _disable() 시스템 호출 대신 use_cpus_read_lock() 시스템 호출을 사용하여 smp_call_function*() 함수 중 하나를 호출하는 동안 CPU 핫플러그를 비활성화할 수 있습니다.
scftorture.verbose = [KNL]
이 매개변수를 사용하여 추가 printk() 문을 활성화할 수 있습니다.
scftorture.weight_single = [KNL]

이 매개 변수는 0 "wait" 매개변수가 있는 smp_call_function_single() 함수에 사용할 가능성 가중치를 지정합니다.

-1의 값은 다른 모든 가중치가 -1인 경우 기본값을 선택합니다. 그러나 하나 이상의 가중치에 다른 값이 있는 경우 값 -1 대신 가중치 0을 선택합니다.

scftorture.weight_single_wait = [KNL]
이 매개 변수는 0이 아닌 "wait" 매개변수와 함께 smp_call_function_single() 함수에 사용할 가능성 가중치를 지정합니다. 자세한 내용은 weight_single 을 참조하십시오.
scftorture.weight_many = [KNL]

이 매개 변수는 0 "wait" 매개 변수와 함께 smp_call_function_many() 함수에 사용할 가능성 가중치를 지정합니다.

이 가중치에 대한 높은 가능성을 설정하면 심각한 IPI(Inter-processor Interrupt) 로드가 시스템에 배치될 수 있습니다.

자세한 내용은 weight_single 을 참조하십시오.

scftorture.weight_many_wait = [KNL]

이 매개 변수는 0이 아닌 "wait" 매개변수와 함께 smp_call_function_many() 함수에 사용할 가능성 가중치를 지정합니다.

자세한 내용은 weight_single 및 weight_ many 를 참조하십시오.

scftorture.weight_all = [KNL]

이 매개 변수는 0 "wait" 매개 변수와 함께 smp_call_function_all() 함수에 사용할 가능성 가중치를 지정합니다.

자세한 내용은 weight_single 및 weight_ many 를 참조하십시오.

scftorture.weight_all_wait = [KNL]

이 매개 변수는 0이 아닌 "wait" 매개변수와 함께 smp_call_function_all() 함수에 사용할 가능성 가중치를 지정합니다.

자세한 내용은 weight_single 및 weight_ many 를 참조하십시오.

sched_energy_aware

이 매개변수는 energy Aware Scheduling (EAS)를 활성화하거나 비활성화합니다.

EAS는 energy model을 사용할 수 있는 CloudEvent CPU 토폴로지가 있는 플랫폼에서 자동으로 시작됩니다.

플랫폼이 EAS의 요구 사항을 충족하지만 EAS를 사용하지 않으려면 이 값을 0으로 변경하십시오.

torture.disable_onoff_at_boot = [KNL]
이 매개변수를 사용하면 init 작업이 생성될 때까지 CPU-hotplug 구성 요소가 차단되지 않을 수 있습니다.
torture.ftrace_dump_at_shutdown = [KNL]

이 매개변수를 사용하면 오류가 없는 경우에도 ftrace 버퍼를 torture-test 종료에 덤프할 수 있습니다.

이 작업은 특히 회전 스토리지가 있는 시스템에서 많은 torture 테스트를 동시에 실행하는 경우 매우 비용이 많이 드는 작업일 수 있습니다.

업데이트된 커널 매개변수

iommu.forcedac = [ARM64, X86]

이 매개변수를 사용하면 PCI 장치에 대한 입력 출력 가상 주소(IOVA) 할당을 제어할 수 있습니다.

형식: { 0 | 1 }

  • 0 - 필요한 경우 전체 범위로 대체하기 전에 32비트 DMA(직접 메모리 액세스) 주소를 먼저 할당해 보십시오.
  • 1 - 사용 가능한 전체 범위에서 직접 할당. 옵션은 32비트 주소 지정보다 큰 기능을 지원하는 PCI 카드의 듀얼 주소 사이클을 강제 적용하는 것입니다.
page_poison = [KNL]

이 부팅 시간 매개 변수를 사용하여 CONFIG_PAGE_POISONING=y 구성에서 사용할 수 있는 버디 할당기에서 손상 상태를 변경할 수 있습니다.

  • off: 침입 해제 (기본값)
  • 켜기: 침입을 켭니다
rcuscale.gp_async = [KNL]
이 매개변수를 사용하면 call_rcu() 와 같은 비동기 유예 상시 기본 개념의 성능을 측정할 수 있습니다.
rcuscale.gp_async_max = [KNL]
이 매개변수를 사용하여 작성자 스레드당 최대 콜백 수를 지정할 수 있습니다. 작성자 스레드가 이 제한을 초과하면 이전에 게시된 콜백이 드레이닝될 수 있도록 rcu_barrier() 의 해당 플레이버를 호출합니다.
rcuscale.gp_exp = [KNL]
이 매개변수를 사용하면 신속한 동기 유예-초기 우선순위의 성능을 측정할 수 있습니다.
rcuscale.holdoff = [KNL]
이 매개변수를 사용하면 테스트 시작 유지 기간을 설정할 수 있습니다. 이 매개 변수의 목적은 간섭을 방지하기 위해 부팅이 완료될 때까지 테스트 시작을 지연시키는 것입니다.
rcuscale.kfree_rcu_test = [KNL]
이 매개변수를 사용하여 kfree_rcu() 플러딩의 성능을 측정할 수 있습니다.
rcuscale.kfree_nthreads = [KNL]
이 매개변수를 사용하여 kfree_rcu() 함수의 반복문을 실행하는 스레드 수를 지정할 수 있습니다.
rcuscale.kfree_alloc_num = [KNL]
이 매개변수를 사용하여 반복에서 수행되는 할당 수와 자유 수를 지정할 수 있습니다.
rcuscale.kfree_loops = [KNL]
이 매개변수를 사용하여 rcuscale.kfree_alloc_num 할당 및 frees를 수행하는 반복문 수를 지정할 수 있습니다.
rcuscale.nreaders = [KNL]

이 매개변수를 사용하여 RCU(Read-copy-update) 리더 수를 설정할 수 있습니다.

값 -1은 N을 선택합니다. 여기서 N은 CPU 수입니다.

rcuscale.nwriters = [KNL]

이 매개변수를 사용하여 RCU(Read-copy-update) 작성자 수를 설정할 수 있습니다.

값은 rcuscale.nreaders=N 과 동일하게 작동합니다. 여기서 N은 CPU 수입니다.

rcuscale.perf_type = [KNL]
이 매개변수를 사용하여 테스트할 RCU(Read-copy-update) 구현을 지정할 수 있습니다.
rcuscale.shutdown = [KNL]
이 매개변수를 사용하면 성능 테스트가 완료된 후 시스템을 종료할 수 있습니다. 이 기능은 실습 자동화된 테스트에 유용합니다.
rcuscale.verbose = [KNL]
이 매개변수를 사용하여 추가 printk() 문을 활성화할 수 있습니다.
rcuscale.writer_holdoff = [KNL]

이 매개변수를 사용하면 마이크로초 단위 유예 기간 간에 나란히 유지될 수 있습니다.

기본값은 0이며 "페어오프 없음"을 의미합니다.

security = [SECURITY]

이 매개변수를 사용하면 부팅 시 활성화할 레거시 "주" 보안 모듈을 선택할 수 있습니다.

이는 lsm 매개 변수에서 더 이상 사용되지 않습니다.

split_lock_detect = [X86]

이 매개변수를 사용하면 분할 잠금 탐지 또는 버스 잠금 탐지를 활성화할 수 있습니다.

활성화되고 하드웨어 지원이 있는 경우 캐시 라인 경계에서 데이터에 액세스하는 원자성 지침으로 인해 다음과 같은 결과가 발생합니다.

  • 분할 잠금 감지를 위한 정렬 검사 예외
  • 버스 잠금 탐지를 위한 디버그 예외

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

  • off - 기능이 활성화되어 있지 않습니다
  • warn - 커널이 애플리케이션에 대한 속도가 제한된 경고를 내보내고 #AC 예외 또는 #DB 예외를 트리거합니다. 이 모드는 분할 잠금 탐지 또는 버스 잠금 탐지를 지원하는 CPU의 기본값입니다. 두 기능이 모두 하드웨어에서 활성화된 경우 기본 동작은 #AC입니다.
  • fatal - 커널은 #AC 예외 또는 #DB 예외를 트리거하는 애플리케이션에 SIGBUS 신호를 전송합니다. 두 기능이 모두 하드웨어에서 활성화된 경우 기본 동작은 #AC입니다.
  • ratelimit: N - 버스 잠금 감지를 위해 시스템 전체 속도 제한을 초당 N 버스 잠금으로 설정합니다(0 < N ^ 1000). 분할 잠금 감지를 위한 N/A.

    커널 또는 펌웨어에서 #AC 예외가 발생하거나(예: 사용자 모드에서 실행하지 않는 경우) 커널은 경고 또는 치명 모드에 생략 됩니다.

    #CPL > 0인 경우에만 버스 잠금에 대한 DB 예외가 트리거됩니다.

usb-storage.quirks =
k = NO_SAME (WRITE _SAME, UAS 전용 사용하지 않음)
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동