v7 changes:
- Remove v4v_send from the API (v4v_sendv should be
used instead).
- Remove internal_v4v_iov
- Remove useless padding
- Switch back to use uint64_t for the pfn list
instead of xen_pfn_t (to avoid some compat code)
- Rename v4v_iptable to v4v_table.
- Use __copy_to/from_guest when possible
v6 changes:
- Check compiler before using [0] or [].
v5 changes:
- Fix prototypes in v4v.h for do_v4v_op
- Add padding to make sure all the structures
are 64 bits aligned
- Replace [0] with []
v4 changes:
- Stop using ssize_t, use long instead
- Return -MSGSIZE for message bigger than 2GB
- Fixup size handling
- Rename protocol with message_type to avoid the
confusion with the IP protocol flag
- Replaced V4V_DOMID_ANY value with DOMID_INVALID
- Replaced v4v_pfn_t with xen_pfn_t
- Add padding to struct v4v_info
- Fixup hypercall documentation
- Move V4V_ROUNDUP to v4v.c
- Remove v4v_utils.h (we could potentially add it later).
v3 changes:
- Switch to event channel
- Allocated a unbound event channel
per domain.
- Add a new v4v call to share the
event channel port.
- Public headers with actual type definition
- Align all the v4v type to 64 bits
- Modify v4v MAGIC numbers because we won''t
but backward compatible anymore
- Merge insert and insertv
- Merge send and sendv
- Turn all the lock prerequisite from comment
to ASSERT()
- Make use or write_atomic instead of volatile pointers
- Merge v4v_memcpy_to_guest_ring and
v4v_memcpy_to_guest_ring_from_guest
- Introduce copy_from_guest_maybe that can take
a void * and a handle as src address.
- Replace 6 arguments hypercalls with 5 arguments hypercalls.
v2 changes:
- Cleanup plugin header
- Include basic access control
- Use guest_handle_for_field
Jean Guyader (3):
xen: virq, remove VIRQ_XC_RESERVED
xen: events, exposes evtchn_alloc_unbound_domain
xen: Add V4V implementation
xen/arch/x86/hvm/hvm.c | 6 +-
xen/arch/x86/x86_64/compat/entry.S | 2 +
xen/arch/x86/x86_64/entry.S | 2 +
xen/common/Makefile | 1 +
xen/common/domain.c | 13 +-
xen/common/event_channel.c | 39 +-
xen/common/v4v.c | 1848 ++++++++++++++++++++++++++++++++++++
xen/include/public/v4v.h | 308 ++++++
xen/include/public/xen.h | 3 +-
xen/include/xen/event.h | 3 +
xen/include/xen/sched.h | 4 +
xen/include/xen/v4v.h | 134 +++
12 files changed, 2346 insertions(+), 17 deletions(-)
create mode 100644 xen/common/v4v.c
create mode 100644 xen/include/public/v4v.h
create mode 100644 xen/include/xen/v4v.h
--
1.7.9.5
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
VIRQ_XC_RESERVED was reserved for V4V but we have switched to event channels so this place holder is no longer required. Signed-off-by: Jean Guyader <jean.guyader@citrix.com> --- xen/include/public/xen.h | 1 - 1 file changed, 1 deletion(-) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Jean Guyader
2012-Oct-25 11:52 UTC
[PATCH 2/3] xen: events, exposes evtchn_alloc_unbound_domain
Exposes evtchn_alloc_unbound_domain to the rest of Xen so we can create allocated unbound evtchn within Xen. Signed-off-by: Jean Guyader <jean.guyader@citrix.com> --- xen/common/event_channel.c | 39 +++++++++++++++++++++++++++------------ xen/include/xen/event.h | 3 +++ 2 files changed, 30 insertions(+), 12 deletions(-) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Setup of v4v domains a domain gets created and cleanup when a domain die. Wire up the v4v hypercall. Include v4v internal and public headers. Signed-off-by: Jean Guyader <jean.guyader@citrix.com> --- xen/arch/x86/hvm/hvm.c | 6 +- xen/arch/x86/x86_64/compat/entry.S | 2 + xen/arch/x86/x86_64/entry.S | 2 + xen/common/Makefile | 1 + xen/common/domain.c | 13 +- xen/common/v4v.c | 1848 ++++++++++++++++++++++++++++++++++++ xen/include/public/v4v.h | 308 ++++++ xen/include/public/xen.h | 2 +- xen/include/xen/sched.h | 4 + xen/include/xen/v4v.h | 134 +++ 10 files changed, 2316 insertions(+), 4 deletions(-) create mode 100644 xen/common/v4v.c create mode 100644 xen/include/public/v4v.h create mode 100644 xen/include/xen/v4v.h _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
>>> On 25.10.12 at 13:52, Jean Guyader <jean.guyader@citrix.com> wrote: > VIRQ_XC_RESERVED was reserved for V4V but we have switched > to event channels so this place holder is no longer required.I don''t recall what we settled on in earlier discussions here: Is it certain that re-use of this vIRQ won''t cause problems when a guest trying to use it for another purpose would be run on a host having the supposed old meaning of it in use? If not, it may need to remain permanently reserved. Jan
On 25 October 2012 13:36, Jan Beulich <JBeulich@suse.com> wrote:>>>> On 25.10.12 at 13:52, Jean Guyader <jean.guyader@citrix.com> wrote: >> VIRQ_XC_RESERVED was reserved for V4V but we have switched >> to event channels so this place holder is no longer required. > > I don''t recall what we settled on in earlier discussions here: Is it > certain that re-use of this vIRQ won''t cause problems when a > guest trying to use it for another purpose would be run on a > host having the supposed old meaning of it in use? If not, it may > need to remain permanently reserved. >Ok. I''ll remove this patch from the next series. That can be done later down the road. Jean
>>> On 25.10.12 at 13:52, Jean Guyader <jean.guyader@citrix.com> wrote: >+typedef struct v4v_ring_data_ent >+{ >+ v4v_addr_t ring; >+ uint16_t flags;Missing padding here?>+ uint32_t space_required; >+ uint32_t max_message_size; >+} v4v_ring_data_ent_t;>+typedef struct v4vtables_rule >+{ >+ v4v_addr_t src; >+ v4v_addr_t dst; >+ uint32_t accept; >+ uint32_t pad;Pointless padding here?>+} v4vtables_rule_t;>+DEFINE_XEN_GUEST_HANDLE (v4v_iov_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_addr_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_send_addr_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_ring_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_ring_data_ent_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_ring_data_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_info_t); >+DEFINE_XEN_GUEST_HANDLE (v4v_pfn_t); >+ >+DEFINE_XEN_GUEST_HANDLE (v4vtables_rule_t); >+DEFINE_XEN_GUEST_HANDLE (v4vtables_list_t);Extra blanks before opening parens (also elsewhere).>+/* >+ * Helper functions >+ */ >+ >+static inline uint16_t >+v4v_hash_fn (v4v_ring_id_t *id) >+{These and the types further down make sense to be put in a globally visible header only if they are expected to be used from more than one source file. Jan
Jean Guyader
2012-Oct-25 13:42 UTC
Re: [PATCH 2/3] xen: events, exposes evtchn_alloc_unbound_domain
On 25 October 2012 12:52, Jean Guyader <jean.guyader@citrix.com> wrote:> > Exposes evtchn_alloc_unbound_domain to the rest of > Xen so we can create allocated unbound evtchn within Xen. > > Signed-off-by: Jean Guyader <jean.guyader@citrix.com> > --- > xen/common/event_channel.c | 39 +++++++++++++++++++++++++++------------ > xen/include/xen/event.h | 3 +++ > 2 files changed, 30 insertions(+), 12 deletions(-) >I think this patch could be applied on its own. That will make the next v4v round one patch smaller. Jean