On Fri, Jan 11, 2013 at 02:26:51AM -0500, Christoffer Dall wrote: > On 10/01/2013, at 20.10, Scott Wood <scottw...@freescale.com> wrote: > > > On 01/10/2013 06:35:02 PM, Marcelo Tosatti wrote: > >> On Thu, Jan 10, 2013 at 04:40:12PM -0600, Scott Wood wrote: > >> > On 01/10/2013 04:28:01 PM, Marcelo Tosatti wrote: > >> > >Or just have KVM_SET_PPC_DEVICE_ADDRESS. Is there a downside to that? > >> > > >> > Besides the above, and my original complaint that it shouldn't be > >> > specific to addresses? > >> > > >> > -Scott > >> I did not really grasp that ('shouldnt be specific to addresses'), but > >> anyway. > > > > A device may have other configuration parameters that need to be set, > > besides addresses. PPC MPIC will require information about the vendor > > and version, for example. > > > >> OK, can you write down your proposed improvements to the interface? > >> In case you have something ready, otherwise there is time pressure > >> to merge the ARM port. > > > > My original request was just to change the name to something like > > KVM_SET_DEVICE_CONFIG or KVM_SET_DEVICE_ATTR, and not make the id > > encoding architecture-specific (preferably, separate into a "device id" > > field and an "attribute id" field rather than using bitfields). Actual > > values for device id could be architecture-specific (or there could be a > > global enumeration), and attribute id values would be device-specific. > > > > Alex suggested that an ideal interface might accept values larger than 64 > > bits, though I think it's good enough -- there are currently no proposed > > uses that need more than 64 bits for a single attribute (unlike ONE_REG), > > and if it is needed, such configuration could be split up between > > multiple attributes, or the attribute could specify that "value" be a > > userspace pointer to the actual data (as with ONE_REG). > > > > Here's a writeup (the ARM details would go under ARM/vGIC-specific > > documentation): > > > > 4.80 KVM_SET_DEVICE_ATTR > > > > Capability: KVM_CAP_SET_DEVICE_ATTR > > Type: vm ioctl > > Parameters: struct kvm_device_attr (in) > > Returns: 0 on success, -1 on error > > Errors: > > ENODEV: The device id is unknown > > ENXIO: Device not supported on current system > > Other errors may be returned by specific devices and attributes. > > > > struct kvm_device_attr { > > __u32 device; > > __u32 attr; > > __u64 value; > > }; > > > > Specify an attribute of a device emulated or directly exposed by the > > kernel, which the host kernel needs to know about. The device field is an > > architecture-specific identifier for a specific device. The attr field > > is a device-specific identifier for a specific attribute. Individual > > attributes may have particular requirements for when they can and cannot > > be set. > > > >> That is, if you have interest/energy to spend in a possibly reusable > >> interface, as long as that does not delay integration of the ARM code, > >> i don't think the ARM people will mind that. > > > > The impression I've been given is that just about any change will delay > > the integration at this point. If that's the case, and everyone's OK > > with having an interface that is deprecated on arrival, then fine. > > > That is not entirely the case, but there wasn't event agreement on this > revised API, and we didn't want to wait for weeks until a decision was made. > Alex suggested we use a DEV_REG API similar to the ONE_REG API, but I am > quite strongly against having such an API for this specific purpose as it is > too semantically distant to what we do on ARM. (Having a DEV_REG API for > other purposes might be fine though). > > So I have no problem with your suggestion, although we could consider having > a size and addr field in the struct instead and be slightly more extensible. > But I don't feel strongly about it. > > If we can agree on Scott's suggestion or with my modification (Alex, Gleb, > Marcelo ?) then I'll change the KVM/ARM patches to use this and resend them > right away. But we have to agree now! > > If not, I really think we should keep things as they are now, as we're really > discussing idealistic scenarios here, and the ARM patches have been out of > tree for long enough. As Marcelo pointed out, the benefits of the perfect API > are really minimal. > > -Christoffer--
Can you make KVM_SET_ARM_DEVICE address extensible? Add some reserved space and a flags field. -- 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