From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756518AbcBCIKO (ORCPT ); Wed, 3 Feb 2016 03:10:14 -0500 Received: from mail-wm0-f47.google.com ([74.125.82.47]:37587 "EHLO mail-wm0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751607AbcBCIKL (ORCPT ); Wed, 3 Feb 2016 03:10:11 -0500 Subject: Re: [PATCH] lightnvm: invalidate addresses on multipage fail To: =?UTF-8?Q?Javier_Gonz=c3=a1lez?= References: <1454332202-13368-1-git-send-email-javier@javigon.com> Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, =?UTF-8?Q?Javier_Gonz=c3=a1lez?= From: =?UTF-8?Q?Matias_Bj=c3=b8rling?= X-Enigmail-Draft-Status: N1110 Message-ID: <56B1B5E0.5020203@lightnvm.io> Date: Wed, 3 Feb 2016 09:10:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1454332202-13368-1-git-send-email-javier@javigon.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/01/2016 02:10 PM, Javier González wrote: > If a page mapping fails when mapping several pages in a single write bio > request, make sure that already mapped pages are invalidated. Since > other legit mappings coming from a different bio request might have > occurred, rolling back the failed bio is a difficult, unnecessary > overhead; in part because when a mapping fails something bad has > happened already. Still, invalidating pages in the failed bio will help > GC. > > Signed-off-by: Javier González > --- > drivers/lightnvm/rrpc.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c > index c4d0b04..29befe9 100644 > --- a/drivers/lightnvm/rrpc.c > +++ b/drivers/lightnvm/rrpc.c > @@ -730,6 +730,7 @@ static int rrpc_read_ppalist_rq(struct rrpc *rrpc, struct bio *bio, > } else { > BUG_ON(is_gc); > rrpc_unlock_laddr(rrpc, r); > + rrpc_invalidate_range(rrpc, laddr, i + 1); > nvm_dev_dma_free(rrpc->dev, rqd->ppa_list, > rqd->dma_ppa_list); > return NVM_IO_DONE; > I'm not sure I understand this. This is in the read path, why would it need to invalidate pages if a page is not mapped?