Path: csiph.com!aioe.org!bofh.it!news.nic.it!robomod From: Sergey Senozhatsky Newsgroups: linux.kernel Subject: Re: [PATCH 1/5] zram: handle multiple pages attached bio's bvec Date: Tue, 04 Apr 2017 07:00:02 +0200 Message-ID: References: X-Original-To: Minchan Kim Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=ap72cZB57SHbzSkSBWQ+S/s1IeTEsBqOk4AvcqmYOaA=; b=DJ2epgvf7PBerq/Y8FM84iDYX3CW8sZ9Gk9DYqYT8LpCwAlD+jjVYTE6uLVnqZNGbd J+/RNeJkqWVL3ExzJTLkTlpYCmzY6oCJ1cOTanOyh0fTJ+0ZCsodK9Z4PAQlJcNhI4i+ 7DvurIOdrKEvQPaUMoSCySZooptLlrzOBEMgBFYbgpML99IY/WxVBCDam0z3zwYrMsar SixYbNb+5oPtsFIqJkTmxz5AHW+cAeGPMFUb3+mHU6vfNjS/Mh+YF+FalWqYQshiuxCS sqdS0xE6BE5VR87yNpzUrpM3otidQiA41dYSxkkuW2ZelOCE9HaLT7R+BUjxXhrYAzyD QgWg== X-Google-Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=ap72cZB57SHbzSkSBWQ+S/s1IeTEsBqOk4AvcqmYOaA=; b=C2sJcIRCafkwr3Bvx1zIYoP3ko5MHsxFoX+TTkcddxVwOeOlY8LQrFA04HgbR8jKz3 N6+M14NmEnAWmzkEKWqk36oi4wNnExiyFBk6KRPVPcD40EeucdZ56wUm4Py86r+Rx7Id VnjDuXXc6ynzU9BL83i5F67BCiGZLCfKGYeBzPQXFHw25mBF84BWqqt0hxjBt7BIPJnZ YQAlk8VXNcQ/WeCkMDR/CXnTeEQAVD0AjlMvNTXsomyzmTtGty64xlpPHbzdAXRnQhFz dGvZUI6L6sI5ucDZme1b1AY0T1Jwp5Ssy4pcLtWmOY7Yo+q1Ij7Q0FRBnNJMpWJEoV88 A/Aw== X-Gm-Message-State: AFeK/H0thiu+x1WhV2UJH0F09wqSQAqNQ/e2429w4faRuJTeIk+3AaxkjzK6fFjjtp0j9Q== X-Received: by 10.98.93.90 with SMTP id r87mr20834625pfb.226.1491281708577; Mon, 03 Apr 2017 21:55:08 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.8.0 (2017-02-23) Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 35 Organization: linux.* mail to news gateway X-Original-Cc: Andrew Morton , linux-kernel@vger.kernel.org, Sergey Senozhatsky , kernel-team@lge.com, Jens Axboe , Hannes Reinecke , Johannes Thumshirn X-Original-Date: Tue, 4 Apr 2017 13:55:09 +0900 X-Original-Message-ID: <20170404045509.GA470@jagdpanzerIV.localdomain> X-Original-References: <1491196653-7388-1-git-send-email-minchan@kernel.org> <1491196653-7388-2-git-send-email-minchan@kernel.org> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1615707 On (04/03/17 14:17), 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 panic. > > It can be solved by limiting max_sectors with SECTORS_PER_PAGE like > [1] 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. > > [1] 0bc315381fe9, zram: set physical queue limits to avoid array out of > bounds accesses > > Cc: Jens Axboe > Cc: Hannes Reinecke > Reported-by: Johannes Thumshirn > Tested-by: Johannes Thumshirn > Reviewed-by: Johannes Thumshirn > Signed-off-by: Johannes Thumshirn > Signed-off-by: Minchan Kim Reviewed-by: Sergey Senozhatsky > + unsigned int remained = bvec.bv_len; ... > + } while (remained); a tiny nitpick, "-ed" in variable name looks a bit unusual. -ss