For Guido
I understand your worry. First I use "," , second I think about space, and
last I think about "/". But for space need used quotes("") is it
comfortable or usable?
How better to do?
>"and if in the future we'll have
> any path fields, those we won't be able to separate with "/"
Now PCI_pass handler is worked just with one parameter: pci pass and if use
separate "/" in other parameters is will be okey.
Thanks,
Jack
On Thu, Jun 28, 2012 at 3:25 PM, Jack Sitnikov <[email protected]> wrote:
> Hi,
> the 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.
>
> Thanks,
> Jack
>
> On Thu, Jun 28, 2012 at 3:21 PM, Bernardo Dal Seno <[email protected]>wrote:
>
>> 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
>>
>
>
>
> --
>