RE: [Xen-ia64-devel][PATCH][VTD][dom0] dom0 vtd patch

2008-10-24 Thread Xu, Anthony
Isaku Yamahata wrote:
> On Thu, Oct 23, 2008 at 02:14:52PM +0800, Xu, Anthony wrote:
>> Isaku Yamahata wrote:
>>> On Wed, Oct 22, 2008 at 05:43:13PM +0800, Xu, Anthony wrote:
 dom0/ia64/vtd patch
 
 Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
>>> 
>>> 
>>> In XEN_DOMCTL_get_device_group case.
>>> 
>>> 
>>> struct xen_domctl_get_device_group {
>>> uint32_t  machine_bdf;  /* IN */
>>> uint32_t  max_sdevs;/* IN */
>>> uint32_t  num_sdevs;/* OUT */
>>> XEN_GUEST_HANDLE_64(uint32)  sdev_array;   /* OUT */ };
>>> 
>>> XEN_DOMCTL_get_device_group is used by libxc.
>>> sdev_array needs ot be handled correctly.
>> 
>> I guess you are talking about xencomm,
>> I don't know how to handle it.
>> Can you enlighten me?
> 
> How about this?

That's good.

I understand how to handle it now.

Anthony


> 
> 
> [IA64] xencomm: support several domctls for VT-d.
> 
> This patch adds xencomm support of several domctl hypercalls
> for VT-d.
> 
> Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
> Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>
> 
> diff -r c87adc976013 arch/ia64/xen/xcom_privcmd.c
> --- a/arch/ia64/xen/xcom_privcmd.cMon Oct 20 15:29:07 2008 +0100
> +++ b/arch/ia64/xen/xcom_privcmd.cFri Oct 24 11:22:02 2008 +0900
> @@ -340,6 +340,20 @@
>   return -ENOMEM;
>   set_xen_guest_handle(kern_op.u.hvmcontext.buffer, (void*)desc);
>   break;
> + case XEN_DOMCTL_get_device_group:
> + {
> + struct xen_domctl_get_device_group *get_device_group =
> + &kern_op.u.get_device_group;
> + desc = xencomm_map(
> + xen_guest_handle(get_device_group->sdev_array),
> + get_device_group->max_sdevs * sizeof(uint32_t));
> + if (xen_guest_handle(get_device_group->sdev_array) != NULL &&
> + get_device_group->max_sdevs > 0 && desc == NULL)
> + return -ENOMEM;
> + set_xen_guest_handle(kern_op.u.get_device_group.sdev_array,
> +  (void*)desc);
> + break;
> + }
>   case XEN_DOMCTL_max_vcpus:
>   case XEN_DOMCTL_scheduler_op:
>   case XEN_DOMCTL_setdomainhandle:
> @@ -354,6 +368,12 @@
>   case XEN_DOMCTL_set_opt_feature:
>   case XEN_DOMCTL_assign_device:
>   case XEN_DOMCTL_subscribe:
> + case XEN_DOMCTL_test_assign_device:
> + case XEN_DOMCTL_deassign_device:
> + case XEN_DOMCTL_bind_pt_irq:
> + case XEN_DOMCTL_unbind_pt_irq:
> + case XEN_DOMCTL_memory_mapping:
> + case XEN_DOMCTL_ioport_mapping:
>   break;
>   case XEN_DOMCTL_pin_mem_cacheattr:
>   return -ENOSYS;
___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel][PATCH][VTD][dom0] dom0 vtd patch

2008-10-23 Thread Isaku Yamahata
On Thu, Oct 23, 2008 at 02:14:52PM +0800, Xu, Anthony wrote:
> Isaku Yamahata wrote:
> > On Wed, Oct 22, 2008 at 05:43:13PM +0800, Xu, Anthony wrote:
> >> dom0/ia64/vtd patch
> >>
> >> Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
> >
> >
> > In XEN_DOMCTL_get_device_group case.
> >
> >
> > struct xen_domctl_get_device_group {
> > uint32_t  machine_bdf;  /* IN */
> > uint32_t  max_sdevs;/* IN */
> > uint32_t  num_sdevs;/* OUT */
> > XEN_GUEST_HANDLE_64(uint32)  sdev_array;   /* OUT */
> > };
> >
> > XEN_DOMCTL_get_device_group is used by libxc.
> > sdev_array needs ot be handled correctly.
> 
> I guess you are talking about xencomm,
> I don't know how to handle it.
> Can you enlighten me?

How about this?


[IA64] xencomm: support several domctls for VT-d.

This patch adds xencomm support of several domctl hypercalls
for VT-d.

Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>

diff -r c87adc976013 arch/ia64/xen/xcom_privcmd.c
--- a/arch/ia64/xen/xcom_privcmd.c  Mon Oct 20 15:29:07 2008 +0100
+++ b/arch/ia64/xen/xcom_privcmd.c  Fri Oct 24 11:22:02 2008 +0900
@@ -340,6 +340,20 @@
return -ENOMEM;
set_xen_guest_handle(kern_op.u.hvmcontext.buffer, (void*)desc);
break;
+   case XEN_DOMCTL_get_device_group: 
+   {
+   struct xen_domctl_get_device_group *get_device_group =
+   &kern_op.u.get_device_group;
+   desc = xencomm_map(
+   xen_guest_handle(get_device_group->sdev_array),
+   get_device_group->max_sdevs * sizeof(uint32_t));
+   if (xen_guest_handle(get_device_group->sdev_array) != NULL &&
+   get_device_group->max_sdevs > 0 && desc == NULL)
+   return -ENOMEM;
+   set_xen_guest_handle(kern_op.u.get_device_group.sdev_array,
+(void*)desc);
+   break;
+   }
case XEN_DOMCTL_max_vcpus:
case XEN_DOMCTL_scheduler_op:
case XEN_DOMCTL_setdomainhandle:
@@ -354,6 +368,12 @@
case XEN_DOMCTL_set_opt_feature:
case XEN_DOMCTL_assign_device:
case XEN_DOMCTL_subscribe:
+   case XEN_DOMCTL_test_assign_device:
+   case XEN_DOMCTL_deassign_device:
+   case XEN_DOMCTL_bind_pt_irq:
+   case XEN_DOMCTL_unbind_pt_irq:
+   case XEN_DOMCTL_memory_mapping:
+   case XEN_DOMCTL_ioport_mapping:
break;
case XEN_DOMCTL_pin_mem_cacheattr:
return -ENOSYS;



-- 
yamahata

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


RE: [Xen-ia64-devel][PATCH][VTD][dom0] dom0 vtd patch

2008-10-22 Thread Xu, Anthony
Isaku Yamahata wrote:
> On Wed, Oct 22, 2008 at 05:43:13PM +0800, Xu, Anthony wrote:
>> dom0/ia64/vtd patch
>>
>> Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
>
>
> In XEN_DOMCTL_get_device_group case.
>
>
> struct xen_domctl_get_device_group {
> uint32_t  machine_bdf;  /* IN */
> uint32_t  max_sdevs;/* IN */
> uint32_t  num_sdevs;/* OUT */
> XEN_GUEST_HANDLE_64(uint32)  sdev_array;   /* OUT */
> };
>
> XEN_DOMCTL_get_device_group is used by libxc.
> sdev_array needs ot be handled correctly.

I guess you are talking about xencomm,
I don't know how to handle it.
Can you enlighten me?

Thanks,
anthony

>
>
>> dom0/ia64/vtd patch
>>
>> Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
>>
>>
>> diff -r 16c549b3ba59 arch/ia64/xen/xcom_privcmd.c
>> --- a/arch/ia64/xen/xcom_privcmd.cTue Oct 14 14:58:08 2008 +0100
>> +++ b/arch/ia64/xen/xcom_privcmd.cWed Oct 22 17:15:56 2008 +0800
>>   @@ -354,6 +354,14 @@ case XEN_DOMCTL_set_opt_feature:
>>   case XEN_DOMCTL_assign_device:
>>   case XEN_DOMCTL_subscribe:
>> + case XEN_DOMCTL_get_device_group:
>> + case XEN_DOMCTL_test_assign_device:
>> + case XEN_DOMCTL_deassign_device:
>> + case XEN_DOMCTL_bind_pt_irq:
>> + case XEN_DOMCTL_unbind_pt_irq:
>> + case XEN_DOMCTL_memory_mapping:
>> + case XEN_DOMCTL_ioport_mapping:
>> +
>>   break;
>>   case XEN_DOMCTL_pin_mem_cacheattr:
>>   return -ENOSYS;

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel][PATCH][VTD][dom0] dom0 vtd patch

2008-10-22 Thread Isaku Yamahata
On Wed, Oct 22, 2008 at 05:43:13PM +0800, Xu, Anthony wrote:
> dom0/ia64/vtd patch
> 
> Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>


In XEN_DOMCTL_get_device_group case.


struct xen_domctl_get_device_group {
uint32_t  machine_bdf;  /* IN */
uint32_t  max_sdevs;/* IN */
uint32_t  num_sdevs;/* OUT */
XEN_GUEST_HANDLE_64(uint32)  sdev_array;   /* OUT */
};

XEN_DOMCTL_get_device_group is used by libxc.
sdev_array needs ot be handled correctly.


> dom0/ia64/vtd patch
> 
> Signed-off-by: Anthony Xu <[EMAIL PROTECTED]>
> 
> 
> diff -r 16c549b3ba59 arch/ia64/xen/xcom_privcmd.c
> --- a/arch/ia64/xen/xcom_privcmd.cTue Oct 14 14:58:08 2008 +0100
> +++ b/arch/ia64/xen/xcom_privcmd.cWed Oct 22 17:15:56 2008 +0800
> @@ -354,6 +354,14 @@
>   case XEN_DOMCTL_set_opt_feature:
>   case XEN_DOMCTL_assign_device:
>   case XEN_DOMCTL_subscribe:
> + case XEN_DOMCTL_get_device_group:
> + case XEN_DOMCTL_test_assign_device:
> + case XEN_DOMCTL_deassign_device:
> + case XEN_DOMCTL_bind_pt_irq:
> + case XEN_DOMCTL_unbind_pt_irq:
> + case XEN_DOMCTL_memory_mapping:
> + case XEN_DOMCTL_ioport_mapping:
> +
>   break;
>   case XEN_DOMCTL_pin_mem_cacheattr:
>   return -ENOSYS;
 
 
-- 
yamahata

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel