> PS did you ever have a look at my real patch ?
> Haven't got any feedback yet...

Sorry, I'm a bit short of time at the moment due to upcoming exams ...

Anyway, I'm not sure I completely understand your flag manipulations:

- Why are you differentiating between flags that have a fixed 'real'
  value and those that have a non-fixed 'real' value, but which still
  differs from the guest value?

  Wouldn't it be simpler to just have two sorts of flags, those where
  'real' value is always identical to guest value, and those where
  'real' value is determined by the monitor (whether it be constant
  or not)?
  
  
- What's the point of fiddling around with VIF/VIP any more?  

  I mean, the monitor interrupt handling mechanism is not really
  the same as the PVI stuff, although it works somewhat similarly.
  To avoid confusion (especially if we might want to support guests
  that use PVI themselves at a later time), it might be simpler to
  just use (guest_eflags & FLG_IF) as interrupt flag, and some new
  nexus member as 'interrupt pending' flag ...

  In any case, copying the monitor's VIF/VIP values into the 'real'
  eflags would appear wrong, as the neither the guest nor the 
  processor should be aware of them.

  [ I'm wondering whether you think that the processor should indeed
  be aware of the VIF/VIP flags, so that we would be able to use the
  real PVI mode ...   But I don't believe this can work, because we 
  will need to emulate the proper GPF if sti/cli are called in guest
  ring-3 mode and the guest thinks PVI is off. ]


- Do we really need a 'mon_eflags' member?

  I'm not sure that it might not be simpler to determine the settings
  of those flags where 'real' and guest values differ on-the-fly.
  But this is probably a matter of taste ...


- I don't understand this:

+#define FLG_ASYN_MON_MASK (FLG_TF | FLG_VIF | FLG_VIP)
+#define FLG_ASYN_GST_MASK (FLG_TF)

+       dst |= mon & FLG_ASYN_MON_MASK; \
+       dst |= gst & FLG_ASYN_GST_MASK; \

  Is the intention really to 'or' the TF values of mon_eflags and
  guest_eflags together?  Why?


Bye,
Ulrich

-- 
  Ulrich Weigand,
  IMMD 1, Universitaet Erlangen-Nuernberg,
  Martensstr. 3, D-91058 Erlangen, Phone: +49 9131 85-27688

Reply via email to