all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Fabian Ebner <f.ebner@proxmox.com>
To: Stefan Reiter <s.reiter@proxmox.com>,
	Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [RFC qemu-server] avoid setting lun number for drives when pvscsi controller is used
Date: Tue, 15 Jun 2021 10:04:01 +0200	[thread overview]
Message-ID: <4d66d415-ef78-e3c7-2469-59b93ee37c6b@proxmox.com> (raw)
In-Reply-To: <a75d77bf-f293-b712-a8bf-f95fd316f69d@proxmox.com>

Am 14.06.21 um 11:15 schrieb Stefan Reiter:
> On 6/14/21 8:29 AM, Fabian Ebner wrote:
>> Any feedback for this?
>>
> 
> Looks good to me and works as advertised:
> 
> Reviewed-by: Stefan Reiter <s.reiter@proxmox.com>
> Tested-by: Stefan Reiter <s.reiter@proxmox.com>
> 

Thanks for the review!

> The `$unit = $drive->{index} % maxdev` logic doesn't seem useful here 
> though, I
> think it's a copy/paste from the IDE/SATA code below (it was already 
> used before
> this patch). How about this for a cleanup on top:
>  >
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index c00bde1..afd47b5 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -1424,7 +1424,6 @@ sub print_drivedevice_full {
>       } elsif ($drive->{interface} eq 'scsi') {
> 
>       my ($maxdev, $controller, $controller_prefix) = 
> scsihw_infos($conf, $drive);
> -    my $unit = $drive->{index} % $maxdev;


Using LSI 53C895A controller and 9 disks I get

     kvm: -device 
scsi-hd,bus=scsihw1.0,scsi-id=8,drive=drive-scsi8,id=scsi8: bad scsi 
device id: 8

As long as scsihw_infos returns the correct thing, I don't see a problem 
sticking to the modular arithmetic ;)

>       my $devicetype = 'hd';
>       my $path = '';
>       if (drive_is_cdrom($drive)) {
> @@ -1452,7 +1451,7 @@ sub print_drivedevice_full {
>       }
> 
>       if (!$conf->{scsihw} || $conf->{scsihw} =~ m/^lsi/ || 
> $conf->{scsihw} eq 'pvscsi') {
> -       $device = 
> "scsi-$devicetype,bus=$controller_prefix$controller.0,scsi-id=$unit";
> +       $device = 
> "scsi-$devicetype,bus=$controller_prefix$controller.0,scsi-id=$drive->{index}"; 
> 
>       } else {
>          $device = 
> "scsi-$devicetype,bus=$controller_prefix$controller.0,channel=0,scsi-id=0"
>              .",lun=$drive->{index}";
> 
> 
>> Am 13.04.21 um 10:24 schrieb Fabian Ebner:
>>> Reported in the community forum[0].
>>>
>>> In QEMU's hw/scsi/vmw_pvscsi.c in the SCSIBusInfo struct, the max_lun 
>>> property
>>> is set to 0. This means that in our stack, one cannot have multiple 
>>> disks and
>>> use 'scsihw: pvscsi' currently, as kvm would fail with
>>>       bad scsi device lun: 1
>>>
>>> Instead of increasing the lun number, increase the scsi-id, as we 
>>> already do for
>>> lsi.* (in hw/scsi/lsi53c895a.c the max_lun property is also 0).
>>>
>>> [0]: https://forum.proxmox.com/threads/kvm-bad-scsi-device-lun-1.84318/
>>>
>>> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
>>> ---
>>>
>>> I'm not experienced in this area, so not at all sure if this is the 
>>> proper
>>> solution/workaround.
>>>
>>>    PVE/QemuServer.pm | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
>>> index fdb2ac9..4ce663b 100644
>>> --- a/PVE/QemuServer.pm
>>> +++ b/PVE/QemuServer.pm
>>> @@ -1451,7 +1451,7 @@ sub print_drivedevice_full {
>>>            }
>>>        }
>>> -    if (!$conf->{scsihw} || ($conf->{scsihw} =~ m/^lsi/)){
>>> +    if (!$conf->{scsihw} || $conf->{scsihw} =~ m/^lsi/ || 
>>> $conf->{scsihw} eq 'pvscsi') {
>>>            $device = 
>>> "scsi-$devicetype,bus=$controller_prefix$controller.0,scsi-id=$unit";
>>>        } else {
>>>            $device = 
>>> "scsi-$devicetype,bus=$controller_prefix$controller.0,channel=0,scsi-id=0" 
>>>
>>>
>>
>>
>> _______________________________________________
>> pve-devel mailing list
>> pve-devel@lists.proxmox.com
>> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>>
>>




  reply	other threads:[~2021-06-15  8:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-13  8:24 Fabian Ebner
2021-06-14  6:29 ` Fabian Ebner
2021-06-14  9:15   ` Stefan Reiter
2021-06-15  8:04     ` Fabian Ebner [this message]
2021-06-15  8:36       ` Stefan Reiter
2021-06-16 18:27 ` [pve-devel] applied: " Thomas Lamprecht
2021-06-17  7:29   ` Stefan Reiter
2021-06-17  7:34     ` Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4d66d415-ef78-e3c7-2469-59b93ee37c6b@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=s.reiter@proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal