On Thu, Jun 28, 2012 at 1:13 PM, Guido Trotter <[email protected]> wrote:
> +ganeti-devel,
>
> Understood. I'm just a bit worried about having different separators for
> different fields as it might be confusing, and if in the future we'll have
> any path fields, those we won't be able to separate with "/". Maybe space
> would be better for that? Of course ":" doesn't work for this case... sic!
> :)

What about using a semicolon?

Bernardo

> On Thu, Jun 28, 2012 at 7:01 AM, Jack Sitnikov <[email protected]> wrote:
>>
>> else may be will use pci_pass="02:08.0 03:09.1" separate is " ", but I
>> think it's no cool, and I agree use "," is the a best choose.
>>
>>
>> On Thu, Jun 28, 2012 at 2:53 PM, Jack Sitnikov <[email protected]>
>> wrote:
>>>
>>>
>>> Becouse separate "," is use for hypervisor parametors and when I use ","
>>>
>>> example^ gnt-instance modify -H pci_pass=02:08.0,03:09.1 centos6-2x64   I
>>>  get this:
>>> Parameter Error: Unknown parameter '03:09.1'
>>> I think if use "," for pci_pass than need change global handler
>>> separate.
>>>
>>> Thank you,
>>> Jack
>>>
>>> On Thu, Jun 28, 2012 at 2:40 PM, Guido Trotter <[email protected]>
>>> wrote:
>>>>
>>>> I'm wondering if we should use ",", rather than /... It feels strange to
>>>> separate different entities with /, and pci entries don't have , anyway,
>>>> right?
>>>>
>>>> Thanks,
>>>>
>>>> Guido
>>>>
>>>>
>>>> On Thu, Jun 28, 2012 at 6:24 AM, Jack Sitnikov <[email protected]>
>>>> wrote:
>>>>>
>>>>> Hello.
>>>>> It's new patch for pci passthrough with multi PCI ID by separator "/"
>>>>> How can I help the team for commit this path in upstream?
>>>>>
>>>>> Best regards,
>>>>> Jack
>>>>>
>>>>> diff -r -c ganeti-2.5.1_orig/lib//constants.py
>>>>> ganeti-2.5.1/lib//constants.py
>>>>> *** ganeti-2.5.1_orig/lib//constants.py 2012-05-11 16:55:13.000000000
>>>>> +0400
>>>>> --- ganeti-2.5.1/lib//constants.py      2012-06-28 13:30:41.000000000
>>>>> +0400
>>>>> ***************
>>>>> *** 698,703 ****
>>>>> --- 698,704 ----
>>>>>   HV_KVM_USE_CHROOT = "use_chroot"
>>>>>   HV_CPU_MASK = "cpu_mask"
>>>>>   HV_MEM_PATH = "mem_path"
>>>>> + HV_PASSTHROUGH = "pci_pass"
>>>>>   HV_BLOCKDEV_PREFIX = "blockdev_prefix"
>>>>>   HV_REBOOT_BEHAVIOR = "reboot_behavior"
>>>>>
>>>>> ***************
>>>>> *** 743,748 ****
>>>>> --- 744,750 ----
>>>>>     HV_KVM_USE_CHROOT: VTYPE_BOOL,
>>>>>     HV_CPU_MASK: VTYPE_STRING,
>>>>>     HV_MEM_PATH: VTYPE_STRING,
>>>>> +   HV_PASSTHROUGH: VTYPE_STRING,
>>>>>     HV_BLOCKDEV_PREFIX: VTYPE_STRING,
>>>>>     HV_REBOOT_BEHAVIOR: VTYPE_STRING,
>>>>>     }
>>>>> ***************
>>>>> *** 1280,1285 ****
>>>>> --- 1282,1288 ----
>>>>>       HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
>>>>>       HV_USE_LOCALTIME: False,
>>>>>       HV_BLOCKDEV_PREFIX: "hd",
>>>>> +     HV_PASSTHROUGH: "",
>>>>>       HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
>>>>>       },
>>>>>     HT_KVM: {
>>>>> diff -r -c ganeti-2.5.1_orig/lib//hypervisor/hv_xen.py
>>>>> ganeti-2.5.1/lib//hypervisor/hv_xen.py
>>>>> *** ganeti-2.5.1_orig/lib//hypervisor/hv_xen.py 2012-05-11
>>>>> 16:55:13.000000000 +0400
>>>>> --- ganeti-2.5.1/lib//hypervisor/hv_xen.py      2012-06-28
>>>>> 13:30:43.000000000 +0400
>>>>> ***************
>>>>> *** 579,585 ****
>>>>>       constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
>>>>>       # TODO: Add a check for the blockdev prefix (matching [a-z:] or
>>>>> similar).
>>>>>       constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK,
>>>>> !     constants.HV_REBOOT_BEHAVIOR:
>>>>>         hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS)
>>>>>       }
>>>>>
>>>>> --- 579,587 ----
>>>>>       constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
>>>>>       # TODO: Add a check for the blockdev prefix (matching [a-z:] or
>>>>> similar).
>>>>>       constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK,
>>>>> ! #passthrough pci
>>>>> !     constants.HV_PASSTHROUGH:  hv_base.NO_CHECK,
>>>>> !    constants.HV_REBOOT_BEHAVIOR:
>>>>>         hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS)
>>>>>       }
>>>>>
>>>>> ***************
>>>>> *** 671,677 ****
>>>>>         disk_data.append(iso)
>>>>>
>>>>>       config.write("disk = [%s]\n" % (",".join(disk_data)))
>>>>> !
>>>>>       config.write("on_poweroff = 'destroy'\n")
>>>>>       if hvp[constants.HV_REBOOT_BEHAVIOR] ==
>>>>> constants.INSTANCE_REBOOT_ALLOWED:
>>>>>         config.write("on_reboot = 'restart'\n")
>>>>> --- 673,684 ----
>>>>>         disk_data.append(iso)
>>>>>
>>>>>       config.write("disk = [%s]\n" % (",".join(disk_data)))
>>>>> !     # this is pci pass
>>>>> !     pci_pass = hvp[constants.HV_PASSTHROUGH]
>>>>> !     if pci_pass:
>>>>> !        pci_pass_arr = []
>>>>> !        pci_pass_arr = pci_pass.split("/")
>>>>> !        config.write("pci = %s \n" % pci_pass_arr)
>>>>>       config.write("on_poweroff = 'destroy'\n")
>>>>>       if hvp[constants.HV_REBOOT_BEHAVIOR] ==
>>>>> constants.INSTANCE_REBOOT_ALLOWED:
>>>>>         config.write("on_reboot = 'restart'\n")
>>>>> diff -r -c ganeti-2.5.1_orig/lib//query.py ganeti-2.5.1/lib//query.py
>>>>> *** ganeti-2.5.1_orig/lib//query.py     2012-05-11 16:55:13.000000000
>>>>> +0400
>>>>> --- ganeti-2.5.1/lib//query.py  2012-06-28 13:30:43.000000000 +0400
>>>>> ***************
>>>>> *** 1638,1643 ****
>>>>> --- 1638,1644 ----
>>>>>       constants.HV_NIC_TYPE: "NIC_type",
>>>>>       constants.HV_PAE: "PAE",
>>>>>       constants.HV_VNC_BIND_ADDRESS: "VNC_bind_address",
>>>>> +     constants.HV_PASSTHROUGH: "pci_pass",
>>>>>       }
>>>>>
>>>>>     fields = [
>>>>>
>>>>> On Thu, Jun 7, 2012 at 5:30 PM, Jack Sitnikov <[email protected]>
>>>>> wrote:
>>>>>>
>>>>>> Hello,
>>>>>> Thanks for your attention.
>>>>>>
>>>>>> >should we disable migration, if
>>>>>> >this parameter is used?
>>>>>> I think yes, because  the pci id on some nodes is difficult.
>>>>>> I think is offline move and modify this parameter will work.
>>>>>>
>>>>>> for the second question
>>>>>> one is better than nothing:)
>>>>>> I'm new in python and architecture ganeti. I try it, it's
>>>>>> not difficult,  i think...
>>>>>> I send my patch for feedback and some comments, maybe I missed
>>>>>> something(eg. manuals page).
>>>>>>
>>>>>> I write CLA web form.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Jack
>>>>>>
>>>>>> On Thu, Jun 7, 2012 at 4:56 PM, Guido Trotter <[email protected]>
>>>>>> wrote:
>>>>>>>
>>>>>>> Thanks for doing this. One question: should we disable migration, if
>>>>>>> this parameter is used?
>>>>>>> Would it make sense to be able to pass more than one device? (eg.
>>>>>>> many
>>>>>>> separated by a comma?)
>>>>>>>
>>>>>>> Finally, would you mind signing the Google code CLA, so we can
>>>>>>> include
>>>>>>> your patch?
>>>>>>> http://code.google.com/legal/individual-cla-v1.0.html
>>>>>>>
>>>>>>> Thanks a lot,
>>>>>>>
>>>>>>> Guido
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jun 7, 2012 at 1:26 PM, Jack <[email protected]> wrote:
>>>>>>> > Hi,
>>>>>>> > I wrote about pci passthrough in
>>>>>>> > https://groups.google.com/group/ganeti/browse_thread/thread/4b66136f6950dce6
>>>>>>> > , and I wrote this patch for  use the instance parameter.
>>>>>>> > sorry for my terrible English.
>>>>>>> >
>>>>>>> > But I used ganeti-2.5.1.tar.gz, not git, and build and create
>>>>>>> > instance
>>>>>>> > with -H pci_pass=XX:XX.X  instance_name
>>>>>>> > #diff command diff -r -c ganeti-2.5.1_orig/lib/ ganeti-2.5.1/lib/
>>>>>>> > Patch text:
>>>>>>> >
>>>>>>> > diff -r -c ganeti-2.5.1_orig/lib/ ganeti-2.5.1/lib/
>>>>>>> > diff -r -c ganeti-2.5.1_orig/lib//constants.py ganeti-2.5.1/lib//
>>>>>>> > constants.py
>>>>>>> > *** ganeti-2.5.1_orig/lib//constants.py 2012-05-11
>>>>>>> > 16:55:13.000000000
>>>>>>> > +0400
>>>>>>> > --- ganeti-2.5.1/lib//constants.py      2012-06-05
>>>>>>> > 10:50:27.000000000
>>>>>>> > +0400
>>>>>>> > ***************
>>>>>>> > *** 698,703 ****
>>>>>>> > --- 698,704 ----
>>>>>>> >  HV_KVM_USE_CHROOT = "use_chroot"
>>>>>>> >  HV_CPU_MASK = "cpu_mask"
>>>>>>> >  HV_MEM_PATH = "mem_path"
>>>>>>> > + HV_PASSTHROUGH = "pci_pass"
>>>>>>> >  HV_BLOCKDEV_PREFIX = "blockdev_prefix"
>>>>>>> >  HV_REBOOT_BEHAVIOR = "reboot_behavior"
>>>>>>> >
>>>>>>> > ***************
>>>>>>> > *** 743,748 ****
>>>>>>> > --- 744,750 ----
>>>>>>> >    HV_KVM_USE_CHROOT: VTYPE_BOOL,
>>>>>>> >    HV_CPU_MASK: VTYPE_STRING,
>>>>>>> >    HV_MEM_PATH: VTYPE_STRING,
>>>>>>> > +   HV_PASSTHROUGH: VTYPE_STRING,
>>>>>>> >    HV_BLOCKDEV_PREFIX: VTYPE_STRING,
>>>>>>> >    HV_REBOOT_BEHAVIOR: VTYPE_STRING,
>>>>>>> >    }
>>>>>>> > ***************
>>>>>>> > *** 1280,1285 ****
>>>>>>> > --- 1282,1288 ----
>>>>>>> >      HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
>>>>>>> >      HV_USE_LOCALTIME: False,
>>>>>>> >      HV_BLOCKDEV_PREFIX: "hd",
>>>>>>> > +     HV_PASSTHROUGH: "",
>>>>>>> >      HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
>>>>>>> >      },
>>>>>>> >    HT_KVM: {
>>>>>>> > diff -r -c ganeti-2.5.1_orig/lib//hypervisor/hv_xen.py
>>>>>>> > ganeti-2.5.1/
>>>>>>> > lib//hypervisor/hv_xen.py
>>>>>>> > *** ganeti-2.5.1_orig/lib//hypervisor/hv_xen.py 2012-05-11
>>>>>>> > 16:55:13.000000000 +0400
>>>>>>> > --- ganeti-2.5.1/lib//hypervisor/hv_xen.py      2012-06-07
>>>>>>> > 16:10:10.993086257 +0400
>>>>>>> > ***************
>>>>>>> > *** 579,585 ****
>>>>>>> >      constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
>>>>>>> >      # TODO: Add a check for the blockdev prefix (matching [a-z:]
>>>>>>> > or
>>>>>>> > similar).
>>>>>>> >      constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK,
>>>>>>> > !     constants.HV_REBOOT_BEHAVIOR:
>>>>>>> >        hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS)
>>>>>>> >      }
>>>>>>> >
>>>>>>> > --- 579,587 ----
>>>>>>> >      constants.HV_USE_LOCALTIME: hv_base.NO_CHECK,
>>>>>>> >      # TODO: Add a check for the blockdev prefix (matching [a-z:]
>>>>>>> > or
>>>>>>> > similar).
>>>>>>> >      constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK,
>>>>>>> > ! #passthrough pci
>>>>>>> > !     constants.HV_PASSTHROUGH:  hv_base.NO_CHECK,
>>>>>>> > !    constants.HV_REBOOT_BEHAVIOR:
>>>>>>> >        hv_base.ParamInSet(True, constants.REBOOT_BEHAVIORS)
>>>>>>> >      }
>>>>>>> >
>>>>>>> > ***************
>>>>>>> > *** 671,677 ****
>>>>>>> >        disk_data.append(iso)
>>>>>>> >
>>>>>>> >      config.write("disk = [%s]\n" % (",".join(disk_data)))
>>>>>>> > !
>>>>>>> >      config.write("on_poweroff = 'destroy'\n")
>>>>>>> >      if hvp[constants.HV_REBOOT_BEHAVIOR] ==
>>>>>>> > constants.INSTANCE_REBOOT_ALLOWED:
>>>>>>> >        config.write("on_reboot = 'restart'\n")
>>>>>>> > --- 673,682 ----
>>>>>>> >        disk_data.append(iso)
>>>>>>> >
>>>>>>> >      config.write("disk = [%s]\n" % (",".join(disk_data)))
>>>>>>> > !     # this is pci pass
>>>>>>> > !     pci_pass = hvp[constants.HV_PASSTHROUGH]
>>>>>>> > !     if pci_pass:
>>>>>>> > !        config.write("pci = ['%s']\n" % pci_pass)
>>>>>>> >      config.write("on_poweroff = 'destroy'\n")
>>>>>>> >      if hvp[constants.HV_REBOOT_BEHAVIOR] ==
>>>>>>> > constants.INSTANCE_REBOOT_ALLOWED:
>>>>>>> >        config.write("on_reboot = 'restart'\n")
>>>>>>> > diff -r -c ganeti-2.5.1_orig/lib//query.py
>>>>>>> > ganeti-2.5.1/lib//query.py
>>>>>>> > *** ganeti-2.5.1_orig/lib//query.py     2012-05-11
>>>>>>> > 16:55:13.000000000
>>>>>>> > +0400
>>>>>>> > --- ganeti-2.5.1/lib//query.py  2012-06-05 10:50:27.000000000 +0400
>>>>>>> > ***************
>>>>>>> > *** 1638,1643 ****
>>>>>>> > --- 1638,1644 ----
>>>>>>> >      constants.HV_NIC_TYPE: "NIC_type",
>>>>>>> >      constants.HV_PAE: "PAE",
>>>>>>> >      constants.HV_VNC_BIND_ADDRESS: "VNC_bind_address",
>>>>>>> > +     constants.HV_PASSTHROUGH: "pci_pass",
>>>>>>> >      }
>>>>>>> >
>>>>>>> >    fields = [
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Guido Trotter
>>>>>>> Google - Corporate Computing Services SRE
>>>>>>>
>>>>>>> Google Ireland Ltd. : Registered in Ireland with company number
>>>>>>> 368047.
>>>>>>> Gordon House, Barrow Street, Dublin 4, Ireland.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> \
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Guido Trotter
>>>> SRE - Corp Computing Services (aka Horsepower)
>>>> Google Ireland
>>>
>>>
>>>
>>>
>>> --
>>> С уважением,
>>>         Ситников Евгений
>>> mailto:[email protected]
>>> icq: 319044459
>>> tel. +7 (916)4215405
>>
>>
>>
>>
>> --
>> С уважением,
>>         Ситников Евгений
>> mailto:[email protected]
>> icq: 319044459
>> tel. +7 (916)4215405
>
>
>
>
> --
> Guido Trotter
> SRE - Corp Computing Services (aka Horsepower)
> Google Ireland

Reply via email to