Re: [PATCH v2] storvsc: Set up correct queue depth values for IDE devices
Long, > If num_cpus=1, we don't have any sub channels. > > The host offers one sub channel for VM with 5 CPUs, after that it offers > an additional sub channel every 4 CPUs. > > The primary channel is always offered. Applied to 4.17/scsi-fixes. Thanks! -- Martin K. Petersen Oracle Linux Engineering
RE: [PATCH v2] storvsc: Set up correct queue depth values for IDE devices
> Subject: Re: [PATCH v2] storvsc: Set up correct queue depth values for IDE > devices > > > Long, > > > Can you take a look at the following patch? > > >> > + max_sub_channels = > >> > +(num_cpus - 1) / storvsc_vcpus_per_sub_channel; > > What happens if num_cpus = 1? If num_cpus=1, we don't have any sub channels. The host offers one sub channel for VM with 5 CPUs, after that it offers an additional sub channel every 4 CPUs. The primary channel is always offered. > > -- > Martin K. PetersenOracle Linux Engineering
Re: [PATCH v2] storvsc: Set up correct queue depth values for IDE devices
Long, > Can you take a look at the following patch? >> > + max_sub_channels = >> > + (num_cpus - 1) / storvsc_vcpus_per_sub_channel; What happens if num_cpus = 1? -- Martin K. Petersen Oracle Linux Engineering
RE: [PATCH v2] storvsc: Set up correct queue depth values for IDE devices
Hi Martin Can you take a look at the following patch? Long > > -Original Message- > > From: linux-kernel-ow...@vger.kernel.org > > On Behalf Of Long Li > > Sent: Thursday, March 22, 2018 2:47 PM > > To: KY Srinivasan ; Haiyang Zhang > > ; Stephen Hemminger > ; > > James E . J . Bottomley ; Martin K . Petersen > > ; de...@linuxdriverproject.org; linux- > > s...@vger.kernel.org; linux-kernel@vger.kernel.org > > Cc: Long Li > > Subject: [PATCH v2] storvsc: Set up correct queue depth values for IDE > > devices > > > > From: Long Li > > > > Unlike SCSI and FC, we don't use multiple channels for IDE. > > Also fix the calculation for sub-channels. > > > > Change log: > > v2: Addressed comment on incorrect number of sub-channels. > > (Michael Kelley ) > > > > Signed-off-by: Long Li > > Reviewed-by: Michael Kelley > > > --- > > drivers/scsi/storvsc_drv.c | 7 +-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > > index 8c51d628b52e..a2ec0bc9e9fa 100644 > > --- a/drivers/scsi/storvsc_drv.c > > +++ b/drivers/scsi/storvsc_drv.c > > @@ -1722,11 +1722,14 @@ static int storvsc_probe(struct hv_device > *device, > > max_targets = STORVSC_MAX_TARGETS; > > max_channels = STORVSC_MAX_CHANNELS; > > /* > > -* On Windows8 and above, we support sub-channels for > storage. > > +* On Windows8 and above, we support sub-channels for > storage > > +* on SCSI and FC controllers. > > * The number of sub-channels offerred is based on the > number of > > * VCPUs in the guest. > > */ > > - max_sub_channels = (num_cpus / > storvsc_vcpus_per_sub_channel); > > + if (!dev_is_ide) > > + max_sub_channels = > > + (num_cpus - 1) / > storvsc_vcpus_per_sub_channel; > > } > > > > scsi_driver.can_queue = (max_outstanding_req_per_channel * > > -- > > 2.14.1
RE: [PATCH v2] storvsc: Set up correct queue depth values for IDE devices
> -Original Message- > From: linux-kernel-ow...@vger.kernel.org > On Behalf > Of Long Li > Sent: Thursday, March 22, 2018 2:47 PM > To: KY Srinivasan ; Haiyang Zhang > ; Stephen > Hemminger ; James E . J . Bottomley > ; > Martin K . Petersen ; > de...@linuxdriverproject.org; linux- > s...@vger.kernel.org; linux-kernel@vger.kernel.org > Cc: Long Li > Subject: [PATCH v2] storvsc: Set up correct queue depth values for IDE devices > > From: Long Li > > Unlike SCSI and FC, we don't use multiple channels for IDE. > Also fix the calculation for sub-channels. > > Change log: > v2: Addressed comment on incorrect number of sub-channels. > (Michael Kelley ) > > Signed-off-by: Long Li Reviewed-by: Michael Kelley > --- > drivers/scsi/storvsc_drv.c | 7 +-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > index 8c51d628b52e..a2ec0bc9e9fa 100644 > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -1722,11 +1722,14 @@ static int storvsc_probe(struct hv_device *device, > max_targets = STORVSC_MAX_TARGETS; > max_channels = STORVSC_MAX_CHANNELS; > /* > - * On Windows8 and above, we support sub-channels for storage. > + * On Windows8 and above, we support sub-channels for storage > + * on SCSI and FC controllers. >* The number of sub-channels offerred is based on the number of >* VCPUs in the guest. >*/ > - max_sub_channels = (num_cpus / storvsc_vcpus_per_sub_channel); > + if (!dev_is_ide) > + max_sub_channels = > + (num_cpus - 1) / storvsc_vcpus_per_sub_channel; > } > > scsi_driver.can_queue = (max_outstanding_req_per_channel * > -- > 2.14.1
[PATCH v2] storvsc: Set up correct queue depth values for IDE devices
From: Long Li Unlike SCSI and FC, we don't use multiple channels for IDE. Also fix the calculation for sub-channels. Change log: v2: Addressed comment on incorrect number of sub-channels. (Michael Kelley ) Signed-off-by: Long Li --- drivers/scsi/storvsc_drv.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index 8c51d628b52e..a2ec0bc9e9fa 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -1722,11 +1722,14 @@ static int storvsc_probe(struct hv_device *device, max_targets = STORVSC_MAX_TARGETS; max_channels = STORVSC_MAX_CHANNELS; /* -* On Windows8 and above, we support sub-channels for storage. +* On Windows8 and above, we support sub-channels for storage +* on SCSI and FC controllers. * The number of sub-channels offerred is based on the number of * VCPUs in the guest. */ - max_sub_channels = (num_cpus / storvsc_vcpus_per_sub_channel); + if (!dev_is_ide) + max_sub_channels = + (num_cpus - 1) / storvsc_vcpus_per_sub_channel; } scsi_driver.can_queue = (max_outstanding_req_per_channel * -- 2.14.1