[리눅스커널][시그널] 커널에서 시그널을 전달하는 진입점은 어디일까?
By Guillermo Austin Kim | 2019년 4월 4일 |
시그널 전달 진입점 시그널 생성 과정에서 스케줄러에게 시그널을 받을 프로세스 실행 요청을 했습니다. 리눅스 커널은 언제 시그널을 타겟 프로세스에게 전달할까요?출발점은 두 가지 실행 흐름입니다.1> 시스템 콜 핸들러 실행 마무리 후 ret_fast_syscall 레이블2> 인터럽트 핸들링 후 __irq_usr 레이블 이 동작은 리눅스 커널보다 ARM 프로세스가 많은 관여를 합니다. ret_fast_syscall 레이블 분석 유저 프로세스가 시스템 콜 핸들러 실행을 마치면 ret_fast_syscall 레이블로 복귀합니다. ret_fast_syscall와 slow_work_pending 레이블에서 프로세스에게 시그널이 전달됐는지 점검합니다. 해당 코드 분석을 시작하겠습니다.[https:/
리눅스에서 시스템 로그 확인 - journalctl
By 반달가면 | 2022년 8월 13일 |
리눅스의 시스템 로그(system log)를 확인하고 싶다면 터미널창에서 journalctl을 사용하면 되겠다. # 시스템 로그 전체 열람 journalctl 위와 같이 입력하면 가장 오래된 로그부터 보여준다. 만약 가장 최근의 로그부터 역순으로 보고 싶다면 -r 옵션을 사용한다. # 최근 로그부터 보기 journalctl -r 현재 발행하는 시스템 로그를 실시간으로 보고 싶다면 -f 옵션을 사용한다. # 실시간 확인 journalctl -f 특정 로그를 찾고 싶다면 grep을 활용할 수 있다. # sudo 로그만 보기 journalctl | grep sudo | more 시스템 로그는 시간이 오래 지나면 꽤 많은 분량이 된다. 현재 어느 정도의 디
[리눅스커널][워크큐] 딜레이 워크(delayed_work) 소개
By Guillermo Austin Kim | 2019년 2월 12일 |
딜레이 워크 소개 워크큐는 대표적인 커널 후반부 처리 기법으로 후반부 처리 코드를 워크 핸들러에서 실행합니다. 동기적으로 처리 할 필요가 없는 코드를 워크 핸들러에 위치시켜 비동기적으로 커널 쓰레드 레벨에서 처리하는 겁니다. 이런 구조로 드라이버를 설계하면 다양한 디바이스 드라이버 시나리오에 맞게 코드를 구성할 수 있습니다. 워크에서 유연성을 추가한 기법이 딜레이 워크입니다. 딜레이 워크란 무엇인가? 구체적으로 딜레이 워크란 무엇일까요? 딜레이 워크는 워크를 일정 시각(HZ 단위) 후에 지연시켜 실행합니다. 여기서 말하는 지연 시각은 디바이스 드라이버 시나리오에 맞게 변경할 수 있습니다. 라즈베리파이에선 진동수인 HZ는 100입니다. 예를 들어 다음 온도를 콘트롤하는 드라이버 시나리오를 생
tensorflow 실행시 sse3, sse4.1, sse4.2, avx, avx2, fma warning 관련
By Kandalama01 | 2017년 4월 23일 |
글에 앞서, 서버 환경은 다음과 같다. - Ubuntu server 16.04- Python 2.7- Tensorflow 1.0.1- GTX Titan X Tensorflow 실행시 다음과 같은 warning 이 뜰 수 있다. The TensorFlow library was compiled to use SSE4.1 instructions, but these aren't available on your machine 내 경우에는 SSE4.1 뿐만 아니라, SSE4.2, SSE3, AVX, AVX2, FMA 등에 대해서 위와 같은 Warning이 발생하였다. 사실 이러한 warning은 말 그대로 warning이기 때문에, tensorflow의 구동이 안 된다던가 하는 문제를 일으키지는 않는다.