Skip to contentSkip to conversation

summary of current vfio mdev upstreaming status

DISCUSSION Jike Song 6 participants 10 messages Sep 29, 2016 – Sep 30, 2016 KVM

lore
Share & tools
lore

Jike Song

author
#0 lore raw

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

PART 1: mdev core driver

[task]
- the mdev bus/device support
- the utilities of mdev lifecycle management
- the physical device register/unregister interfaces

[status]
- basically agreed by community

PART 2: vfio bus driver for mdev

[task]
- interfaces with vendor drivers
- the vfio bus implementation

[status]

- basically agreed by community

PART 3: iommu support for mdev

[task]
- iommu support for mdev

[status]
- Kirti's v7 implementation, not yet fully reviewed

PART 4: sysfs interfaces for mdev

[task]
- define the hierarchy of minimal sysfs directories/files
- check the validity from vendor drivers, init/de-init them
[status]
- interfaces are in discussion

PART 6: Documentation

	[task]
		-	clearly document the architecture and interfaces
		-	coding example for vendor drivers

	[status]
		-	N/A

What I'm curious here is 'PART 4', which is needed by other parts to perform further steps, is it possible to accelerate the process somehow? :-)

--
Thanks,
Jike

#1 lore raw
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

I think what Jike want to suggest is how about partially push/develop the mdev. As jike listed, there are some parts can be independent and they have mostly been agreed.

Such development plan can make the discussion be much efficient in the community. Also it make the possibility that Intel, Nvdia, IBM can focus on different parts and co-develop it.

The maintainer can hold these development patches in local branch before pushing the full-functionality version to upstream.

Thanks!

#2 lore raw
Quoted 12 lines · Xiao Guangrong
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

Quoted 7 lines

I think what Jike want to suggest is how about partially push/develop the mdev. As jike listed, there are some parts can be independent and they have mostly been agreed.

Such development plan can make the discussion be much efficient in the community. Also it make the possibility that Intel, Nvdia, IBM can focus on different parts and co-develop it.

Hi Guangrong,

JFYI. we are preparing v8 patches to accommodate most comments we have discussed so far and we will also include several things that we have decided on sysfs.

I definitely would like to see more interactive discussions especially on the sysfs class front from intel folks.

Regarding the patch development and given the current status, especially where we are and what we have been through, I am very confident that we should be able to fully handle this ourselves, but thanks for offering help anyway!

We should be able to react as fast as possible based on the public mailing list discussions, so again I don't think that part is an issue.

Thanks,
Neo

Quoted 7 lines

The maintainer can hold these development patches in local branch before pushing the full-functionality version to upstream.

Thanks!

#3 lore raw
Quoted 29 lines · Neo Jia
Quoted 12 lines · Xiao Guangrong
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

Quoted 7 lines

I think what Jike want to suggest is how about partially push/develop the mdev. As jike listed, there are some parts can be independent and they have mostly been agreed.

Such development plan can make the discussion be much efficient in the community. Also it make the possibility that Intel, Nvdia, IBM can focus on different parts and co-develop it.

Hi Guangrong,

JFYI. we are preparing v8 patches to accommodate most comments we have discussed so far and we will also include several things that we have decided on sysfs.

I definitely would like to see more interactive discussions especially on the sysfs class front from intel folks.

Quoted 6 lines

Regarding the patch development and given the current status, especially where we are and what we have been through, I am very confident that we should be able to fully handle this ourselves, but thanks for offering help anyway!

We should be able to react as fast as possible based on the public mailing list discussions, so again I don't think that part is an issue.

We understand the progress goes okay. However, splitting such big patchset into small parts is a better way to push large code to upstream - it is better for review and validation and we can quickly iterate the code if there are new issues exposed during the review of new version.

Particularly, based on the current situation that the sysfs interfaces are far from the way to be decided, it is definitely a good idea to push the basic infrastructure first, later let's focal on the ABI part - sysfs interface design.

Thanks!

#4 lore raw
Quoted 52 lines · Xiao Guangrong
Quoted 40 lines · Neo Jia
Quoted 18 lines · Xiao Guangrong
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

I think what Jike want to suggest is how about partially push/develop the
mdev. As jike listed, there are some parts can be independent and they have
mostly been agreed.

Quoted 3 lines

Such development plan can make the discussion be much efficient in the community. Also it make the possibility that Intel, Nvdia, IBM can focus on different parts and co-develop it.

Hi Guangrong,

JFYI. we are preparing v8 patches to accommodate most comments we have discussed
so far and we will also include several things that we have decided on sysfs.

I definitely would like to see more interactive discussions especially on the
sysfs class front from intel folks.

Regarding the patch development and given the current status, especially where
we are and what we have been through, I am very confident that we should be able
to fully handle this ourselves, but thanks for offering help anyway!

Quoted 3 lines

We should be able to react as fast as possible based on the public mailing list
discussions, so again I don't think that part is an issue.

We understand the progress goes okay. However, splitting such big patchset into small parts is a better way to push large code to upstream - it is better for review and validation and we can quickly iterate the code if there are new issues exposed during the review of new version.

Quoted 5 lines

Particularly, based on the current situation that the sysfs interfaces are far from the way to be decided, it is definitely a good idea to push the basic infrastructure first, later let's focal on the ABI part - sysfs interface design.

Yes, we will have v8 series soon out for review even if sysfs interface discussion is not settled down to get other pieces reviewed and tested. In this patch set, we will have basic set of sysfs interface which we all have agreed on until now like 'create' and 'remove'.

Thanks,
Kirti

#5 lore raw
In reply to Jike Song
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

Hi Jike,

Thanks for summarizing this, but I will defer to Kirti to comment on the actual upstream status of her patches, couples things to note though:

1) iommu type1 patches have been extensively reviewed by Alex already and we have one action item left to implement which is already queued up in v8 patchset.

2) regarding the sysfs interface and libvirt discussion, I would like to hear what kind of attributes Intel folks are having so far as Daniel is asking about adding a class "gpu" which will pull several attributes as mandatory.

Thanks,
Neo

Quoted 64 lines

PART 1: mdev core driver

[task]
- the mdev bus/device support
- the utilities of mdev lifecycle management
- the physical device register/unregister interfaces

[status]
- basically agreed by community

PART 2: vfio bus driver for mdev

[task]
- interfaces with vendor drivers
- the vfio bus implementation

[status]

- basically agreed by community

PART 3: iommu support for mdev

[task]
- iommu support for mdev

[status]
- Kirti's v7 implementation, not yet fully reviewed

PART 4: sysfs interfaces for mdev

[task]
- define the hierarchy of minimal sysfs directories/files
- check the validity from vendor drivers, init/de-init them
[status]
- interfaces are in discussion

PART 6: Documentation

	[task]
		-	clearly document the architecture and interfaces
		-	coding example for vendor drivers

	[status]
		-	N/A

What I'm curious here is 'PART 4', which is needed by other parts to perform further steps, is it possible to accelerate the process somehow? :-)

--
Thanks,
Jike
--
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

#6 lore raw
Quoted 10 lines · Neo Jia
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

Thanks Jike for summarizing. We already have separate patch for each of these logical parts. I had maintained patch sequence in incremental depending order.

Quoted 8 lines

Hi Jike,

Thanks for summarizing this, but I will defer to Kirti to comment on the actual upstream status of her patches, couples things to note though:

1) iommu type1 patches have been extensively reviewed by Alex already and we have one action item left to implement which is already queued up in v8 patchset.

That's right Neo.

Quoted 4 lines

2) regarding the sysfs interface and libvirt discussion, I would like to hear what kind of attributes Intel folks are having so far as Daniel is asking about adding a class "gpu" which will pull several attributes as mandatory.

Quoted 27 lines

Thanks,
Neo

Quoted 24 lines

PART 1: mdev core driver

[task]
- the mdev bus/device support
- the utilities of mdev lifecycle management
- the physical device register/unregister interfaces

[status]
- basically agreed by community

PART 2: vfio bus driver for mdev

[task]
- interfaces with vendor drivers
- the vfio bus implementation

[status]

- basically agreed by community

I'm working on v8 version for above patches based on previous discussions.

Quoted 20 lines
Quoted 10 lines

PART 3: iommu support for mdev

[task]
- iommu support for mdev

[status]
- Kirti's v7 implementation, not yet fully reviewed

Quoted 9 lines

PART 4: sysfs interfaces for mdev

[task]
- define the hierarchy of minimal sysfs directories/files
- check the validity from vendor drivers, init/de-init them
[status]
- interfaces are in discussion

Quoted 1 line

From coding perspective, this is part of mdev core module. I think we

can't completely separate this part from mdev core module while coding it. Yes, this interface is still in discussion and we need to settle down on that soon.

Quoted 9 lines
Quoted 9 lines

PART 6: Documentation

	[task]
		-	clearly document the architecture and interfaces
		-	coding example for vendor drivers

	[status]
		-	N/A

I had tried to maintain the document as per changes going on in above patches from v6 onward and will continue to update it for each version accordingly.

I had sent out patch with sample driver few hours back wrt v7 patchset. And henceforth I'll keep on updating sample driver as per changes in mdev modules and add it in my patch series.

Thanks,
Kirti

Quoted 12 lines
Quoted 12 lines

What I'm curious here is 'PART 4', which is needed by other parts to perform further steps, is it possible to accelerate the process somehow? :-)

--
Thanks,
Jike
--
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

author
#7 lore raw
Quoted 20 lines · Kirti Wankhede
Quoted 10 lines · Neo Jia
Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

Thanks Jike for summarizing. We already have separate patch for each of these logical parts. I had maintained patch sequence in incremental depending order.

Quoted 2 lines

Hi Jike,

Quoted 9 lines
Quoted 6 lines

Thanks for summarizing this, but I will defer to Kirti to comment on the actual upstream status of her patches, couples things to note though:

1) iommu type1 patches have been extensively reviewed by Alex already and we have one action item left to implement which is already queued up in v8 patchset.

That's right Neo.

I'm talking about v7. Sure before that Alex gave full reviews..

Quoted 4 lines
Quoted 4 lines

2) regarding the sysfs interface and libvirt discussion, I would like to hear what kind of attributes Intel folks are having so far as Daniel is asking about adding a class "gpu" which will pull several attributes as mandatory.

As Kevin said, no.

Quoted 50 lines
Quoted 27 lines

Thanks,
Neo

Quoted 24 lines

PART 1: mdev core driver

[task]
- the mdev bus/device support
- the utilities of mdev lifecycle management
- the physical device register/unregister interfaces

[status]
- basically agreed by community

PART 2: vfio bus driver for mdev

[task]
- interfaces with vendor drivers
- the vfio bus implementation

[status]

- basically agreed by community

I'm working on v8 version for above patches based on previous discussions.

Quoted 12 lines
Quoted 12 lines

PART 3: iommu support for mdev

[task]
- iommu support for mdev

[status]
- Kirti's v7 implementation, not yet fully reviewed

PART 4: sysfs interfaces for mdev

Quoted 7 lines
Quoted 7 lines

[task]
- define the hierarchy of minimal sysfs directories/files
- check the validity from vendor drivers, init/de-init them
[status]
- interfaces are in discussion

Quoted 5 lines

From coding perspective, this is part of mdev core module. I think we can't completely separate this part from mdev core module while coding it. Yes, this interface is still in discussion and we need to settle down on that soon.

I Still think it's possible to separate them, but hey, looking forward to your implementation :)

Quoted 10 lines
Quoted 9 lines
Quoted 9 lines

PART 6: Documentation

	[task]
		-	clearly document the architecture and interfaces
		-	coding example for vendor drivers

	[status]
		-	N/A
Quoted 7 lines

I had tried to maintain the document as per changes going on in above patches from v6 onward and will continue to update it for each version accordingly.

I had sent out patch with sample driver few hours back wrt v7 patchset. And henceforth I'll keep on updating sample driver as per changes in mdev modules and add it in my patch series.

Good to know that.

Quoted 4 lines

Thanks,
Kirti

--
Thanks,
Jike

#8 lore raw
In reply to Neo Jia
Quoted 18 lines

From: Neo Jia [mailto:[email protected]]
Sent: Thursday, September 29, 2016 5:17 PM

Quoted 8 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

Hi Jike,

Thanks for summarizing this, but I will defer to Kirti to comment on the actual upstream status of her patches, couples things to note though:

Quoted 7 lines

1) iommu type1 patches have been extensively reviewed by Alex already and we have one action item left to implement which is already queued up in v8 patchset.

2) regarding the sysfs interface and libvirt discussion, I would like to hear what kind of attributes Intel folks are having so far as Daniel is asking about adding a class "gpu" which will pull several attributes as mandatory.

I have replied to Daniel that Intel doesn't plan to support those attributes. We think default mdev attributes are enough for our requirements. You may put them into 'description' attribute for informative purpose...

If both sides agree this assumption, along with Kirti's reply that you don't require grouping mdev any more, it'd be more promising of pushing whole mdev bits to upstream then. :-)

Thanks
Kevin

#9 lore raw
In reply to Jike Song
Quoted 51 lines · Jike Song

Hi all,

In order to have a clear understanding about the VFIO mdev upstreaming status, I'd like to summarize it. Please share your opinions on this, and correct my misunderstandings.

The whole vfio mdev series can be logically divided into several parts, they work together to provide the mdev support.

PART 1: mdev core driver

[task]
- the mdev bus/device support
- the utilities of mdev lifecycle management
- the physical device register/unregister interfaces

[status]
- basically agreed by community

PART 2: vfio bus driver for mdev

[task]
- interfaces with vendor drivers
- the vfio bus implementation

[status]

- basically agreed by community

PART 3: iommu support for mdev

[task]
- iommu support for mdev

[status]
- Kirti's v7 implementation, not yet fully reviewed

PART 4: sysfs interfaces for mdev

[task]
- define the hierarchy of minimal sysfs directories/files
- check the validity from vendor drivers, init/de-init them
[status]
- interfaces are in discussion

Quoted 9 lines

PART 6: Documentation

	[task]
		-	clearly document the architecture and interfaces
		-	coding example for vendor drivers

	[status]
		-	N/A

IMHO documentation should really be near the front as that's spelling out the design. The implementation patches are then reviewed in reference to the design documentation.

Regards,
Daniel

Signature · 3 lines
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|