On 3/13/23 10:40, Laszlo Ersek wrote:
> On 3/13/23 09:22, Andrey Drobyshev wrote:
>> On 3/13/23 10:13, Laszlo Ersek wrote:
>>> On 3/7/23 20:40, Andrey Drobyshev wrote:
>>>> This code is needed to check whether virtio-scsi driver was installed.
>>>>
>>>> This reverts commit f0afc439524853508938b2bfc758896f053462e3.
>>>> ---
>>>>  convert/convert.ml                   | 2 +-
>>>>  convert/convert_linux.ml             | 9 +++++++--
>>>>  convert/target_bus_assignment.ml     | 1 +
>>>>  lib/create_ovf.ml                    | 1 +
>>>>  lib/types.ml                         | 3 ++-
>>>>  lib/types.mli                        | 2 +-
>>>>  output/openstack_image_properties.ml | 7 +++++++
>>>>  7 files changed, 20 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/convert/convert.ml b/convert/convert.ml
>>>> index 0aa0e5cd..084619c8 100644
>>>> --- a/convert/convert.ml
>>>> +++ b/convert/convert.ml
>>>> @@ -252,7 +252,7 @@ and do_convert g source inspect i_firmware 
>>>> keep_serial_console interfaces =
>>>>    (* Did we manage to install virtio drivers? *)
>>>>    if not (quiet ()) then (
>>>>      match guestcaps.gcaps_block_bus with
>>>> -    | Virtio_blk ->
>>>> +    | Virtio_blk | Virtio_SCSI ->
>>>>          info (f_"This guest has virtio drivers installed.")
>>>>      | IDE ->
>>>>          info (f_"This guest does not have virtio drivers installed.")
>>>> diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml
>>>> index d5c0f24d..dab4f36d 100644
>>>> --- a/convert/convert_linux.ml
>>>> +++ b/convert/convert_linux.ml
>>>> @@ -1068,8 +1068,12 @@ let convert (g : G.guestfs) source inspect 
>>>> i_firmware keep_serial_console _ =
>>>>      (* Update 'alias scsi_hostadapter ...' *)
>>>>      let paths = augeas_modprobe ". =~ regexp('scsi_hostadapter.*')" in
>>>>      (match block_type with
>>>> -    | Virtio_blk ->
>>>> -      let block_module = "virtio_blk" in
>>>> +    | Virtio_blk | Virtio_SCSI ->
>>>> +      let block_module =
>>>> +        match block_type with
>>>> +        | Virtio_blk -> "virtio_blk"
>>>> +        | Virtio_SCSI -> "virtio_scsi"
>>>> +        | IDE -> assert false in
>>>>  
>>>>        if paths <> [] then (
>>>>          (* There's only 1 scsi controller in the converted guest.
>>>> @@ -1142,6 +1146,7 @@ let convert (g : G.guestfs) source inspect 
>>>> i_firmware keep_serial_console _ =
>>>>      let block_prefix_after_conversion =
>>>>        match block_type with
>>>>        | Virtio_blk -> "vd"
>>>> +      | Virtio_SCSI -> "sd"
>>>>        | IDE -> ide_block_prefix in
>>>>  
>>>>      let map =
>>>> diff --git a/convert/target_bus_assignment.ml 
>>>> b/convert/target_bus_assignment.ml
>>>> index 54c9516b..d13340c7 100644
>>>> --- a/convert/target_bus_assignment.ml
>>>> +++ b/convert/target_bus_assignment.ml
>>>> @@ -35,6 +35,7 @@ let rec target_bus_assignment source_disks 
>>>> source_removables guestcaps =
>>>>      let bus =
>>>>        match guestcaps.gcaps_block_bus with
>>>>        | Virtio_blk -> virtio_blk_bus
>>>> +      | Virtio_SCSI -> scsi_bus
>>>>        | IDE -> ide_bus in
>>>>      List.iteri (
>>>>        fun i d ->
>>>> diff --git a/lib/create_ovf.ml b/lib/create_ovf.ml
>>>> index 5e444868..f0b32e01 100644
>>>> --- a/lib/create_ovf.ml
>>>> +++ b/lib/create_ovf.ml
>>>> @@ -920,6 +920,7 @@ and add_disks sizes guestcaps output_alloc 
>>>> output_format
>>>>            "ovf:disk-interface",
>>>>            (match guestcaps.gcaps_block_bus with
>>>>            | Virtio_blk -> "VirtIO"
>>>> +          | Virtio_SCSI -> "VirtIO_SCSI"
>>>>            | IDE -> "IDE");
>>>>            "ovf:disk-type", "System"; (* RHBZ#744538 *)
>>>>            "ovf:boot", if is_bootable_drive then "True" else "False";
>>>> diff --git a/lib/types.ml b/lib/types.ml
>>>> index e16da007..75c14fd4 100644
>>>> --- a/lib/types.ml
>>>> +++ b/lib/types.ml
>>>> @@ -400,12 +400,13 @@ type guestcaps = {
>>>>    gcaps_arch_min_version : int;
>>>>    gcaps_virtio_1_0 : bool;
>>>>  }
>>>> -and guestcaps_block_type = Virtio_blk | IDE
>>>> +and guestcaps_block_type = Virtio_blk | Virtio_SCSI | IDE
>>>>  and guestcaps_net_type = Virtio_net | E1000 | RTL8139
>>>>  and guestcaps_machine = I440FX | Q35 | Virt
>>>>  
>>>>  let string_of_block_type = function
>>>>    | Virtio_blk -> "virtio-blk"
>>>> +  | Virtio_SCSI -> "virtio-scsi"
>>>>    | IDE -> "ide"
>>>>  let string_of_net_type = function
>>>>    | Virtio_net -> "virtio-net"
>>>> diff --git a/lib/types.mli b/lib/types.mli
>>>> index 4a183dd3..65ef2e35 100644
>>>> --- a/lib/types.mli
>>>> +++ b/lib/types.mli
>>>> @@ -280,7 +280,7 @@ type guestcaps = {
>>>>  }
>>>>  (** Guest capabilities after conversion.  eg. Was virtio found or 
>>>> installed? *)
>>>>  
>>>> -and guestcaps_block_type = Virtio_blk | IDE
>>>> +and guestcaps_block_type = Virtio_blk | Virtio_SCSI | IDE
>>>>  and guestcaps_net_type = Virtio_net | E1000 | RTL8139
>>>>  and guestcaps_machine = I440FX | Q35 | Virt
>>>>  
>>>> diff --git a/output/openstack_image_properties.ml 
>>>> b/output/openstack_image_properties.ml
>>>> index c75d72fe..c76ad913 100644
>>>> --- a/output/openstack_image_properties.ml
>>>> +++ b/output/openstack_image_properties.ml
>>>> @@ -35,6 +35,7 @@ let create source inspect { target_buses; guestcaps; 
>>>> target_firmware } =
>>>>      "hw_disk_bus",
>>>>      (match guestcaps.gcaps_block_bus with
>>>>       | Virtio_blk -> "virtio"
>>>> +     | Virtio_SCSI -> "scsi"
>>>>       | IDE -> "ide");
>>>>      "hw_vif_model",
>>>>      (match guestcaps.gcaps_net_bus with
>>>> @@ -69,6 +70,12 @@ let create source inspect { target_buses; guestcaps; 
>>>> target_firmware } =
>>>>        List.push_back properties ("hw_cpu_threads", string_of_int threads);
>>>>    );
>>>>  
>>>> +  (match guestcaps.gcaps_block_bus with
>>>> +   | Virtio_SCSI ->
>>>> +      List.push_back properties ("hw_scsi_model", "virtio-scsi")
>>>> +   | Virtio_blk | IDE -> ()
>>>> +  );
>>>> +
>>>>    (match inspect.i_major_version, inspect.i_minor_version with
>>>>     | 0, 0 -> ()
>>>>     | x, 0 -> List.push_back properties ("os_version", string_of_int x)
>>>
>>> Looks like a reasonable revert to me.
>>>
>>> Acked-by: Laszlo Ersek <ler...@redhat.com>
>>>
>>
>> Hi Laszlo,
>>
>> You're reviewing v2, but the latest series which Richard has approved is v3:
>>
>> https://listman.redhat.com/archives/libguestfs/2023-March/031035.html
>> https://listman.redhat.com/archives/libguestfs/2023-March/031041.html
>>
>> I added you to Cc, but maybe it wasn't delivered?
>>
> 
> I had an emergency last Wednesday mid-review and could only resume email
> processing this morning. Whenever I resume email processing, I
> relatively firmly stick with a FIFO method. In other words, I usually
> don't fetch new email until I process all previous, pending email.
> Sometimes this causes me to do double work or to create a bit of
> confusion. On the other hand, it very safely ensures that no email falls
> through the cracks. The LIFO method (process most recent email first)
> runs a very high risk of losing old email. "Old" does not translate to
> "irrelevant".
> 
> So yes, I fully expected this morning that you could have posted a v3
> meanwhile.
> 
> Now someone could be tempted to suggest, "why don't you fetch email in
> the morning, then prioritize everything properly, and *then* work in a
> priority queue order". The problem is that prioritzing everything itself
> is huge work. After having been out for 2 work days, I've found 330 new
> emails this morning.
> 
> For me, the only thing that works is delaying the fetching of new email,
> until I'm done with the old batch. So, I can be slow, or I can be lossy.
> I prefer slow.
> 
> Laszlo
> 

Thanks for detailed explanation, using FIFO makes perfect sense.
And of course there's no rush whatsoever -- I just thought that maybe
you've missed it.

Andrey

_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to