I/O SQ/CQ 생성 프로세스

이전 글에서는 nvme_init_identify() 함수의 내용을 분석해 보았고, 이번에는 nvme_reset_work() 함수의 다른 기능들을 소개하도록 하겠습니다.

nvme_reset_work() 함수의 주요 작업은 다음과 같이 요약할 수 있습니다.

ⓐ nvme_reset_work() 함수를 입력한 후, NVME_CTRL_RESETTING 플래그를 먼저 확인하여 nvme_reset_work() 함수가 반복적으로 호출되지 않도록 합니다.

ⓑ nvme_pci_enable() 함수 호출

ⓒ nvme_configure_admin_queue() 함수 호출

ⓓ nvme_init_queue() 함수 호출

ⓔ nvme_alloc_admin_tags() 함수 호출

ⓕ nvme_init_identify() 함수 호출

nvme_setup_io_queues() 함수 호출

ⓗ nvme_start_queues() / nvme_dev_add() 함수 호출 후 nvme_queue_scan() 함수 호출

nvme_setup_io_queues() 함수