flat assembler
Message board for the users of flat assembler.

Index > Main > interprocessor interrupts delay,

Thread Post new topic Reply to topic

Joined: 24 Jan 2006
Posts: 185
lazer1 30 May 2007, 01:34
if I do a fixed delivery mode IPI interrupt to all CPUs excluding self
on a 2 CPU system, (all excluding self, edge trigger mode, assert,
fixed delivery mode, physical destination mode, vector = 254)

that happens correctly,

but if I IMMEDIATELY do that again the second IPI is ignored,
if I wait long enough then a second IPI happens,

now I tried instead waiting till the delivery status was idle
before immediately sending another but that also was ignored.

does anyone know why this is?

shouldnt the other APIC just hold off and delay the int?

maybe I could make the other cpus set some bits at the
end of their handlers but in general that is very complicated
as there can be up to 256 cpus and up to 256 IPI vectors
(I avoid the early IPI vectors eg <= 32 I dont use)

I tried another experiment where I put both the BSP and
AP into infinite loops doing such IPIs,

both happen at the same int handler at vector 254 which
echos some text and the CPU number (0 or 1 here),

when I run this the text is being echoed ultra fast forever,

so SOME IPIs get through, it would appear as soon as enough
time has elapsed an IPI will get through. But it is very annoying
that there is no guarantee, that will cause a lot of problems
for coding
Post 30 May 2007, 01:34
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.