Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp2529301ybb; Mon, 30 Mar 2020 07:56:45 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtnG7Zj1W5UTf+gWMrpr+8T57FE30UZ7oa3G5hXy5SHhchuH9DQdNciEw61rOb0R12ZprRW X-Received: by 2002:aca:f449:: with SMTP id s70mr7520839oih.86.1585580205862; Mon, 30 Mar 2020 07:56:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585580205; cv=none; d=google.com; s=arc-20160816; b=aO3V+GWn/L/TBwxvaJVDQGjoz63mjw0JMSp/lH/l2J48j4G2kkCozeYC0y1phwNHUw BLX6PXT5s49bEf2vNc3wX5AkleUeD7deyF9HOZIZzrc/rtBGlDIDFiqp1LmJVfiQ199t kYRCjo4NqgunoM/hajnk9pp49A7nV0RBDEsoBgLrWFRL7ja4VM22jvIWy5nr/M8Fq1aX TNwNnQt4G9iJyulQmHn99iXOMMZeuBqYqiaLSiv4JOuZM+O1wm0uejL2CdZ6V8+gez0V IbOPl7bJVN3OghqDYB5z0hpsTBWsoiMVzLmKhv6Dn0+FLm/+wqI/krk4Nc7gAT3kkJm3 VpoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=mUF/zlIaUmq+5Rxwip0Vk63xBOgtG1OTMAeXkyekN48=; b=PIO1cr8GB2tCmNILufPpNpX5pXRr2OvsAROnJiXXWLR7jLt5qGn7BP+ceqTvekloqk jUi9PyYaYxm6jsIoknt3mGUkDQJiOIhoXMf589pt2xRTe4GxtrG+V7NJA4lnhpQMnuaO hU6CBiRP9SSBh0jeQFz7RZnmt7OO8WoCIFABwu14szjzD67oygHj38K0gsiC1dA1jTws GhcAWL86VXkEBK++E9Q954Ea9hUZeu/KQKpSWQdSKOohQZm96RXuXharcVtUhCCIlV9B 0uPxqxUcCAxuODFEtjmYmLHmoSa+/nBwkNLLeG3LEAHlxRWaAFA6SQcrciAqipYxmgJi tuJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l13si6460851otb.102.2020.03.30.07.56.32; Mon, 30 Mar 2020 07:56:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728080AbgC3Ozy convert rfc822-to-8bit (ORCPT + 99 others); Mon, 30 Mar 2020 10:55:54 -0400 Received: from relay12.mail.gandi.net ([217.70.178.232]:44309 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726518AbgC3Ozy (ORCPT ); Mon, 30 Mar 2020 10:55:54 -0400 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 225DD20000C; Mon, 30 Mar 2020 14:55:48 +0000 (UTC) Date: Mon, 30 Mar 2020 16:55:47 +0200 From: Miquel Raynal To: Xiaoming Ni Cc: , , , , , , , , , Subject: Re: [PATCH v3] mtd:fix cache_state to avoid writing to bad blocks repeatedly Message-ID: <20200330165547.4e2acb9a@xps13> In-Reply-To: <5bf71fe1-2dd1-f45a-5858-433f340b167e@huawei.com> References: <1585575925-84017-1-git-send-email-nixiaoming@huawei.com> <20200330155222.20359293@xps13> <5bf71fe1-2dd1-f45a-5858-433f340b167e@huawei.com> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Xiaoming, Xiaoming Ni wrote on Mon, 30 Mar 2020 22:25:36 +0800: > On 2020/3/30 21:52, Miquel Raynal wrote: > > Hi Xiaoming, > > > > Xiaoming Ni wrote on Mon, 30 Mar 2020 21:45:25 > > +0800: > > > >> The function call process is as follows: > >> mtd_blktrans_work() > >> while (1) > >> do_blktrans_request() > >> mtdblock_writesect() > >> do_cached_write() > >> write_cached_data() /*if cache_state is STATE_DIRTY*/ > >> erase_write() > >> > >> write_cached_data() returns failure without modifying cache_state > >> and cache_offset. So when do_cached_write() is called again, > >> write_cached_data() will be called again to perform erase_write() > >> on the same cache_offset. > >> > >> But if this cache_offset points to a bad block, erase_write() will > >> always return -EIO. Writing to this mtdblk is equivalent to losing > >> the current data, and repeatedly writing to the bad block. > >> > >> Repeatedly writing a bad block has no real benefits, > >> but brings some negative effects: > >> 1 Lost subsequent data > >> 2 Loss of flash device life > >> 3 erase_write() bad blocks are very time-consuming. For example: > >> the function do_erase_oneblock() in chips/cfi_cmdset_0020.c or > >> chips/cfi_cmdset_0002.c may take more than 20 seconds to return > >> > >> Therefore, when erase_write() returns -EIO in write_cached_data(), > >> clear cache_state to avoid writing to bad blocks repeatedly. > >> > >> Signed-off-by: Xiaoming Ni > >> Reviewed-by: Miquel Raynal > >> Cc: stable@vger.kernel.org > > > > Still missing: > > * Fixes: tag > > * Wrong title prefix > > > > Fixes: 1da177e4c3f41524e88 "Linux-2.6.12-rc2" > > Is it described like this? The way to describe a commit is: Fixes: 1da177e4c3f4 ("Linux-...") But it is too old to be pointed, just drop both Fixes/Cc tags and just fix the title please. > > Do I need to go to > https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git > to trace back the older commit records? > > Thanks > Xiaoming Ni > > > > Thanks, Miquèl