10장. 커널


/dev/disk/by-path/ 는 NPIV 경로를 고려합니다.

이전 버전에서는 두 개 이상의 HBA(가상 호스트 버스 어댑터)가 단일 물리적 HBA에서 생성된 경우 장치에 대한 단일 링크만 각 경로에 대한 하나의 링크 대신 /dev/disk/by-path/ 디렉토리에 생성되었습니다. 결과적으로 Fibre Channel N_Port ID Virtualization(NPIV)을 사용하여 가상 HBA로 virsh 풀을 만들 수 없었습니다. 이번 업데이트를 통해 /dev/disk/by-path/ 의 심볼릭 링크가 올바르게 생성되고 고유합니다. 물리적 파이버 채널 N_Port를 통해 연결된 LUN(Logical Unit Number)에 대해 udev 에서 생성한 /dev/disk/by-path/ 의 심볼릭 링크는 동일하게 유지됩니다. (BZ#1032218)

의도하지 않은 커널 경고 메시지 제거

Red Hat Enterprise Linux 6.8의 최근 변경으로 인해 fallocate 작업 사용과 같이 파일 크기가 증가되는 특정 상황에서 의도하지 않은 경고 메시지가 표시되었습니다.
WARNING: at mm/truncate.c:614 pagecache_isize_extended+0x10d/0x120()
이 버그는 수정되었으며 파일 크기가 증가해도 이 경고 메시지가 더 이상 표시되지 않거나 기록되지 않습니다. (BZ#1205014)

RDMA 하드웨어가 없는 경우 librdmacm 은 더 이상 경고 및 오류를 출력하지 않습니다.

이전 버전에서는 librdmacm 이 RDMA 하드웨어가 없는 시스템에 설치된 경우 일부 상황에서 표준 오류 스트림(stderr)에 과도한 경고 및 오류 메시지를 출력할 수 있었습니다. 이번 업데이트를 통해 librdmacm 은 이러한 경우 stderr에 경고 및 오류 메시지를 더 이상 출력하지 않습니다. (BZ#1231766)

mlx5 드라이버의 커널 부팅 문제 해결

치명적이 아닌 PCIe 오류가 있는 시스템에서 mlx5 드라이버를 활성화하면 이전에 커널이 부팅되지 않아 PCIe 오류 처리를 활성화한 직후 mlx5 프로브 루틴에서 충돌합니다. 이 버그로 인한 패치가 제거되었으며 이 드라이버가 활성화되면 커널이 성공적으로 부팅됩니다. (BZ#1324599)

스냅샷 읽기 전용 상태 변경으로 인해 더 이상 커널이 충돌하지 않음

이전에는 대상이 다시 로드될 때 dm-snapshot 대상에 예외 저장소의 핸드오버가 부적절했습니다. 결과적으로 lvchange -p r 또는 lvchange -p rw 명령을 사용하여 스냅샷 볼륨의 읽기 전용 상태를 변경하고 진행 중인 origin 볼륨에 I/O가 진행 중인 I/O가 BUG() 매크로와 충돌했습니다. 이번 업데이트를 통해 예외 저장소 핸드오버 중에 원본 논리 볼륨이 일시 중지되므로 핸드오버 중에 진행 중인 I/O가 없습니다. 결과적으로 스냅샷 읽기 전용 상태를 변경해도 더 이상 앞서 언급한 커널이 충돌하지 않습니다. (BZ#1177389)

qla2xxx 가 8.07.00.26.06.8-k 버전으로 업데이트

qla2xxx 드라이버가 8.07.00.26.06.8-k 버전으로 업데이트되었습니다. 이번 업데이트에서는 8.07.00.26을 통해 업스트림 수정 및 마이너 개선 사항을 백포트합니다. (BZ#1252111)

devpts_kill_sb() 의 메모리 누수 수정

devpts pseudo-file 시스템은 사용하는 동안 IDR 리소스를 할당합니다. 그러나 이 업데이트 이전에는 devpts 가 마운트 해제될 때 해제되지 않았습니다. 결과적으로 IDR 시스템에서 사용하는 리소스가 유출되어 특히 많은 컨테이너가 사용되는 컨테이너를 자주 시작하고 중지하는 데 문제가 발생할 수 있었습니다. 이번 업데이트에서는 마운트 해제 시 이러한 리소스를 해제하는 업스트림 패치를 적용하고 devpts 파일 시스템에서 사용하는 IDR 리소스는 더 이상 마운트 해제할 때 유출되지 않습니다. (BZ#1283557)

sysctl 매개변수 설정 성공

sysctl -w vm.compact_memory=1 명령을 실행하여 sysctl 매개변수를 설정하는 동안 시스템은 이전에 다음 오류 메시지를 반환했습니다.
error: "Success" setting key "vm.compact_memory"
제공된 패치가 이 버그를 수정했으며 앞서 언급한 명령이 성공적으로 실행됩니다. (BZ#1278842)

netconsole 에서 더 이상 커널 충돌을 유발하지 않음

netconsole 또는 netpoll 을 통해 메시지를 보내는 동안 ixgbe 또는 vmxnet3 어댑터를 재설정하면 이전에 커널 충돌이 발생할 수 있습니다. 이번 업데이트에서는 코어 어댑터 재설정 경로와 netpoll 전송 경로 간의 상호 제외를 추가하여 이 상황에서 커널 충돌을 방지합니다. (BZ#1252212)

커널 충돌을 방지하기 위해 VFS에 루프 검사 추가

이전에는 NFS 클라이언트가 일부 NFS 서버 디렉터리 구조의 디렉터리 루프를 감지하지 못했습니다. 이 오류로 인해 파일 시스템을 마운트 해제한 후 NFS inode가 계속 참조되어 커널 충돌이 발생할 수 있습니다. 이번 업데이트에서는 VFS에 루프 검사를 추가하여 효과적으로 이러한 문제가 발생하지 않도록 합니다. (BZ#1254020)

USB 사운드 카드에서 오디오를 재생하는 것은 예상대로 작동합니다.

잘못된 URB_ISO_ASAP 의미 체계로 인해 USB 사운드 카드를 사용하여 오디오 파일을 재생하는 것이 이전에 일부 하드웨어 구성에 실패할 수 있었습니다. 이번 업데이트에서는 버그가 수정되었으며 USB 사운드 카드에서 오디오를 재생하는 것이 예상대로 작동합니다. (BZ#1255071)

HID 드라이버의 페이지 폴트 및 후속 커널 oops 수정

이전에는 HID(Human Interface Device) 드라이버가 정렬되지 않은 버퍼에 대한 보고서를 실행할 때 보고서 끝을 읽을 때 페이지 폴트 인터럽트 및 커널 oops가 발생할 수 있었습니다. 이번 업데이트에서는 추가 바이트로 보고서의 끝을 붙여 이 버그를 수정하므로 보고서의 읽기는 페이지 경계를 넘어가지 않습니다. 결과적으로 페이지 폴트와 후속 커널 oops가 더 이상 발생하지 않습니다. (BZ#1256568)

고정 파일 시스템을 동기화할 때 교착 상태 수정

손상된 s_umount 잠금 순서 때문에 연결되지 않은 파일이 닫히고 동기화(또는 sync fs) 유틸리티를 동시에 실행할 때 경쟁 조건이 발생했습니다. 결과적으로 교착 상태가 파일 시스템을 해제하려고 하는 프로세스와 동기화 사이에 고정 파일 시스템에서 발생했습니다. 이번 업데이트를 통해 고정 파일 시스템에서 동기화(또는 sync fs)를 건너뛰고 앞서 언급한 상황에서 교착 상태가 더 이상 발생하지 않습니다. (BZ#1241791)

부팅 실패를 방지하기 위해 dracut 종속 항목이 업데이트됨

DRBG(Deterministic Random Bit Generator) 모듈을 부팅 중에 로드해야 암호화 암호를 사용할 수 있습니다. 그러나 이전 버전의 dracut 에는 디스크 암호화를 위해 암호화 암호를 사용할 수 있는 initramfs 이미지에 DRBG가 포함되지 않았습니다. 결과적으로 루트 파일 시스템에서 디스크 암호화를 사용 중인 경우 부팅 프로세스가 실패했습니다. 이번 업데이트에서는 DRBG 모듈을 dracut 종속성 목록에 추가하여 initramfs 에 모듈이 있고 암호화된 루트 파일 시스템이 있는 시스템을 성공적으로 부팅할 수 있습니다. (BZ#1241338)

이제 패킷이 올바르게 계산됩니다.

회귀 문제로 인해 패킷 카운터는 일반적으로 처리된 완료(패킷) 수만 감지했지만 잘못된 항목을 탐지하지 못했습니다. 따라서 이러한 패킷이 승인되지 않았으므로 펌웨어는 인터럽트 요청(IRQ)을 계속 반환했습니다. 이 버그를 해결하기 위해 패치가 제공되었으며 모든 패킷이 예상대로 계산됩니다. (BZ#1241287)

디렉토리를 제거할 때 교착 상태 수정

음수 하위 dentry에 대한 참조로 해당 디렉토리에 대한 참조를 통해 디렉터리를 제거하는 경우 이전에 dentry 디렉터리가 종료되지 않았습니다. 또한 음수 자식 dentry이 종료되면 연결되지 않고 사용되지 않은 dentry가 여전히 캐시에 존재했습니다. 이로 인해 문제의 파일 시스템이 고정되는 동안 dentry 제거를 강제하여 교착 상태가 발생할 수 있습니다. 이번 업데이트를 통해 사용되지 않는 모든 dentries는 해시되지 않고 성공적으로 제거된 후 즉시 제거되며 교착 상태를 방지하며 시스템은 더 이상 앞서 언급한 시나리오에서 중단되지 않습니다. (BZ#1241030)

hugetlb 영역 매핑으로 인해 더 이상 데이터 손상이 발생하지 않음

hugetlb 에서는 지역 데이터 구조가 메모리 맵 세마포어와 단일 hugetlb 인스턴스 뮤지션의 조합으로 보호되었습니다. 그러나 이전 릴리스의 커널에 페이지 고정 확장성 개선으로 인해 단일 뮤지션이 제거되고 새 뮤지션 테이블이 도입되어 잠금 조합이 불충분하고 손상 및 정의되지 않은 동작이 발생할 수 있는 경합 창이 발생할 수 있습니다. 예를 들어, 동일한 영역에 동시 스레드를 읽거나 쓰는 hugetlb 영역을 재지정하여 페이지 폴백을 유발하는 경우 문제가 관찰될 수 있었습니다. 이번 업데이트에서는 적절한 직렬화를 위해 영역 추적 기능에 필요한 스핀 잠금을 도입하여 문제를 해결합니다. (BZ#1260755)

다중 경로 요청 큐로 인해 더 이상 stalls가 발생하지 않음

이전 버전에서는 다중 경로 요청 큐를 실행하면 I/O 로드에서 경로가 정기적으로 실패한 경우 회귀 문제가 발생했습니다. 이 회귀 문제는 300초를 초과하는 I/O stalls로 표시되었습니다. 이번 업데이트에서는 다중 경로 요청 대기열 실행을 줄이기 위한 변경 사항을 되돌리므로 I/O가 적시에 완료됩니다. (BZ#1240767)

이제 inode가 의도한 대로 해제됨

이전 버전에서는 dcache ('cold dcache')에 dentry 이 없는 파일 handle(fhandle)로 파일을 열고 unlink()close() 함수를 사용할 때 inode가 close() 시스템 호출에 대해 해제되지 않았습니다. 그 결과 iput() 최종이 무기한 지연되었습니다. 이 버그를 해결하기 위해 패치가 제공되었으며 이제 inode가 예상대로 해제됩니다. (BZ#1236736)

vmxnet3 드라이버가 vmxnet3 어댑터 버전 2와 호환됩니다.

버그로 인해 vmxnet3 드라이버는 vmxnet3 어댑터 버전 2와 함께 사용할 때 메모리 누수 또는 'screaming interrupts'와 같은 잘못된 동작을 보여줍니다. vmxnet3 드라이버의 동작을 수정하기 위해 여러 업스트림 패치가 적용되었습니다. 즉, 이 업데이트는 rx 경로의 메모리 누수를 수정하고 PCI 종료에 대한 처리기를 구현하고, 어댑터 버전 2와 호환되는 vmxnet3 을 만듭니다. (BZ#1236564)

IP 조각은 제시간에 삭제됩니다.

조각 모음 엔진에서 사용하는 메모리는 CPU당 계산됩니다. 그러나 다수의 CPU가 있는 시스템에서는 CPU당 캐시가 실제와 다를 수 있으므로 조각 모음 엔진이 오래된 조각을 너무 빨리 폐기할 수 있습니다. 이번 업데이트에서는 이러한 불일치를 최소화하기 위한 수정 사항이 추가되어 올바른 시간에 이전 IP 조각이 삭제됩니다. (BZ#1235465)

polkit2에서 올바른 값 참조

이전에 polkit2 파일 시스템에는 초기화되지 않은 변수를 참조하는 드문 타이밍 창이 있었습니다. 그 결과 커널 패닉이 발생했습니다. 이 타이밍 창에서 올바른 값을 참조하도록 코드가 변경되었으며 커널에 더 이상 패닉이 발생하지 않습니다. (BZ#1267995)

IPC SysV 세마포어를 사용하는 소프트웨어가 커널에서 올바르게 작동합니다.

프로세스 또는 스레드 종료 시 Linux 커널이 이전에 수행한 SysV 세마포 작업을 실행 취소할 때 ( SEM_UNDO 플래그와 함께 semop 를 사용하여 수행) 작업이 발생한 다른 프로세스 또는 스레드와 함께 경쟁 조건이 가능하여 작업이 발생한 동일한 세마포를 제거하여 커널이 없는 메모리를 사용할 수 있고 예측할 수 없는 동작이 발생할 수 있었습니다. 이 버그는 IBM DB2 와 같은 IPC SysV 세마포어를 사용하는 소프트웨어로 발견될 수 있으며, 이는 특정 경우에 경쟁 조건이 발생한 후 IPC 세마포어 작동 또는 시스템 호출에 잘못 중단될 수 있습니다. 이 버그를 해결하기 위해 패치가 제공되었으며 커널은 이제 앞서 언급한 시나리오에서 예상대로 작동합니다. (BZ#1233300)

perf buildid-cache의 경쟁 조건 수정

이번 업데이트 이전에는 동일한 파일을 복사하려는 여러 인스턴스가 시스템 라이브러리 및 기타 파일을 잘릴 수 있는 perf buildid-cache 의 경합 조건을 트리거했습니다. 이번 업데이트를 통해 앞서 언급한 경쟁 조건이 발생하지 않도록 buildid 디렉터리에 복사할 때 고유한 임시 파일이 사용됩니다. (BZ#1229673)

커널 충돌을 방지하기 위해 캐시 직렬화가 추가되었습니다.

캐시 오브젝트가 종료된 후 캐시 작업을 제출할 수 있는 경쟁 조건으로 인해 커널이 cachefilesd 서비스를 실행하는 시스템에서 충돌하는 경우가 있었습니다. 제공된 패치는 개체를 사용할 수 없게 하는 코드에 직렬화를 추가하여 경쟁 조건을 방지합니다. 결과적으로 오브젝트의 모든 후속 작업이 거부되고 이 시나리오에서 커널이 더 이상 충돌하지 않습니다. (BZ#1096893)

이제 edac 모듈 다시 로드 또는 제거 예상대로 작동함

이전에는 i7core_edac 모듈을 사용하여 시스템에서 edac 모듈을 다시 로드하거나 제거하면 여러 경고 메시지가 반환되고 후속 커널 충돌이 발생할 수 있었습니다. 기본 소스 코드가 패치되어 edac 모듈로 작동할 때 커널이 더 이상 충돌하지 않습니다. (BZ#1227845)

본딩 인터페이스에 대해 사용자 정의 MAC 주소를 다시 지정할 수 있습니다.

결합된 인터페이스가 있는 시스템에서 사용자가 본딩에 대한 고유한 사용자 지정 MAC 주소를 지정할 수 없습니다. 이 버그를 해결하기 위해 패치가 제공되었으며 앞서 언급한 상황에서 사용자 지정 MAC 주소를 다시 지정할 수 있습니다. (BZ#1225359)

stsg 드라이버가 올바르게 작동함

FCP_RSP_INFO 필드의 길이가 올바르지 않기 때문에 필드의 일부가 복사되고 stsg 드라이버가 올바르게 작동하지 않았습니다. 이번 업데이트를 통해 FCP 프로토콜과 관련된 코드가 업데이트되고 stsg 가 예상대로 작동합니다. (BZ#1223105)

슬레이브 인터페이스가 자동으로 불규칙 모드로 전환

본딩 VLAN 인터페이스가 비활성화된 동안 무차별 모드로 전환되면 본딩 VLAN 인터페이스가 다시 활성화된 후에도 이전에 슬레이브 인터페이스가 무차별 모드로 전환되지 않았습니다. 이번 업데이트를 통해 플래그 변경 사항이 항상 인터페이스에 전파되고 슬레이브 인터페이스가 예상대로 불규칙 모드로 전환됩니다. (BZ#1222823)

kernel에 force_hrtimer_reprogram 매개변수 추가

타이머 만료 문제로 인해 hrtimerksoftirqd 데몬이 실행 중인 프로세스에 의해 차단되면 스케줄러가 이전에 너무 오래 중지되었습니다. 이번 업데이트에서는 force_hrtimer_reprogram 커널 매개변수가 추가되었습니다. 커널 명령줄에 force_hrtimer_reprogram=1 이 사용되는 경우 모든 만료된 타이머의 재프로그래밍이 강제되어 이 버그가 발생하지 않습니다. (BZ#1285142)

IP R 메모리 버퍼 인덱싱 업데이트

64비트 IBM Power Systems(ppc64)의 ipr 드라이버의 버그로 인해 메모리 버퍼 인덱싱이 발생하여 HTX(HTX) 테스트 모음을 실행할 때 커널이 충돌할 수 있습니다. 이번 업데이트를 통해 ipr 메모리 버퍼 인덱싱은 modulo 대신 비트 마스크 작업을 사용하여 하위 비트를 마스킹하여 이전 인덱싱을 가능하게 하고 충돌을 방지할 수 있습니다. (BZ#1209543)

cgroup_threadgroup_rwsem 변수가 커널에 추가됨

이전에는 attach_task_by_pid() 함수가 종료 스레드로 경합하고 signal_struct 목록의 이미 freed group_rwsem 멤버를 잠그거나 잠금 해제하려고 했습니다. 이로 인해 커널 충돌이 발생할 수 있었습니다. 이번 업데이트에서는 cgroup_threadgroup_rwsem 변수가 추가되어 이 버그를 수정하고 이 시나리오에서 커널 충돌이 발생하지 않도록 합니다. (BZ#1198732)

취소된 키링에 키를 추가해도 더 이상 메모리 누수가 발생하지 않음

request_key() 함수를 사용하여 취소된 인증 키에 키를 추가하려고 하면 이전에는 커널 오류 경로에 리소스 누출이 발생했습니다. 할당되어 실패한 키는 커널 메모리에 중단되어 가비지 수집기가 제거할 수 없었습니다. 이번 업데이트를 통해 실패한 키에 대한 참조 수가 이제 이 상황에서 0에 올바르게 도달하여 실패한 키가 더 이상 무기한 메모리에 유지되지 않도록 가비지 수집기에서 해당 키를 제거할 수 있습니다. (BZ#1188442)

반복된 fork()로 인한 커널 패닉이 더 이상 발생하지 않음

이전에는 비정상적인 포크 패턴으로 인해 anon_vma_chainanon_vma slab 메모리가 낮은 프로세스 수가 있더라도 무한하게 증가할 수 있었습니다. 그 결과 커널 패닉이 발생했습니다. 제공된 패치는 새 anon_vma 대신 기존 anon_vma 를 재사용하고 anon_vma ->degree 카운터를 추가하여 anon_vma 멤버의 수가 가상 메모리 영역의 수보다 크지 않도록 하는 추론을 추가합니다. 결과적으로 이 상황에서 커널 패닉이 더 이상 발생하지 않습니다. (BZ#1151823)

작업 스케줄링이 균형 잡힌 CPU 로드를 보장합니다.

calc_load_task 가 미리 감소했기 때문에 계산된 부하 평균이 시스템의 CPU 수까지 꺼져 있었습니다. 결과적으로 작업 스케줄링이 부적절하게 작동하여 시스템 성능이 저하되었습니다. 이번 업데이트에서는 CPU의 delta가 NO_HZ 유휴 상태로 유지되며 NO_HZ 모드를 종료할 때 idle-duration의 평균을 올바르게 제거하는 동안 보류 중인 유휴 delta를 글로벌 활성 수로 전환합니다. 이제 작업 예약이 올바르게 작동하여 균형 잡힌 CPU 부하를 보장합니다. (BZ#1167755)

단일 프로세스만 특정 메모리 페이지를 사용할 수 있습니다.

polkit2 파일 시스템의 inode 무효화 및 inode 지우기 코드 간의 해시 테이블 무효화 코드에서 경쟁 조건이 발견되었습니다. 경우에 따라 두 프로세스가 동일한 메모리를 해제하려고 시도하여 커널 패닉이 발생할 수 있습니다. 이번 업데이트에서는 해시 테이블 무효화 코드에 spin_lock 을 추가하여 단일 프로세스만 특정 메모리 페이지를 해제하여 경쟁 조건이 발생하지 않도록 합니다. (BZ#1250663)

MacVTap이 be2net을 통해 VLAN 패킷을 성공적으로 전송

이전에는 VLAN 필터를 구현하고 사용하는 장치에서 macvlan 또는 macvtap 장치에 누적된 VLAN이 작동하지 않았습니다. 그 결과 macvtap passthrough 모드가 be2net 드라이버를 통해 VLAN 패킷을 전송하지 못했습니다. 이번 업데이트에서는 macvlan 드라이버에 VLAN ndo 호출을 구현하여 적절한 VLAN 태그 ID를 더 낮은 장치에 전달합니다. 결과적으로 macvtapbe2net 을 통해 VLAN 패킷을 성공적으로 전송합니다. (BZ#1213846)

primary_reselect=failure가 제대로 작동합니다.

버그로 인해 primary_reselect=failure bond 매개변수가 잘못 작동했습니다. 다른 인터페이스가 실패하지 않은 경우에도 기본 인터페이스는 항상 인수되었습니다. 이번 업데이트를 통해 매개 변수가 예상대로 작동하며 기본 본딩 인터페이스는 현재 기본이 아닌 활성 인터페이스가 실패하는 경우에만 수행됩니다. (BZ#1290672)

logshifter의 로그 메시지가 올바르게 처리됨

상당한 부하에서 logshifter와 같은 일부 애플리케이션은 시스템 로거가 스풀에 대해 너무 큰 로그 메시지를 생성할 수 있습니다. 경쟁 조건으로 인해 로그 볼륨이 관리 가능한 수준으로 삭제된 후에도 해당 애플리케이션의 로그 메시지를 손실할 수 있습니다. 이번 업데이트에서는 시스템 로거에서 사용되는 소켓의 송신기 끝에 수신기 측에서 더 많은 공간을 사용할 수 있음을 알리는 커널 메커니즘이 수정되어 이전에 발신자가 새 메시지 전송을 중지하고 모든 로그 메시지가 올바르게 처리되도록 하는 경쟁 조건을 제거합니다. (BZ#1284900)

KVM 가상 게스트가 브릿지 인터페이스를 통해 성공적으로 연결됨

이전에는 브리지 인터페이스가 계속 있는 수신 오프로드(LRO) 플래그가 있는 물리적 인터페이스 위에 존재할 수 있었습니다. 브리지 인터페이스는 기본 장치에서 LRO가 활성화된 상태에서 호환되지 않으므로 VM(가상 머신)에서와 같이 브리지에서 네트워크 통신이 제대로 작동하지 않았습니다. 이번 업데이트를 통해 브리지 아래의 장치가 모두 LRO를 비활성화하고 VM이 브리지된 인터페이스를 통해 성공적으로 연결되도록 합니다. (BZ#1258446)

SwapFree 크기가 올바른 경우

get_swap_page() 잠금의 이전 변경으로 인해 swap_lock 스파크 사용이 제거되었습니다. 이로 인해 /proc/meminfo 파일에서 nr_swap_pages 손상 및 잘못된 SwapFree 정보가 발생할 수 있습니다. 여기서 SwapFree 의 크기가 SwapTotal 크기를 초과할 수 있습니다. 이번 업데이트에서는 nr_swap_pages 에 대한 atomic 변수를 사용하고 /proc/meminfoSwapFree 크기가 올바르게 되었습니다. (BZ#1252362)

SCSI 오류 처리로 인해 더 이상 교착 상태가 발생하지 않음

이전 버전에서는 이동식 미디어 장치에서 SCSI 명령이 시간 초과될 때 오류 처리 코드가 항상 장치의 문을 다시 잠그려고 했습니다. 이로 인해 모든 요청이 사용 중인 경우 문을 다시 잠금 해제하라는 명령을 발행하라는 요청에서 교착 상태가 발생할 수 있습니다. 이번 업데이트를 통해 SCSI 오류 처리는 장치가 오류 처리 절차의 일부로 재설정되고 교착 상태가 더 이상 발생하지 않는 경우에만 다시 잠금을 시도합니다. (BZ#995234)

이제 LRO 플래그가 올바르게 전파됨

LRO( Large Receive Offload) 플래그 비활성화는 VLAN 및 본딩 계층 구조의 위의 장치에서 다운그레이드되지 않아 트래픽 흐름이 손상되었습니다. 이 버그가 수정되었으며 이제 LRO 플래그가 올바르게 전파됩니다. (BZ#1259008)

멀티 캐스트 그룹 할당 수정

커널은 nl80211 프로토콜에 대한 멀티 캐스트 그룹을 잘못 할당했기 때문에 nl80211 무선 드라이버에 문제가 발생하여 hostapd 가 액세스 포인트 모드에서 무선 장치를 시작하고 초기화하지 못했습니다. 이번 업데이트에서는 nl80211 에 대한 멀티캐스트 그룹 할당이 수정되어 무선 장치를 올바르게 관리할 수 있습니다. (BZ#1259870)

IPv6를 통해 UDP 데이터그램 전송이 예상대로 작동합니다.

경쟁 조건으로 인해 IPv6 프로토콜을 통해 UDP 데이터그램을 보낼 때 이전에 ipv6_txoptions 손상이 발생했습니다. 커널 패닉으로 인한 데이터 손상을 방지하기 위해 업스트림 패치가 적용되었습니다. (BZ#1312740)

NVMe 하드 잠금 패닉이 더 이상 발생하지 않음

nvme 드라이버가 너무 긴 대기열 잠금을 보유하고 있을 때(예: Cryostat 매핑 중) nvme 하드 잠금이 패닉 상태가 발생했습니다. 이번 업데이트에서는 기본 소스 코드가 수정되었으며 nvme 가 이제 예상대로 작동합니다. (BZ#1227342)

fs_clear_inode()의 BUG_ON()이 더 이상 발생하지 않음

이전 버전에서는 BUG_ON() 신호가 fs_clear_inode() 함수에 nfs_have_writebacks() 함수가 nfs_inode->npages에 양수 값을 보고했습니다. 그 결과 커널 패닉이 발생했습니다. 제공된 패치는 PagePrivate를 확인하고 요청을 잠그는 inode i_lock을 유지하여 직렬화를 수행하여 이 버그를 수정합니다. (BZ#1135601)

UID 및 GID에 올바른 값이 할당됨

회귀 문제로 인해 Cryostat 마운트 요청 중에 UID 및 GID 환경 변수에 올바른 값이 할당되지 않았습니다. 이번 업데이트에서는 UID 및 GID 할당을 수정하는 패치를 제공하여 UID 및 GID가 이제 마운트를 트리거한 사용자의 값을 사용하도록 합니다. (BZ#1248820)

LUKS 및 IPSEC를 동시에 사용하면 더 이상 데이터 손상이 발생하지 않습니다.

IPSEC 및 LUKS 암호화 볼륨을 동시에 사용하는 경우 LUKS 볼륨의 데이터 손상이 발생할 수 있습니다. 제공된 패치가 이 버그가 수정되었으며 LUKS 및 IPSEC를 동시에 사용할 때 데이터 손상이 더 이상 발생하지 않습니다. (BZ#1259023)

VLAN_GROUP_ARRAY_LEN이 복원됨

이전 업데이트에서 VLAN_GROUP_ARRAY_LEN 커널 매크로의 이름이 VLAN_N_VID로 변경되었습니다. 이러한 이름 변경으로 인해 VLAN_GROUP_ARRAY_LEN(예: vmxnet3 외부 드라이버)이 필요한 커널 모듈을 컴파일할 때 컴파일에 실패했습니다. 이번 업데이트를 통해 이전 매크로가 업데이트되어 타사 모듈을 컴파일할 수 있습니다. (BZ#1242145)

손상된 ELF 헤더가 수정되었습니다.

이전에는 /proc/vmcore ELF 파일의 손상된 ELF 헤더로 인해 ELF 파일을 올바르게 읽을 수 없었습니다. 그 결과 kdump 서비스가 예기치 않게 종료되어 커널 패닉 상태가 발생했습니다. 제공된 패치가 ELF 헤더를 수정하고 kdump 가 이제 예상대로 성공합니다. (BZ#1236437)

tty mutex의 할당량 경고 교착 상태 수정

이전에는 할당량 코드가 tty 계층으로 호출하여 경고를 출력할 수 있었기 때문에 tty->atomic_write_lock과 dqptr_sem 사이의 잠금 전환이 발생할 수 있었습니다. 제공된 패치를 사용하면 할당량 유틸리티 코드가 dqptr_sem 세마포가 있는 tty 계층을 호출하지 못하고 프로세스는 더 이상 교착 상태로 끝나지 않습니다. (BZ#1232387)

VMA 목록이 비어 있으면 anon_vma degree가 항상 감소합니다.

anon_vma 데이터 구조에서 degree는 이 anon_vma 를 가리키는 가상 메모리 영역의 하위 anon_vma 멤버 수를 계산합니다. unlink_anon_vma() 함수에서 목록이 비어 있으면 외부 참조 수가 0인지 여부에 관계없이 anon_vma 가 해제되므로 부모의 정도가 감소해야 합니다. 그러나 정도 감소하지 않으면 unlink_anon_vma()에서 BUG_ON() 신호가 트리거되었습니다. 제공된 패치가 이 버그를 수정했으며 이제 이 정도가 예상대로 감소합니다. (BZ#1309898)

반복된 sysrq 이벤트는 예상대로 진행

이전에는 NMI 컨텍스트에서 반복적으로 sysrq 이벤트가 발생하면 교착 상태가 발생하여 시스템 충돌이 발생할 수 있었습니다. 제공된 patchset에서는 seq_buf 버퍼 및 per_cpu printk() 함수에 대한 최소 지원이 추가되어 앞서 언급한 교착 상태가 발생하지 않습니다. (BZ#1104266)

UNIX 도메인 데이터그램 소켓에 더 이상 교착 상태가 발생하지 않음

회귀 문제로 인해 데이터그램 자체를 보낼 때 Unix 도메인 데이터그램 소켓이 교착 상태가 될 수 있었습니다. 제공된 패치는 unix_dgram_sendmsg() 함수에 또 다른 sk 검사를 추가하고 앞서 언급한 교착 상태는 더 이상 발생하지 않습니다. (BZ#1309241)

프로세스를 종료하면 카운터가 예상대로 감소

이전에는 KSM(커널 공유 메모리) 또는 페이지 마이그레이션이 사용 중인 경우 종료 프로세스가 익명 가상 메모리 영역과 관련된 카운터를 중단하지 못할 수 있었습니다. 결과적으로 카운터는 커널 패닉을 유발했습니다. 제공된 패치가 이 버그를 수정했으며 앞서 언급한 시나리오에서는 커널 패닉이 더 이상 발생하지 않습니다. (BZ#1126228)

UEFI 부팅 모드의 VGA 출력 속도 개선

이전에는 VGA 콘솔이 UEFI 부팅 모드에서 매우 느렸습니다. 이로 인해 많은 CPU 또는 I/O 장치가 있는 서버의 부팅 시간이 크게 변경되었습니다. 결과적으로 부팅 단계에서 많은 양의 디버그 출력을 출력하는 것은 매우 느리기 때문에 부팅 시 발생하는 문제를 분석하기 어려웠습니다. 또한 VGA 출력은 OS 런타임 중에 계속되어 시스템이 중단될 수 있습니다. 제공된 수정으로 UEFI 부팅 모드에서 VGA 출력 속도가 개선되어 앞서 언급한 문제가 발생하지 않습니다. (BZ#1290686)

ndo_set_multicast_list 필드가 네트워크 드라이버에 다시 있습니다.

MAC 주소를 변경한 후 netxen_nic 물리적 인터페이스 상단에 VLAN 인터페이스를 생성할 때 이전에 VLAN을 통해 원격 VLAN으로 ping 할 수 없습니다. 제공된 패치는 네트워크 드라이버에서 ndo_set_multicast_list 필드를 다시 사용하고 ping이 예상대로 성공합니다. (BZ#1213207)

FIO에서 더 이상 XFS를 손상시키지 않음

xfs_fio 유틸리티로 범위 크기를 조정하고 제공된 구성 파일을 사용하여 fio 툴을 실행한 후 XFS 파일 시스템이 손상되었습니다. 제공된 패치는 크기 힌트를 확장하며 fio 는 더 이상 XFS를 손상시키지 않습니다. (BZ#1211110)

NFS 마운트가 올바르게 보고

NFS 서버에서 2049의 모든 패킷을 거부하고 NFS 클라이언트에 공유를 마운트하도록 방화벽을 구성할 때 다음 오류가 반환됩니다.
connection timed out
제공된 수정으로 오류 메시지가 수정되어 이제 다음과 같이 표시됩니다.
connection refused
(BZ#1206555)

자동 서명이 활성화됨

sec= 마운트 옵션으로 보안 유형을 설정하고 후행 i 로 서명이 지정되지 않은 경우 이전에 자동 서명이 활성화되지 않았습니다. 예를 들어 DFS 노드에서 서명이 필요하지만 sec= 를 사용하여 클라이언트가 비활성화한 DFS 마운트에서 노드에 서명이 필요한 경우 사용자가 DFS 노드를 마운트할 수 없습니다. 제공된 수정 사항은 모든 보안 유형에 대해 MAY_SIGN 플래그를 설정하여 이 버그를 수정합니다. (BZ#1197875)

직접 I/O를 사용하여 대용량 파일 작성이 성공적으로 진행됨

이전 버전에서는 16MB 청크로 직접 I/O를 사용하여 대용량 파일을 작성하면 16MB의 여유 영역의 청크가 역방향으로 파일에 할당되는 경로적 할당 패턴이 발생하는 경우가 있었습니다. 제공된 패치는 이전 할당을 피하고 직접 I/O를 사용하여 대용량 파일을 쓰는 작업이 성공적으로 진행됩니다. (BZ#1302777)

축소자 반환 값에 대한 수정으로 인해 시스템이 중단됨

shrink_dcache_memory shrinker는 오버플로우하기 때문에 로그에 다음 행을 보고합니다.
negative objects to delete
그 결과 시스템이 이전에 중단되었습니다. 이 오버플로 표시 확장에 대한 제공된 패치 테스트에서는 축소자 반환 값에서 가져온 패치 테스트에서 INT_MAX 사전 프로세서 매크로보다 큰 max_pass 변수를 설정하지 않습니다. 결과적으로 앞서 언급한 중단이 더 이상 발생하지 않습니다. (BZ#1159675)

perf 가 업데이트됨

보다 다양한 하드웨어를 지원하고 다양한 버그 수정을 통합하기 위해 perf 가 업데이트되었습니다. 주요 개선 사항은 다음과 같습니다.
  • 5세대 Intel Core i7 프로세서의 추가 모델 번호에 대한 지원이 추가되었습니다.
  • Intel Xeon v5 모바일 및 데스크탑 프로세서에 대한 지원이 추가되었습니다.
  • Intel Xeon v3 및 v4 프로세서에 대한 uncore 하위 시스템에 대한 지원 활성화
  • Intel Xeon Processor D-1500에 대한 uncore 하위 시스템에 대한 지원 활성화 (BZ#1189317)

여러 WWPN에 대한 설정 구성이 더 쉬워졌습니다.

이번 개선된 업데이트에서는 Cryostat의 taguntag 명령에 대한 지원이 추가되었습니다. 숫자 WWPN(예 : 20:00:00:1b:21:59: 12:36 )을 사용하여 LUN 매핑을 구성하는 대신, 이제 하나 이상의 WWPN에 태그 명령을 사용하여 설명적인 이름을 지정한 다음 태그 를 사용하여 LUN 매핑을 구성할 수 있습니다. 자세한 내용은 help tag and help untag commands within the acls configuration node에서 참조하십시오. (BZ#882092)

iscsi_firmware 가 있는 시스템을 부팅할 수 있습니다.

dracut의 이전 회귀 문제로 인해 iSCSI 오프로드 또는 iSCSI 부팅 펌웨어 테이블(iBFT)이 있는 시스템이 경우에 따라 부팅을 중지했습니다. 결과적으로 커널 명령줄에 iscsi_firmware 가 있는 새로 설치된 Red Hat Enterprise Linux 6.8 시스템을 부팅할 수 없었습니다. 이번 업데이트에서는 버그가 수정되었으며 설명된 시나리오의 시스템은 예상대로 부팅할 수 있습니다. (BZ#1322209)
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.