Date: Tue, 19 Mar 2013 18:23:25 +0100 From: =?ISO-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com> To: "Justin T. Gibbs" <gibbs@freebsd.org> Cc: "freebsd-xen@freebsd.org" <freebsd-xen@freebsd.org>, "dfr@freebsd.org" <dfr@freebsd.org>, "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org> Subject: Re: Difference in event channel implementation for Xen PV vs HVM guests Message-ID: <51489F0D.7070105@citrix.com> In-Reply-To: <9AE68E59-739C-499C-9991-0C84D4584981@freebsd.org> References: <51470A2B.5040609@citrix.com> <9AE68E59-739C-499C-9991-0C84D4584981@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 18/03/13 14:08, Justin T. Gibbs wrote: > On Mar 18, 2013, at 6:35 AM, Roger Pau Monné <roger.pau@citrix.com> 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-unsubscribe@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51489F0D.7070105>