Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp570831imm; Fri, 1 Jun 2018 06:06:56 -0700 (PDT) X-Google-Smtp-Source: ADUXVKL6Ltl0PaldUSou5qUT7d5LLBQ83COWJS60wAVMpQYxxY6DP6pKzhxt9k0nE4y9nzv6pEmI X-Received: by 2002:a17:902:74c8:: with SMTP id f8-v6mr11281933plt.317.1527858416864; Fri, 01 Jun 2018 06:06:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527858416; cv=none; d=google.com; s=arc-20160816; b=dqzUDeLs073meGFpled5WjS4o0ZU07e4DEjUyU42c2/bV+VgnrUu8rZStQk4gPw8sD KNHUFnqxDudN7waeKtJ3KF2sT6kI/80tVOE7HSTDtCchIQVLYM9twOOU1muniYK0NzCm 8VZDNDoLJNsAWxPB2d5zx5NyG0C9/5gER9Eoq7FnPSHxD7LhZ9GZ8osxPfmtYTqkSjc6 +JWoecBYFCTnA/oyEQwsbOAL60HX19CZiGqdCYgmt6kOm4pI3Ns2iy2EWRdwsTIvbafV 6yvk/b946iuWNlksjXvNSAJ2E7oB7ckmqbf84eXEhALBBsBzfEzn2JJfn4LPY+KcNEGw hE2w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=sudVJkqJPXscYFZ7bqb5ExoF8Dw+Uy5oZFp6TSSxtZI=; b=HSArQFsnen1sXJPbdwux3EkO9u3JA+u0XUXXLvUme1nqg7UtAxguxYPX1q5KTLWanU +OhW5fxA9vbztgnY+6/5TbgTDMct02xlVPeHRM9ERkXZ7Cne58DwgRtk90bfjK9ptnmc w0NxrWYldJPMoMDzQlGs+IoouUtyEP3Y2oBhrXDxUwv3hBq07/XS9Ro0NGUUGZwVlf+s aziPLGxsIgnkZk+E6g55NDd0x8y+5LeleHxGno1adyTSy8yShZ7yUPDMKYX7uFuyWIvI If/iw5+exw3Zi/KylVNcYPPS8Lb3Le7I4aiCRXlhfYFiKfJAt1btq1COBAWPoUZf7YX4 ir7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=r1hndv2T; 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 f26-v6si16681327pgn.247.2018.06.01.06.06.40; Fri, 01 Jun 2018 06:06:56 -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; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=r1hndv2T; 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 S1752712AbeFANFk (ORCPT + 99 others); Fri, 1 Jun 2018 09:05:40 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:37956 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752502AbeFANFQ (ORCPT ); Fri, 1 Jun 2018 09:05:16 -0400 Received: by mail-lf0-f65.google.com with SMTP id i83-v6so2572888lfh.5 for ; Fri, 01 Jun 2018 06:05:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lightnvm-io.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sudVJkqJPXscYFZ7bqb5ExoF8Dw+Uy5oZFp6TSSxtZI=; b=r1hndv2TmNSJJZs+mCleMTeCrk3YI8SVfwnbsfbqyibWOauOBB5Kef7NtuiYHUW51j iTeN5JMWpPQvxET+RTU24DtvxhXTGvW9XpxYmZ1jUkEmAu5lfinldTGSZAr8Kf7cRmQ7 +gh777V5NfDph6kWfwnvQQJ0eZRnG35xWZ/+p5NBcUqaG+Lhc6RvMQWCvUliRYN5tzOZ UwuWOPJEh1acZewF6qc3PfZOnGZULQypzXZqOKRNU4avTMTx4gHO3HOwN5cOV3ib+pNY 8lhWwYK7zFQUf1CYrWdoTN8G1zKQS2kdQJcoaboXNFzNMShMxRfmNDrEIDYtP+dQfQmh Srjg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=sudVJkqJPXscYFZ7bqb5ExoF8Dw+Uy5oZFp6TSSxtZI=; b=jnv1fur+A4YqQr0P3aA4d6UWavRx5FYPMD9n3x9KxXqr+C32M5BIdpm2BoGMn9X85r eh0iNY6DFvmPTFXwSYZMljVsoIF0REcj0jOpXebWoHYQsJNCoi0YMFSzexx4w1413+8A rJGyP8fzi/nsjfIvAaTbVsDe8cxub+19y7gBkq7SzIkAJBct4QaDAvyOXfEAYW1lp7+g ESuWmhOfaw3u9h5yVs324sBaHW6sseGvCYOucT45IOs0r+2ZW1EwJcDQkcu1+G6KMu0k bjKSyXJZGc8lwbkNjFDonUBZVrC1qznvtt5efmbPzbfVEae7BVq5QlCfWSQVXxvKXy1c Zr4g== X-Gm-Message-State: ALKqPwf7I1OHM6arC43e0jnUy5FZ/NSTLuGcsEMyg+0FT9cfufIj8gbI i+EDoCgroqpcJECDgnRS0+PW4w== X-Received: by 2002:a2e:5559:: with SMTP id j86-v6mr8463412ljb.147.1527858315190; Fri, 01 Jun 2018 06:05:15 -0700 (PDT) Received: from Macroninja.cnexlabs.com (95-166-82-66-cable.dk.customer.tdc.net. [95.166.82.66]) by smtp.gmail.com with ESMTPSA id g5-v6sm303161lje.21.2018.06.01.06.05.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Jun 2018 06:05:14 -0700 (PDT) From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: axboe@fb.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, javier@cnexlabs.com, igor.j.konopko@intel.com, marcin.dziegielewski@intel.com, =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [GIT PULL 17/18] lightnvm: pblk: add possibility to set write buffer size manually Date: Fri, 1 Jun 2018 15:04:31 +0200 Message-Id: <20180601130432.30866-18-mb@lightnvm.io> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180601130432.30866-1-mb@lightnvm.io> References: <20180601130432.30866-1-mb@lightnvm.io> 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 From: Marcin Dziegielewski In some cases, users can want set write buffer size manually, e.g. to adjust it to specific workload. This patch provides the possibility to set write buffer size via module parameter feature. Signed-off-by: Marcin Dziegielewski Signed-off-by: Igor Konopko Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index d65d2f972ccf..c890493e0e49 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c @@ -20,6 +20,11 @@ #include "pblk.h" +unsigned int write_buffer_size; + +module_param(write_buffer_size, uint, 0644); +MODULE_PARM_DESC(write_buffer_size, "number of entries in a write buffer"); + static struct kmem_cache *pblk_ws_cache, *pblk_rec_cache, *pblk_g_rq_cache, *pblk_w_rq_cache; static DECLARE_RWSEM(pblk_lock); @@ -172,10 +177,15 @@ static int pblk_rwb_init(struct pblk *pblk) struct nvm_tgt_dev *dev = pblk->dev; struct nvm_geo *geo = &dev->geo; struct pblk_rb_entry *entries; - unsigned long nr_entries; + unsigned long nr_entries, buffer_size; unsigned int power_size, power_seg_sz; - nr_entries = pblk_rb_calculate_size(pblk->pgs_in_buffer); + if (write_buffer_size && (write_buffer_size > pblk->pgs_in_buffer)) + buffer_size = write_buffer_size; + else + buffer_size = pblk->pgs_in_buffer; + + nr_entries = pblk_rb_calculate_size(buffer_size); entries = vzalloc(nr_entries * sizeof(struct pblk_rb_entry)); if (!entries) -- 2.11.0