Raspberry Pi의 kernle 최적화 후build

기본적으로 아래와 같이 너무 많이 하는 것을 엄금한다. - O3-mcpu=native를 설정하여 안전하게 동작을 했기 때문에 방법을 적어야 한다.
Makefile 편집
CFLAGS_MODULE 및 CFLAGSKERNEL 설정
Makefile
~~
NOSTDINC_FLAGS :=
CFLAGS_MODULE   = -O3 -mcpu=native 
AFLAGS_MODULE   =
LDFLAGS_MODULE  =
CFLAGS_KERNEL   = -O3 -mcpu=native 
AFLAGS_KERNEL   =
~~
CONFIG 매크로에 따라 최적화된 옵션의 위치를 설정하는 주석
Makefile
~~
KBUILD_CFLAGS   += $(call cc-disable-warning, address-of-packed-member)

#ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
#KBUILD_CFLAGS += -O2
#else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3
#KBUILD_CFLAGS += -O3
#else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
#KBUILD_CFLAGS += -Os
#endif

# Tell gcc to never replace conditional load with a non-conditional one
KBUILD_CFLAGS   += $(call cc-option,--param=allow-store-data-races=0)
~~
crypto/jitterentropy.c 최적화/비활성화
crypto/jitterentropy.c의 시작에 최적화 무효 홍보 추가
crypto/jitterentropy.c
~~
/*
 * This Jitterentropy RNG is based on the jitterentropy library
 * version 2.1.2 provided at http://www.chronox.de/jent.html
 */

#ifdef __clang__
#pragma clang optimize off
#undef __OPTIMIZE__
#elif defined(__GNUC__)
#pragma GCC optimize("O0")
#undef __OPTIMIZE__
#endif

#ifdef __OPTIMIZE__
#error "The CPU Jitter random number generator must not be compiled with optimi>
#endif
~~
다음build 절차는 공식 문서와 같습니다.
데이텀 방법은 다음과 같습니다.
CPU 1-3 isolcpus를 오디오 관계에 할당할 때 latency의 plot은 대체로 이런 느낌이다.

좋은 웹페이지 즐겨찾기