7장. 커널
높은 메모리 로드에서 커널 덤프가 안정적으로 생성됨
이전에는 메모리 로드가 높은 커널 패닉이 발생하면 경우에 따라 교착 상태가 발생하고 커널 덤프가 생성되지 않았습니다. 이번 업데이트에서는
vmalloc_sync_all()
함수가 수정되어 릴리스되지 않을 수 있는 회전 잠금을 기다리지 않도록 합니다. 결과적으로 커널 덤프가 올바르게 수집됩니다. (BZ#1146727)
Runqueues가 더 이상 클럭 업데이트를 무시하지 않음
이전에는 CPU 과다 할당이 있는 시스템에서 runqueues를 실행하여 일정 기간 동안 클럭 업데이트를 무시하기 어려웠습니다. 그 결과 실시간 runqueues가 제한되어 중요한 작업과 종속된 작업이 실행되지 않았습니다. 이번 업데이트를 통해 runqueues에서 일정 기간 동안 클럭 업데이트를 무시하지 않습니다. 결과적으로 중요한 작업과 종속적인 작업을 이러한 상황에서 실행할 수 있습니다. (BZ#1212959)
dma_pin_iovec_pages()는 더 이상 시스템이 메모리가 부족하지 않음
이전에는 dma_pin_iovec_pages() 함수가 많은 양의 메모리를 요청했지만 요청이 실패했을 때 예약된 메모리를 해제할 수 없었습니다. 결과적으로 시스템은 메모리 부족으로 실행됩니다. 이번 업데이트를 통해 dma_pin_iovec_pages()는 이제 전체 메모리 양을 올바르게 할당하고 필요하지 않은 경우 메모리를 해제합니다. 결과적으로 설명된 문제가 더 이상 발생하지 않습니다. (BZ#1459263)
cgroups
교착 상태가 수정되었습니다.
cgroup
을 사용할 때 경쟁 조건으로 인해 시스템 교착 상태가 발생했습니다. 이번 업데이트에서는 경합 상태를 수정하는 작업 큐가 추가되어 교착 상태가 발생하지 않습니다. (BZ#1463754)
실패한 execve()
의 감사가 제대로 작동합니다.
이전에는 Linux 커널의 감사 호출에서 실패한
execve()
시스템 호출의 인수를 로깅할 때 상위 프로세스의 인수를 사용했습니다. 결과적으로 감사는 매핑되지 않은 주소에 대한 포인터를 사용할 수 있었고 프로세스는 세그먼트 오류로 종료되었습니다. 이번 업데이트를 통해 실패한 execve()
에 대한 검사를 다시 실행하도록 감사가 수정되었습니다. 결과적으로 실패한 execve()
이후 프로세스가 더 이상 잘못 종료되지 않습니다. (BZ#1488822)
vmcp 가 성공적으로 cp실행
이전에는 GFP_DMA 플래그를 사용한 커널 메모리 할당으로 vmcp 명령이 cp 명령을 실행하지 못했습니다. 이번 업데이트에서는 GFP_DMA 를 사용할 필요가 없으며 GFP_KERNEL 플래그가 대신 커널 메모리를 할당할 수 있습니다. 그 결과 vmcp 가 cp 를 실행하는 데 성공합니다. (BZ#1496105)