Re: pci: is reset incomplete?

2009-09-14 Thread Anthony Liguori

Michael S. Tsirkin wrote:

Hi!
pci bus reset does not seem to clear pci config registers, such as BAR
registers, or memory space enable, of the attached devices: it only
clears the interrupt state.

This seems wrong, but easy to fix.
  


I don't think most pci devices reset their config space in their reset 
callbacks.


I would think that making most of the config space (if not the entire) 
qdev properties would make sense.  You can then get reset for free and 
it's possible for users to tweak things like class codes universally.


Regards,

Anthony Liguori


Comments?

  


--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: pci: is reset incomplete?

2009-09-14 Thread Michael S. Tsirkin
On Mon, Sep 14, 2009 at 12:15:29PM -0500, Anthony Liguori wrote:
 Michael S. Tsirkin wrote:
 Hi!
 pci bus reset does not seem to clear pci config registers, such as BAR
 registers, or memory space enable, of the attached devices: it only
 clears the interrupt state.

 This seems wrong, but easy to fix.
   

 I don't think most pci devices reset their config space in their reset  
 callbacks.

For things like BAR registers, they really must.
The PCI spec is quite specific on this point.

 I would think that making most of the config space (if not the entire)  
 qdev properties would make sense.  You can then get reset for free and  
 it's possible for users to tweak things like class codes universally.

class codes are read only registers. Your proposal might be correct for
some of these. But PCI registers that are reset, change as a result of
guest activity, and reset values are typically specified by guest spec.
So I don't think we should let users tweak these.

 Regards,

 Anthony Liguori

 Comments?

   
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: pci: is reset incomplete?

2009-09-14 Thread Anthony Liguori

Michael S. Tsirkin wrote:

On Mon, Sep 14, 2009 at 12:15:29PM -0500, Anthony Liguori wrote:
  

Michael S. Tsirkin wrote:


Hi!
pci bus reset does not seem to clear pci config registers, such as BAR
registers, or memory space enable, of the attached devices: it only
clears the interrupt state.

This seems wrong, but easy to fix.
  
  
I don't think most pci devices reset their config space in their reset  
callbacks.



For things like BAR registers, they really must.
  


BARs should be registered via pci_register_bar so you should be able to 
centralize their reset.



class codes are read only registers. Your proposal might be correct for
some of these. But PCI registers that are reset, change as a result of
guest activity, and reset values are typically specified by guest spec.
So I don't think we should let users tweak these.
  


Well, I guess my general point was that it would be good to add more 
structure to how config space is initialized.  I think a natural 
consequence of that is that it becomes easier to automatically fix the 
values on reset.


Regards,

Anthony Liguori
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html