On Thu, Oct 21, 2010 at 11:27:30AM +0200, Avi Kivity wrote:
>  On 10/21/2010 08:46 AM, Sheng Yang wrote:
> >>  >  +              r = -EOPNOTSUPP;
> >>
> >>  If the guest assigned the device to another guest, it allows the nested
> >>  guest to kill the non-nested guest.  Need to exit in a graceful fashion.
> >
> >Don't understand... It wouldn't result in kill but return to QEmu/userspace.
> 
> What would qemu do on EOPNOTSUPP?  It has no way of knowing that
> this was triggered by an unsupported msix access.  What can it do?
> 
> Best to just ignore the write.
> 
> If you're worried about debugging, we can have a trace_kvm_discard()
> tracepoint that logs the address and a type enum field that explains
> why an access was discarded.

The issue is that the same page is used for mask and entry programming.

> >>  >  +      if (addr % PCI_MSIX_ENTRY_SIZE != PCI_MSIX_ENTRY_VECTOR_CTRL) {
> >>  >  +              /* Only allow entry modification when entry was masked 
> >> */
> >>  >  +              if (!entry_masked) {
> >>  >  +                      printk(KERN_WARNING
> >>  >  +                              "KVM: guest try to write unmasked MSI-X 
> >> entry. "
> >>  >  +                              "addr 0x%llx, len %d, val 0x%lx\n",
> >>  >  +                              addr, len, new_val);
> >>  >  +                      r = 0;
> >>
> >>  What does the spec says about this situation?
> >
> >As Michael pointed out. The spec said the result is "undefined" indeed.
> 
> Ok.  Then we should silently discard the write instead of allowing
> the guest to flood host dmesg.
> 
> >>
> >>  >  +              goto out;
> >>  >  +      }
> >>  >  +      if (new_val&   ~1ul) {
> >>
> >>  Is there a #define for this bit?
> >
> >Sorry I didn't find it. mask_msi_irq() also use the number 1... Maybe we can 
> >add
> >one.
> 
> Yes please.
> 
> 
> -- 
> error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to