LINUX
Posts
477 posts[라즈베리파이][리눅스커널] 워크큐(Workqueue) - worker_thread() 함수 분석(1)
워크는 워커 쓰레드가 실행합니다. 워커 쓰레드를 관리하는 자료구조는 struct worker 구조체이며 이를 워커라고 부릅니다. 이전까지 자료구조 중심으로 워크를 분석했는데 이번에는 워커 쓰레드가 쓰레드 관점으로 어떻게 실행하는지 알아봅니다. 다음은 워커 자료구조인 struct worker 구조체 선언부입니다.[https://elixir.bootlin.com/linux/v4.14.43/source/kernel/workqueue_internal.h#L24]1 struct worker {2 union {3 struct list_head entry; 4 struct hlist_node hentry; 5 };6 struct work_struct *current_work; 7 work_func_t curre
[bash: sed] 출력 또는 제거할 범위를 문자열 패턴으로 지정하기
sed에서 행번호를 이용해서 범위를 지정하는 방법은 이전 게시물을 참고하자. 기본적인 내용은 대략 아래와 같다. # my_data.txt 파일의 10번째 행 출력(p). -n 옵션으로 전체 출력은 억제(해당 조건에 맞는 행만 출력) sed -n 10p my_data.txt # my_data.txt 파일의 10~20번째 행 출력 sed -n 10,20p my_data.txt # my_data.txt 파일에서 10번째 행을 제거(d)하고 나머지 출력 sed 10d my_data.txt # my_data.txt 파일에서 10~20번째 행을 제거하고 나머지 출력 sed 10,20d my_data.txt 위의 예시에서 행번호 대신 특정 문자열을 기준으로 할 경우에는 "/문자열/" 형
[라즈베리파이] 워크큐(Workqueue) - 워크는 누가 언제 호출하나? (2) @process_one_work
From...워크는 누가 언제 호출하나? (1) @process_one_work 다음 24~26번 줄 코드를 분석하겠습니다.24 worker->current_work = work;25 worker->current_func = work->func;26 worker->current_pwq = pwq; 24~25번 줄 코드에서 worker->current_work이란 멤버에 work를 등록하고 worker->current_func 함수 포인터에 워크 핸들러 함수를 지정합니다. 26번 줄 코드를 보면 worker->current_pwq에 워커 풀 주소를 저장합니다. process_one_work() 함수에서 워크 핸들러는 worker->current_func 함
[라즈베리파이] git clone 명령어로 특정 커밋 코드로 돌리기
이번에는 git clone 명령어로 특정 커밋으로 소스 코드를 변경하는 과정을 알아봅시다. 돌아가려는 커밋은 6/13/2018 날짜입니다.commit 5762758699e1ddab22bf4c14eb225941761c52c8Author: Dave Stevenson Date: Wed Jun 13 15:21:10 2018 +0100 net: lan78xx: Disable TCP Segmentation Offload (TSO) TSO seems to be having issues when packets are dropped and the remote end uses Selective Acknowledge (SACK)



