From patchwork Fri Nov 10 10:01:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 118515 Delivered-To: patch@linaro.org Received: by 10.140.22.164 with SMTP id 33csp7722307qgn; Fri, 10 Nov 2017 02:01:56 -0800 (PST) X-Google-Smtp-Source: AGs4zMZf8EVOA39LcVgEowp/uyjWYY/KAQaUHrEQcpWaPgxd7pS2N1H94/MRlYjeNzpvnrOg3bbX X-Received: by 10.159.242.194 with SMTP id x2mr512271plw.64.1510308116477; Fri, 10 Nov 2017 02:01:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510308116; cv=none; d=google.com; s=arc-20160816; b=khwHLajQwBeuuZpThMp3BYe5W+NmtXFjda5rANyiJS9XcXJrowerQPCB4XsfRzVu8w wTIeewxP5Nu38llYo0yww/4M4t1UPH1p7mClIKCP/n1PhTUKYMS749bRyf+Qj3ocbdU0 5R2VNQ9fqGtmnLkmNAspUKTWiyXZ3DZAGK1ULZJ9J5T6iG2GaVRKwmRQKSOnzx/6hfXR I7bg+fIekLpE2jS78E6BSzeAOLA90+NQjZ7gvFA36InbtSi+X76MsCcwK0zSEmsFpCnk nr8lm03BZK52uXJNrSUrstxZz1B955A4hwRQX/+hGmPPwjne3s8T2rnqoub4p0jiDvGy G6gQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=krw3AgdMhlBQe6MexT71NlWOrrzjEbX8jLDLGzDKEvU=; b=we8BAY2aiVi2Z4NQB0GA/b7zPu5H6651XLethO7wVg/sICzqKV0u/UVUnAARkQ2rrO YGxhRzqKzsHDx2TqI9yY7suKfuZHeERfhXPR+Ob7jmg/ukJiNFwRsn5jziuKZ6+qajg+ 8ahKeZs98prIckVNbvUTGMwM04oDaXlSSpmLNXeVG6cG9cVDftMBtkZWhBdLVQWS05xI 0IGa1sni1UbFWESGbNcuscV/nGNRAmdPNbX3xWWjeoxmT5gJc7crJhzgkNstxXV+LB9t q0Id7tXysacNjm+lBHGM0rN6OoH/Uh9KbdUO39GhWprawbWwcxHFeXHDYWPYTqWlnr9/ a70Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=doS8nCSE; spf=pass (google.com: best guess record for domain of linux-mmc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-mmc-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z14si8801659plh.282.2017.11.10.02.01.56; Fri, 10 Nov 2017 02:01:56 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-mmc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=doS8nCSE; spf=pass (google.com: best guess record for domain of linux-mmc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-mmc-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751915AbdKJKBx (ORCPT + 6 others); Fri, 10 Nov 2017 05:01:53 -0500 Received: from mail-lf0-f41.google.com ([209.85.215.41]:49715 "EHLO mail-lf0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751410AbdKJKBv (ORCPT ); Fri, 10 Nov 2017 05:01:51 -0500 Received: by mail-lf0-f41.google.com with SMTP id w21so10371569lfc.6 for ; Fri, 10 Nov 2017 02:01:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=dl/0Nq71wjogUdnG4Jdg+XH33yQnw5olmPlzU0MM8zY=; b=doS8nCSEP+QsWCU1DbCtwzusI6H0rLVn24rkoCq0xClDLzfYoPiy9jAgG7y/ACFupP SK2z1oE2aY36s68YcmB2sE5P0uy/5x6J+DQrEv2k8ZCm1m1NOy5VbAwl03NPQ3tgT1We OJbSieqifrWPIeLqsqK0Onb48NvVwhlNOPv8s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=dl/0Nq71wjogUdnG4Jdg+XH33yQnw5olmPlzU0MM8zY=; b=kBsJYNMUb2tv5Ff4Ok91mDa94ah0RWMOHTBDb4UivMKqFE731eDrmS9t4hrK0JjODh ddlgw6R/uvC3rMyZDDDcqzh2FObhhlru/M4VZTT3z4k/M9jf8eMa+CpqVK1eqvAvkv8M aFUXBPCRTj0DYfioNXPpyscTrgPLBKR3ebI73+3fsAHmHpLEMd8WqPeTItQGjs01/0HQ m209i+u7ACnkF1Qnf7pTFGy/5FbZBamuuNzKN9ospegWZ7hkCgItTDjwKycjdA6eQ1K/ 3y3BxJAGJZmVdzB/Qw5KjQIm8abzOZMRY5J7CY8ajiWke7c+HcWgKBTuaDOlh26QtwCx GctQ== X-Gm-Message-State: AJaThX4tzotMfrqaU86awAaos7d4r+zJNweFmXMMYUqfLsh03o+WquJi EOS0hitPKVau0B9pm/uYt0/AGb+wRo0= X-Received: by 10.46.84.82 with SMTP id y18mr1452431ljd.74.1510308109708; Fri, 10 Nov 2017 02:01:49 -0800 (PST) Received: from genomnajs.ideon.se ([85.235.10.227]) by smtp.gmail.com with ESMTPSA id n36sm310843lfi.78.2017.11.10.02.01.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 10 Nov 2017 02:01:48 -0800 (PST) From: Linus Walleij To: linux-mmc@vger.kernel.org, Ulf Hansson Cc: linux-block@vger.kernel.org, Jens Axboe , Christoph Hellwig , Arnd Bergmann , Bartlomiej Zolnierkiewicz , Paolo Valente , Avri Altman , Adrian Hunter , Linus Walleij Subject: [PATCH 00/12 v5] Multiqueue for MMC/SD Date: Fri, 10 Nov 2017 11:01:31 +0100 Message-Id: <20171110100143.12256-1-linus.walleij@linaro.org> X-Mailer: git-send-email 2.13.6 Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org This is the fifth iteration of this patch set. I *HOPE* that we can scrap this patch set and merge Adrian's patches instead, because they also bring CQE support which is nice. I had some review comments on his series, mainly that it needs to kill off the legacy block layer code path that noone likes anyway. So this is mainly an academic and inspirational exercise. Whatever remains of this refactoring, if anything, I can certainly do on top of Adrian's patches as well. What changed since v4 is the error path, since Adrian pointed out that the error handling seems to be fragile. It was indeed fragile... To make sure things work properly I have run long test rounds with fault injection, essentially: Enable FAULT_INJECTION, FAULT_INJECTION_DEBUG_FS, FAIL_MMC_REQUEST cd /debug/mmc3/fail_mmc_request/ echo 1 > probability echo -1 > times Then running a dd to the card, also increased the error rate to 10% and completed tests successfully, but at this error rate the MMC stack sometimes exceeds the retry limit and the dd command fails (as is appropriate). Removing a card during I/O does not work well however :/ So I guess I would need to work on that if this series should continue. (Hopefully unlikely.) Linus Walleij (12): mmc: core: move the asynchronous post-processing mmc: core: add a workqueue for completing requests mmc: core: replace waitqueue with worker mmc: core: do away with is_done_rcv mmc: core: do away with is_new_req mmc: core: kill off the context info mmc: queue: simplify queue logic mmc: block: shuffle retry and error handling mmc: queue: stop flushing the pipeline with NULL mmc: queue/block: pass around struct mmc_queue_req*s mmc: block: issue requests in massive parallel mmc: switch MMC/SD to use blk-mq multiqueueing v5 drivers/mmc/core/block.c | 557 +++++++++++++++++++++++--------------------- drivers/mmc/core/block.h | 5 +- drivers/mmc/core/bus.c | 1 - drivers/mmc/core/core.c | 217 ++++++++++------- drivers/mmc/core/core.h | 11 +- drivers/mmc/core/host.c | 1 - drivers/mmc/core/mmc_test.c | 31 +-- drivers/mmc/core/queue.c | 252 ++++++++------------ drivers/mmc/core/queue.h | 16 +- include/linux/mmc/core.h | 3 +- include/linux/mmc/host.h | 31 +-- 11 files changed, 557 insertions(+), 568 deletions(-) -- 2.13.6 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html