On Thu, Apr 13, 2017 at 11:59:20AM +0900, Minchan Kim wrote: > Johannes Thumshirn reported system goes the panic when using NVMe over > Fabrics loopback target with zram. > > The reason is zram expects each bvec in bio contains a single page > but nvme can attach a huge bulk of pages attached to the bio's bvec > so that zram's index arithmetic could be wrong so that out-of-bound > access makes system panic. > > [1] in mainline solved solved the problem by limiting max_sectors with > SECTORS_PER_PAGE but it makes zram slow because bio should split with > each pages so this patch makes zram aware of multiple pages in a bvec > so it could solve without any regression(ie, bio split). > > [1] 0bc315381fe9, zram: set physical queue limits to avoid array out of > bounds accesses > > * from v1 > * Do not exceed page boundary when set up bv.bv_len in make_request > * change "remained" variable name with "unwritten" > > Cc: Hannes Reinecke <h...@suse.com> > Reported-by: Johannes Thumshirn <jthumsh...@suse.de> > Tested-by: Johannes Thumshirn <jthumsh...@suse.de> > Reviewed-by: Johannes Thumshirn <jthumsh...@suse.de> > Reviewed-by: Sergey Senozhatsky <sergey.senozhat...@gmail.com> > Signed-off-by: Minchan Kim <minc...@kernel.org> > ---
Hi Minchan, A quick amendment to your patch you forgot to remove the queue limit setting which I introduced with commit 0bc315381fe9. Thanks, Johannes -- Johannes Thumshirn Storage jthumsh...@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850