I understand the hardware,but How to achieve this function with qemu?,

For example, this interrupt is not allowed to be nested. When the new
interrupt comes, how can I detect that the interrupt is executing?

Peter Maydell <peter.mayd...@linaro.org> 于2021年9月2日周四 下午3:43写道:

> On Thu, 2 Sept 2021 at 03:18, Duo jia <jiaduo19920...@gmail.com> wrote:
> >
> >   Hi,
> >    thank you for your response.
> >    As you say
> >>
> >>  "End of interrupt handling is entirely dependent on what the
> >> guest hardware being emulated is. Usually the guest software
> >> will indicate "interrupt handled" back to the interrupt
> >> controller (perhaps by writing a register; depends on the
> >> interrupt controller), and the interrupt controller will
> >> then look at what the next highest priority pending interrupt
> >> is and signal that back to the CPU, or do nothing if there's
> >> no new interrupt. So the second interrupt will automatically
> >> be taken and handled once the first one has finished,
> >> as a result of this interrupt controller and guest OS
> >> interaction."
> >
> > I agree with that. I has try some method, But Still have some problems.
> >
> > Q1:
> > My guest(target) cpu seem don't have a   "interrupt handled" , And I
> don't know How/When to program the  " interrupt controller"   to check the
> second interrupt when the first over.
>
> There is always some way for the CPU to tell the system
> that an interrupt has been dealt with. You don't say what
> architecture you're working on, so it's impossible to
> be more specific. But I think it is very likely that you
> have misunderstood how the hardware works. Typically
> you don't need to program the interrupt controller to
> check for a second interrupt -- the hw specification
> says that it does that automatically.
>
> > Also I found the new problem(maybe bug) , when first interrupt
> > not over, the second interrupt may occur
>
> Whether this is permitted or not depends upon the
> specification of the hardware. Some interrupt controllers
> never allow preemption of interrupts like this. Some
> do. Some allow it but only if the guest has programmed
> it to permit it (eg by setting priority registers).
> As always, you need to look at what the hardware
> specification says each component in the system must do
> (and at how they interact with each other).
>
> thanks
> -- PMM
>

Reply via email to