Re: Difference in event channel implementation for Xen PV vs HVM guests

2013-03-21 Thread Roger Pau Monné
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

2013-03-21 Thread Roger Pau Monné
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

2013-03-19 Thread Roger Pau Monné
On 18/03/13 14:08, Justin T. Gibbs wrote:
 On Mar 18, 2013, at 6:35 AM, Roger Pau Monné roger@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-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


Difference in event channel implementation for Xen PV vs HVM guests

2013-03-18 Thread Roger Pau Monné
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


Re: Difference in event channel implementation for Xen PV vs HVM guests

2013-03-18 Thread Justin T. Gibbs
On Mar 18, 2013, at 6:35 AM, Roger Pau Monné roger@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-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