SATA 장치 열거 프로세스를 이해하기 위해 명령 출력에 내 시스템의 SATA 호스트 드라이버로 나타나는 드라이버/ata/ata_piix.c를 살펴보았습니다 lspci
.
00:1f.2 IDE interface: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] (rev 01)
Subsystem: Elitegroup Computer Systems Device 2672
Kernel driver in use: ata_piix
Kernel modules: pata_acpi
SATA 호스트 컨트롤러인 AFAIK는 PCI 버스에 연결된 PCI 장치입니다. 이제 ata_piix.c의 프로브 메서드가 실행되면 호스트 컨트롤러가 초기화되고 프로브 호출에서 다른 많은 초기화 시퀀스가 완료됩니다. 프로브 메서드 끝에서 다음 코드를 실행합니다.
/* perform each probe asynchronously */
for (i = 0; i < host->n_ports; i++) {
struct ata_port *ap = host->ports[i];
async_schedule(async_port_probe, ap);
}
그래서 제가 이해한 바에 따르면 호출은 aync_schedule()
호스트 포트에 연결된 SATA 장치에 대한 프로브 방법을 하나씩 호출하게 됩니다. 내 질문은 다음과 같습니다.
- 위의 이해가 정확합니까? 이는 SATA 장치 열거가 작동하는 방식이며, 그렇지 않은 경우 Linux 커널이 SATA 장치의 열거 프로세스를 처리하는 방식입니다.
aync_schedule()
정확히 어떻게 작동하는지 제안해주세요 .- SATA 호스트 컨트롤러용 커널 드라이버로 사용되는 경우
ata_piix.c
장치용 커널 모듈이 명령pata_acpi
출력 에 표시되는 이유는 무엇입니까lspci
?