20190208

오늘의 일기
* How does Linux tell threads apart from child processes?

Advertisements
Posted in 1) Memo

20190207

오늘의 일기
* Gen-Z 아키텍쳐에서는 atomic operation의 transparent한 지원을 제공한다 (링크).

Gen‐Z architecture enables atomic operations to be executed on any component. Processor atomic operations can be transparently transported across a Gen‐Z fabric to another component for execution. This enables software to seamlessly operate across Gen‐Z, i.e., software compatibility is transparently provided.

* 회사에서 협업을 시작한 이후로 추가된 일상 작업이 문서화이다. 문서화는 세 가지 측면에서 중요한 것 같다. 첫째로는 내가 어떤 것을 했는지 상대방에게 전달하는 의사소통 측면에서 중요하다. 협업인만큼, 서로가 연구 진도와 방향에 대한 이해가 같아야 한다. 둘째는 내가 한 작업량을 가시화한다는 점에서 중요하다. 협업할 때에는 내가 한 일을 다른 사람들에게 인지시키는 것도 중요하다. 실제로는 100의 일을 했는데, 사람들이 인지하기에는 30정도로만 보인다면 문제가 될 것이다. 마지막으로는 추후 참고 목적으로 사용된다는 점에서 중요하다. 연구라는 것이 손에 잡히지 않는 것이다보니 그만큼 휘발하기 쉬운 것 같다. 문서화해두면 나중에 빠른 시간 안에 내가 했던 작업을 이해할 수 있다.

Posted in 1) Memo

20190206

오늘의 일기
* 나는 지난 주 일요일부터 오늘 아침까지 집에 있다 왔는데, 같이 일하는 친구는 계속 회사에 있는 것 같다. 중국에서는 춘절이 아주 큰 명절인데도 회사에 있는 것을 보니 새삼 대단하다는 생각이 들었다.
* https://stackoverflow.com/questions/44249444/can-we-use-x86-64-cpu-atomics-to-generate-on-pci-express-the-compound-atomic-ope

Posted in 1) Memo

20190204

오늘의 일기
* QEMU에서 lock을 쓰려면 qemu_spin_lock을 쓰면 될 것 같음.

Posted in 1) Memo

20190203

오늘의 일기
* QEMU에서는 가상화에서 하드웨어 가속을 사용하지 않으면 TCG를 사용해서 binary translation을 수행한다. xchg 명령어가 하드웨어에서 제대로 지원되지 않아 path를 분석해 봄. disas_insn -> tcg_gen_atomic_xchg_tl -> GEN_ATOMIC_HELPER -> do_atomic_op_i64 -> GEN_ATOMIC_HELPERS -> ATOMIC_NAME(xchg) -> atomic_xchg__nocheck 의 순서로 진행되는 것 같음 (틀릴 수도 있음).
* https://patchwork.kernel.org/patch/9336315/
* “대체 어떻게 해결할 수 있지” 싶은 막막한 문제를 해결하고나면, 더 막막한 문제가 나오는 것이 반복되고 있다.

Posted in 1) Memo

20190129

오늘의 일기
* virtio device 함수를 커널 코드에서 부르고 싶은데, 어떻게 하는지 조금 헤맸음. 운좋게 다음과 같은 path를 찾아냄 (virtio balloon device). virtio balloon device가 인식되면 virtballoon_probe가 호출되는데, 이 때 balloon_devinfo_init이 호출됨. balloon_dev_info는 ballon device에 대한 정보를 가지고 있으며, 이를 통해 virtio 함수를 호출하게 됨. balloon_dev_info의 migratepage를 호출하게 되면 virtballoon_migratepage가 호출됨. 따라서 드라이버 외부에서는 balloon_dev_info를 갖고 있으며, balloon_dev_info의 migratepage가 virtio 코드를 호출하게 되는 셈. 여기에서 아이디어를 얻어 구현하면 될 듯 하다.
* scatterlist에 대한 lwn article

Posted in 1) Memo

20190128

오늘의 일기
* KVM DMA Engine Support Patch: [PATCH RFC] tun: dma engine support
* 커널 코드를 보다가 DMA_MEMCPY, 즉 DMA를 이용한 메모리 복사 관련 내용을 보았다. 이 기술은 오래된 기술은 아니고, 최근에 Intel에서 I/O acceleration technology (IOAT)를 지원하면서 나오게 된 내용으로 보인다 (IOAT 정의). 상품명으로는 Intel QuickData technology라고 부르는 것으로 보인다 (Intel QuickData White Paper). 해당 기술 출시 이전에는 user -programmable한 DMA를 사용하는 것은 불가능했던 것 같다 (관련 질문). [ASPLOS’16] memif에서 사용하고 있음.
* ‘제안서는 어떻게 쓰는지 알겠는데, 논문을 어떻게 쓰는지 모르겠다…’하며 자괴감에 빠져 있었는데, 생각해보니 제안서를 쓰듯이 논문을 쓰면 되겠다 싶어서 그렇게 해보니 생각보다 진행이 잘 되었다.

Posted in 1) Memo
Recent Posts
누적 방문자 수
  • 152,489 hits