전체 글42 CPU Scheduler implementation hints for architecture specific code Context switch Runqueue locking 기본적으로, switch_to Arch 함수는 runqueue가 lock 상태로 호출됩니다. switch_to가 runqueue lock 을 수행해야 하는 경우가 아니면 이는 일반적으로 문제가 되지 않습니다. 이는 일반적으로 컨텍스트 스위치의 절전 모드 해제 작업으로 인해 발생합니다. runqueue unlocked상태에서 스케줄러 호출 요청 witch_to을 하려면 헤더 파일(일반적으로 switch_to가 정의된 파일)에서 #define __ARCH_WANT_UNLOCKED_CTXSW를 선언해야 합니다. Unlocked context switches는 CONFIG_SMP 사례의 핵심 스케줄러 구현에 아주 사소한 성능 저하만을 가져옵니다. CPU .. 2023. 11. 22. Completions - "wait for completion" barrier APIs kernel scheduling에 대해 공부해보자 우선 linux kernel 공식 document의 내용부터 정리해보자 Completions - "wait for completion" barrier APIs scheduler를 만들 때 completion은 " locks/semaphores and busy-loops" 보다 선호되는 방법이다 Completions은 waitqueue 와 wakeup 으로 기반으로 구성되어 있다. Completions 코드는 /kernel/sched/completion.s 에 작성되어 있다. Usage : complete 사용에 중요한 3가지 부분 1. 'struct completion' 동기화 객체의 초기화 2. ' wait_for_completion()'의 변수 중 하.. 2023. 11. 20. device tree 참조 device tree를 작성 할 때 참조를 사용한다 정확하게 참조를 하면 어떤것이 어떤것을 참조하여 컴파일하면서 어떻게 되는지 확인해보자 라즈베리파이 3b+ 에서 fdtdump를 사용해 device tree를 덤프 하고 dtb와 비교해보자 linux/arch/arm/boot/dts/bcm2710-rpi-3-b.dts &mmcnr { pinctrl-names = "default"; pinctrl-0 = ; bus-width = ; status = "okay"; }; 여래 부분에서 참조하는 것으로 분석하면 헷갈리니 하나만 참조하는것으로 확인하자 참조되는 파일은 아래이다 bcm270x.dtsi mmcnr: mmcnr@7e300000 { compatible = "brcm,bcm2835-mmc", "brcm,bc.. 2023. 11. 19. CXL architecture 이 장에서는 CXL의 성능 이점과 주요 기능에 대해 설명합니다. CXL은 기존의 비일관성 I/O 장치, 메모리 장치 또는 추가 기능이 있는 가속기일 수 있는 주변 장치를 상호 연결하는 데 사용되는 고성능 I/O 버스 아키텍처입니다. CXL을 통해 연결할 수 있는 장치 유형과 전체 시스템 아키텍처는 그림 2-1에 설명되어 있습니다. 유형 2 및 유형 3 장치 메모리가 호스트에 노출되는 경우 이를 호스트 관리 장치 메모리(HDM)라고 합니다. 이 메모리의 일관성 관리에는 Host-only Coherent(HDM-H), Device Coherent(HDM-D), Device의 3가지 옵션이 있습니다. HDM-DB(Back-Invalidation Snoop)를 사용하여 일관성을 유지합니다. 호스트와 장치는 각 .. 2023. 9. 1. 이전 1 2 3 4 5 6 7 ··· 11 다음