RE: [PATCH] storvsc: use small sg_tablesize on x86
From: KY Srinivasan
Date: Thu Oct 01 2015 - 17:42:39 EST
> -----Original Message-----
> From: James Bottomley [mailto:James.Bottomley@xxxxxxxxxxxxxxxxxxxxx]
> Sent: Thursday, October 1, 2015 1:52 PM
> To: KY Srinivasan <kys@xxxxxxxxxxxxx>
> Cc: Olaf Hering <olaf@xxxxxxxxx>; Haiyang Zhang
> <haiyangz@xxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; linux-
> scsi@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] storvsc: use small sg_tablesize on x86
>
> On Thu, 2015-10-01 at 20:30 +0000, KY Srinivasan wrote:
> >
> > > -----Original Message-----
> > > From: Olaf Hering [mailto:olaf@xxxxxxxxx]
> > > Sent: Tuesday, September 8, 2015 3:07 AM
> > > To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang
> > > <haiyangz@xxxxxxxxxxxxx>; JBottomley@xxxxxxxx
> > > Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; Olaf Hering
> > > <olaf@xxxxxxxxx>
> > > Subject: [PATCH] storvsc: use small sg_tablesize on x86
> > >
> > > Reducing the sg_tablesize allows booting of 32bit kernels in VMs, after
> > > commit be0cf6ca301c61458dc4aa1a37acf4f58d2ed3d6 ("scsi: storvsc: Set
> the
> > > tablesize based on the information given by the host")
> > >
> > > [ 5.567138] hv_storvsc vmbus_1: adjusting sg_tablesize 0x800 -> 0x20
> > >
> > > Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
> > Reviewed-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
> > > ---
> > > drivers/scsi/storvsc_drv.c | 5 +++++
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> > > index 40c43ae..36bf183 100644
> > > --- a/drivers/scsi/storvsc_drv.c
> > > +++ b/drivers/scsi/storvsc_drv.c
> > > @@ -1907,6 +1907,11 @@ static int storvsc_probe(struct hv_device
> *device,
> > > * from the host.
> > > */
> > > host->sg_tablesize = (stor_device->max_transfer_bytes >>
> > > PAGE_SHIFT);
> > > +#if defined(CONFIG_X86_32)
> > > + dev_warn(&device->device, "adjusting sg_tablesize 0x%x -> 0x%x",
> > > + host->sg_tablesize,
> > > MAX_MULTIPAGE_BUFFER_COUNT);
> > > + host->sg_tablesize = MAX_MULTIPAGE_BUFFER_COUNT;
> > > +#endif
>
> Um, this is a bit architecture specific (I know Azure is x86, but
> still). Can you make the define check CONFIG_32BIT rather than
> CONFIG_X86_32?
Thanks, will do.
K. Y
>
> James
>
>
N§²æ¸yú²X¬¶ÇvØ)Þ{.nÇ·¥{±êX§¶¡Ü}©²ÆzÚj:+v¨¾«êZ+Êzf£¢·h§~Ûÿû®w¥¢¸?¨è&¢)ßfùy§m
á«a¶Úÿ0¶ìå