Re: Difference in event channel implementation for Xen PV vs HVM guests
On Mar 21, 2013, at 6:50 AM, Roger Pau Monné wrote: > On 21/03/13 13:43, Roger Pau Monné wrote: >> On 18/03/13 14:08, Justin T. Gibbs wrote: >>> Hi Roger, >>> >>> I know of no reasons why XENHVM cannot use the full event channel >>> interface. In fact, Spectra Logic implemented PV timers and a >>> general cleanup of the HVM event channel interface. I haven't merged >>> it back yet because I know the changes break PV and I haven't found >>> time to clean up the PV code, merge the HVM and PV event channel >>> systems, and move IPI/MSI delivery to event channels. >>> >>> I've uploaded Spectra's changes here: >>> >>> http://people.freebsd.org/~gibbs/xen_ev/ >> >> Hi Justin, >> >> There's at least one file which seems to be missing: > > Ops, there at least two files missing: > > sys/x86/xen/hvm.c > sys/xen/evtchn/evtchnvar.h I've regenerated the archive with those two files added. -- Justin ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Difference in event channel implementation for Xen PV vs HVM guests
On 21/03/13 13:43, Roger Pau Monné wrote: > On 18/03/13 14:08, Justin T. Gibbs wrote: > > Hi Roger, >> >> I know of no reasons why XENHVM cannot use the full event channel >> interface. In fact, Spectra Logic implemented PV timers and a >> general cleanup of the HVM event channel interface. I haven't merged >> it back yet because I know the changes break PV and I haven't found >> time to clean up the PV code, merge the HVM and PV event channel >> systems, and move IPI/MSI delivery to event channels. >> >> I've uploaded Spectra's changes here: >> >> http://people.freebsd.org/~gibbs/xen_ev/ > > Hi Justin, > > There's at least one file which seems to be missing: Ops, there at least two files missing: sys/x86/xen/hvm.c sys/xen/evtchn/evtchnvar.h ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Difference in event channel implementation for Xen PV vs HVM guests
On 18/03/13 14:08, Justin T. Gibbs wrote: > Hi Roger, > > I know of no reasons why XENHVM cannot use the full event channel > interface. In fact, Spectra Logic implemented PV timers and a > general cleanup of the HVM event channel interface. I haven't merged > it back yet because I know the changes break PV and I haven't found > time to clean up the PV code, merge the HVM and PV event channel > systems, and move IPI/MSI delivery to event channels. > > I've uploaded Spectra's changes here: > > http://people.freebsd.org/~gibbs/xen_ev/ Hi Justin, There's at least one file which seems to be missing: sys/x86/xen/hvm.c Could you check if you have that file around? Thanks, Roger. ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Difference in event channel implementation for Xen PV vs HVM guests
On 18/03/13 14:08, Justin T. Gibbs wrote: > On Mar 18, 2013, at 6:35 AM, Roger Pau Monné wrote: > >> Hello, >> >> While working on improving XENHVM (I've been looking at adding PV >> timers), I've realized that the event channel implementation in PV vs >> HVM mode differs greatly. Xen PV port uses sys/xen/evtchn/evtchn.c while >> Xen HVM uses sys/dev/xenpci/evtchn.c, and the Xen HVM implementation is >> greatly reduced (only contains the necessary functions to operate >> backends/frontends). >> >> To implement PV timers I need to expand the event channel interface for >> XENHVM, and I was wondering why FreeBSD choose to have two different >> implementations, the main difference between PV and HVM is the event >> callback, but I guess this can be abstracted between the two different >> implementations, and then everything else could be reused. Am I missing >> something obvious? >> >> Is there any known technical problem in modifying XENHVM to use the full >> event channel implementation present in sys/xen/evtchn/evtchn.c that >> prevented XENHVM from using it in the first place? >> >> (Sorry if I've Cc'ed someone not related) >> >> Thanks, Roger. >> ___ >> freebsd-virtualization@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization >> To unsubscribe, send any mail to >> "freebsd-virtualization-unsubscr...@freebsd.org" > > Hi Roger, Hello Justin, > > I know of no reasons why XENHVM cannot use the full event channel > interface. In fact, Spectra Logic implemented PV timers and a > general cleanup of the HVM event channel interface. I haven't merged > it back yet because I know the changes break PV and I haven't found > time to clean up the PV code, merge the HVM and PV event channel > systems, and move IPI/MSI delivery to event channels. That sounds great, then FreeBSD will have a fully working PVHVM port. > I've uploaded Spectra's changes here: > > http://people.freebsd.org/~gibbs/xen_ev/ > > The diffs file provides the history of the original checkins to our > Perforce repository. The tar file includes all the files that have > been modified and reflects our efforts to keep our code base in > sync with stable/9. Apart from the PV issues outlined above, I > would expect the code provided to just drop right in to stable/9. Wow, this is a lot of work to keep in a closet, I will start by rebasing those on top of HEAD, and probably try to split them into smaller commits that make logical sense. > > Unfortunately, Xen support is not a current priority for Spectra > so I don't have a lot of day job time to focus on getting this code back > into FreeBSD. However, if this code looks like it would suite > your needs, and you have resources for testing i386/PV, I'd be happy > to collaborate with you and will make the time to help get this > committed. Definitely, you guys did already a lot of work, and it will a shame to lose it, right now I got my plate quite full, but I expect to get on with this in a couple of weeks. Thanks, Roger. ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Difference in event channel implementation for Xen PV vs HVM guests
On Mar 18, 2013, at 6:35 AM, Roger Pau Monné wrote: > Hello, > > While working on improving XENHVM (I've been looking at adding PV > timers), I've realized that the event channel implementation in PV vs > HVM mode differs greatly. Xen PV port uses sys/xen/evtchn/evtchn.c while > Xen HVM uses sys/dev/xenpci/evtchn.c, and the Xen HVM implementation is > greatly reduced (only contains the necessary functions to operate > backends/frontends). > > To implement PV timers I need to expand the event channel interface for > XENHVM, and I was wondering why FreeBSD choose to have two different > implementations, the main difference between PV and HVM is the event > callback, but I guess this can be abstracted between the two different > implementations, and then everything else could be reused. Am I missing > something obvious? > > Is there any known technical problem in modifying XENHVM to use the full > event channel implementation present in sys/xen/evtchn/evtchn.c that > prevented XENHVM from using it in the first place? > > (Sorry if I've Cc'ed someone not related) > > Thanks, Roger. > ___ > freebsd-virtualization@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization > To unsubscribe, send any mail to > "freebsd-virtualization-unsubscr...@freebsd.org" Hi Roger, I know of no reasons why XENHVM cannot use the full event channel interface. In fact, Spectra Logic implemented PV timers and a general cleanup of the HVM event channel interface. I haven't merged it back yet because I know the changes break PV and I haven't found time to clean up the PV code, merge the HVM and PV event channel systems, and move IPI/MSI delivery to event channels. I've uploaded Spectra's changes here: http://people.freebsd.org/~gibbs/xen_ev/ The diffs file provides the history of the original checkins to our Perforce repository. The tar file includes all the files that have been modified and reflects our efforts to keep our code base in sync with stable/9. Apart from the PV issues outlined above, I would expect the code provided to just drop right in to stable/9. Unfortunately, Xen support is not a current priority for Spectra so I don't have a lot of day job time to focus on getting this code back into FreeBSD. However, if this code looks like it would suite your needs, and you have resources for testing i386/PV, I'd be happy to collaborate with you and will make the time to help get this committed. -- Justin ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"