interrupt

QEMU를 사용하여 사용자 정의 PCI 드라이버를 작성하는 중 문제 발생
interrupt

QEMU를 사용하여 사용자 정의 PCI 드라이버를 작성하는 중 문제 발생

MSI 인터럽트를 할당하고 처리할 수 있는 Linux 드라이버를 작성하고 싶습니다. 현재 이 nvec = pci_alloc_irq_vectors(pdev, 1, nvec, PCI_IRQ_ALL_TYPES)함수는 -22를 반환합니다. QEMU에서 전화를 했는데 msi_init(&pciechodev->pdev,0,4,true,true,errp)잘 작동했습니다. 그러나 디버깅하는 동안 MSI 인터럽트가 전송되기 전에 값이 msi_enabled(&edu->pdev)0이라는 것을 발견...

Admin

커널 모듈에서 ARM 범용 타이머용 인터럽트 핸들러를 등록하는 방법은 무엇입니까?
interrupt

커널 모듈에서 ARM 범용 타이머용 인터럽트 핸들러를 등록하는 방법은 무엇입니까?

현재 Raspberry Pi 5의 범용 타이머 타이머 중 하나에 대한 사용자 지정 처리기를 등록하려고 하는데 안타깝게도 작동하지 않습니다. 지금까지 내가 한 일은 장치 트리의 타이머 항목을 보는 것뿐이며 언급된 4개의 인터럽트, PPI 10, 11, 13 및 14가 있습니다. timer { compatible = "arm,armv8-timer"; interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | ...

Admin

Parrot OS 설치 중단을 해결하는 방법은 무엇입니까? - common_interrupt: 1.55 벡터 인터럽트 핸들러 없음
interrupt

Parrot OS 설치 중단을 해결하는 방법은 무엇입니까? - common_interrupt: 1.55 벡터 인터럽트 핸들러 없음

Parrot OS 설치를 시도하고 있습니다. 하지만 설치하면 중단 메시지가 표시되고 터미널에서 멈춥니다. balena etcher를 사용하여 Parrot OS를 플래시한 후 Parrot OS에서 시도/설치 버튼을 사용하여 설치하려고 하면 이러한 중단이 발생하고 영원히 멈추게 됩니다. 0.006525] __common_interuppt: 1.55 No irq handler for vector 계속 3x 브레이크라고 하는데 1.55, 2.55, 3.55입니다. Parrot Os Security를 ​​설치...

Admin

Linux 소켓 IO 모드
interrupt

Linux 소켓 IO 모드

I/O에는 세 가지 모드가 있습니다. 그들은 IO, 인터럽트 IO 및 DMA를 프로그래밍하고 있습니다. 제가 이해한 바에 따르면 프로그래밍 방식 IO에는 CPU 사용 중 대기가 필요하지만 인터럽트 IO는 본질적으로 비동기식입니다. Linux 동기 및 비동기 소켓에서 어떤 IO 모드가 사용되는지 또는 어떤 IO 모드를 사용하도록 구성 가능한지 여부는 어디에서 찾을 수 있습니까? TCP 소켓을 예로 들 수 있습니다. ...

Admin

커널 작업자 스레드에서 절전 모드로 전환
interrupt

커널 작업자 스레드에서 절전 모드로 전환

인터럽트가 작업 대기열을 통해 작업을 연기하는 방법에 대해 읽었습니다. 내가 이해한 바로는 대기열 작업을 작업 대기열로 중단한 다음 커널 작업자 스레드에서 처리합니다. 내 질문은 커널에서 작업을 수행하는 것과 관련된 것입니다 worker_thread. 작업이 자발적으로 절전 모드로 전환되면 worker_thread프로세스가 대기열에서 다른 작업도 수행합니까? 작업자 + 작업자 스레드가 비자발적으로 제어를 포기하는 경우(예: 선점형 스케줄링), 다시 시작하면 작업자 스레드가 다음 작업을 계속하기 전에...

Admin

_PRT 테이블을 사용하여 인터럽트 할당
interrupt

_PRT 테이블을 사용하여 인터럽트 할당

PCI 장치 기능 1이 인터럽트를 수신하지 못하는 문제에 직면해 있습니다. ACPI BIOS 공유 PRT 테이블을 기반으로 Linux 부팅 중에 인터럽트(레거시 INTx)가 할당되는 방법을 알고 싶습니다. 특히 lspci가 이러한 IRQ를 나열하는 방법을 알고 싶습니다. 이 문제에 대해 도와주세요. 예를 들면 다음과 같습니다. _PRT해당 버스 범위는 SSDT 테이블에서 나옵니다. 이는 EX: _PRT 및 SSDT 테이블의 버스 범위입니다. Device (PCI3) { ...

Admin

IRQ를 최적의 CPU로 수정하기 위해 미리 만들어진 스크립트가 있습니까?
interrupt

IRQ를 최적의 CPU로 수정하기 위해 미리 만들어진 스크립트가 있습니까?

저는 전문가가 아니며 뭔가 잘못할까봐 걱정됩니다... 우분투 18.04에서 스크립트를 실행하고 인터럽트를 올바르게 조정하는 표준/승인된 방법이 있습니까? 나는 또한 이 작업을 수행하는 수천 대의 기계를 가지고 있으므로 바퀴를 재발명하고 싶지 않습니다. ...

Admin

프로세스가 어떻게 프로그래밍 방식으로 인터럽트에 연결될 수 있나요?
interrupt

프로세스가 어떻게 프로그래밍 방식으로 인터럽트에 연결될 수 있나요?

나는 인터럽트가 처리를 요청하는 커널로 전송되는 신호라는 것을 이해합니다. 어떤 경우에는 프로세스를 인터럽트(키 누르기)와 연결하는 드라이버가 있는 키보드와 같은 물리적 장치가 있습니다. 하지만 타이머나 물리적 장치가 없는 다른 것들은 어떻습니까? 어쩌면 내가 틀렸을 수도 있고 누군가 나를 고쳐준다면 기쁠 것입니다. ...

Admin

라운드 로빈 스케줄링 및 컨텍스트 전환은 내부적으로 어떻게 작동합니까?
interrupt

라운드 로빈 스케줄링 및 컨텍스트 전환은 내부적으로 어떻게 작동합니까?

라운드 로빈 스케줄링을 사용하여 커널은 다양한 프로세스/작업에 시간 조각을 제공합니다. 타이머가 시간 초과되면 커널이 타이머를 초기화하고 현재 작업이 중단된 다음 커널이 제어권을 갖게 되는 것 같습니다. 커널은 새로운 작업을 예약하기 위해 타이머 시간 초과 인터럽트를 사용해야 한다는 것을 어떻게 알 수 있습니까? 스케줄러뿐만 아니라 다양한 목적으로 서로 다른 타이머를 사용한다면 어떻게 될까요? 다양한 인터럽트 서비스 루틴은 모두 어디로 가나요? 미리 감사드립니다. ...

Admin

time 명령은 4밀리초 타이머 틱에서 밀리초를 어떻게 계산합니까?
interrupt

time 명령은 4밀리초 타이머 틱에서 밀리초를 어떻게 계산합니까?

time다른 Ubuntu 시스템(실제 하드웨어와 가상 머신 모두)의 bash 명령에서 때때로 밀리초를 얻 CONFIG_HZ=250습니다 .real 0m0.001suser 0m0.001ssys 0m0.001s 어떻게 이럴 수있어? real편집: 나는 명령의 시작과 끝에서 사용 가능한 고해상도 시간 소스를 쿼리하여 경과() 시간을 정확하게 계산할 수 있음 을 인정합니다 time. 그러나 성능상의 이유로 시스템 호출 시작 또는 종료에 대한 시간 소스 쿼리가 없기 때문에 CPU 시간은 4...

Admin

상단에서 irq 프로세스에 대한 자세한 내용을 어떻게 얻을 수 있나요?
interrupt

상단에서 irq 프로세스에 대한 자세한 내용을 어떻게 얻을 수 있나요?

irq/21-xhci-hcd프로세스가 CPU의 90%를 소비하고 있는 것으로 나타 났습니다 top. 또한 소프트웨어 인터럽트(si)를 처리하는 데 많은 CPU 시간이 소요됩니다. 이것은 임베디드 Linux에 있습니다. 이것이 IRQ 21이라는 뜻인가요? 그러면 이를 사용하여 lspci -vvvIRQ 21에 대한 추가 정보를 얻을 수 있습니까 ? dmesg그렇지 않은 경우 do 또는 와 같은 다른 방법을 사용해야 합니까 watch -n1 -d "cat /proc/interrupts"? 어떤 커널 모듈이...

Admin

커널 드라이버 작성 - 특정 인터럽트 핀 이해
interrupt

커널 드라이버 작성 - 특정 인터럽트 핀 이해

저는 Linux 커널 모듈/드라이버를 작성할 지식이 없습니다. 기본적인 예를 들어보겠습니다. 인터럽트 핀 중 하나의 마이크로 컨트롤러에 연결된 입력 장치가 있습니다. 장치의 버튼을 누르면 마이크로 컨트롤러에서 하드웨어 인터럽트가 발생한다는 것을 알고 있습니다. 베어 메탈 개발자로서 저는 특정 인터럽트가 발생할 때 인터럽트 벡터가 점프할 주소에 인터럽트 핸들러 코드를 배치합니다. 이제 마이크로 컨트롤러에서 실행되는 Linux 커널이 있고 입력 장치용 커널 드라이버를 작성하려는 경우 커널을 통해 인터럽트...

Admin

Linux 커널 정지
interrupt

Linux 커널 정지

저는 Intel(icelake) 기반 서버에서 Linux 커널 4.19를 사용하고 있습니다. 때때로 Linux가 부팅된 직후(로그인 프롬프트에서) 작동이 멈추는 경우가 있습니다(재부팅 시 50번 정도). 직렬 터미널이나 모니터에서는 아무 반응도 하지 않습니다. 붙어 있으면 키보드 캡 잠금 표시등이 켜지거나 꺼지지 않습니다. sysrq 요청도 허용하지 않습니다. 복구할 수 있는 유일한 방법은 서버를 재설정하는 것입니다. 디버깅하고 교착 상태 디버깅을 시도했지만 도움이 되지 않았습니다. 이 문제는 10번...

Admin

인터럽트 수 수정 cat /proc/interrupt
interrupt

인터럽트 수 수정 cat /proc/interrupt

보시다시피, 명령을 실행하면 cat /proc/interrupts두 번째 열에는 각 장치 드라이버가 각 CPU에 전달한 인터럽트 수가 표시됩니다. test@test:~$ cat /proc/interrupts CPU0 CPU1 0: 79 0 IO-APIC-edge timer 1: 9 17152 IO-APIC-edge i8042 4: 2 0...

Admin

로컬 타이머 인터럽트 수의 변화를 설명하세요.
interrupt

로컬 타이머 인터럽트 수의 변화를 설명하세요.

/proc/interrupts다양한 CPU 격리(IRQ 및 프로세스) 구성에서 지정된 워크로드를 실행하는 동안 로컬 타이머 인터럽트 수에 대해 보고된 값(총계)에서 큰 차이가 관찰 되지 않았습니다. /proc/stats로컬 타이머 인터럽트 수가 약 .는 20%이다. 답변: 내가 아는 한, current_clocksource = hpet일 때 로컬 타이머 인터럽트는 비교기에 의해 생성되고, 비교기는 = 비교(>= 대신) 이후에 인터럽트를 트리거합니다. 이로 인해 "잊음"으로 인해 인터럽트가 트리거...

Admin