Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp49418rwl; Thu, 3 Nov 2022 19:35:01 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4WSO3gLZ1rZ8/YbnyduVP9OD6HXtxYa85Z85DuNNxO7kVK2d0tmVYtqn0svzxl+VDT9fMh X-Received: by 2002:a17:90b:254c:b0:20a:8a92:ea5b with SMTP id nw12-20020a17090b254c00b0020a8a92ea5bmr34234373pjb.81.1667529301376; Thu, 03 Nov 2022 19:35:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667529301; cv=none; d=google.com; s=arc-20160816; b=TJhIbFg/BxehQbHnxRta0/9lpHQCpdysLBZr7timN4xaggVt8mAbYmbU7MDc48D3Pq NwtqPJ3rPYOLOrgdCVGU3wpIjbeSneB1su9Yx7Qg5FYdIa0qcd9WxTznV6D5eNLDhmhK T0grv0UIP6wW6KE9VJSGoPCW1z5EaSPoayXUOdu9EgVuyV+y7twlJBMbqmp6xOyHXP0S xTM8naomdKb4Yi3S9kfOOEjOBCveBbz4R3Xp4VnLHWMwtqADoibcBHugwGiZNXxXWsRE zWdjdc+PnLLU2CTUcvnKy8oxziQl64Azff16JenM6I5cry3f9Wc1p1aamQuzmAnuEJsb 7NpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=4az2XGlcw+U7GtdL54MHn/sQv+/6M18dIvR3Xx4ufgU=; b=B0lOU0+9f6SLzcnCMUoI+YbLzo1ot+oyECboMCb0pzMdxN9/rLEZQptTizjv8g9n2Q CdNrAgCrcqcsiXhAl+F824hbF88zPtjbBgV9pb1NtldWl+S453r6bdBiH+FG4McXLv3t E8hHM3+FrzcykDvbebo1FpQa+ohuweZ449ken4W+j0kcoHXGEK9eVxzyspUaDygXyvot vm/n/RfCMeQP9rhB6xzcdufqq7nvbo4jxX7l4Yp45yAVCh5T39a3FrzyAyzFOM9m6kEs aislIUKdQsRQEoMGFl83gVS5hr0oNrDtgntMjjgLTbEmUAXgnkXrp+y0jHXZ9aqJSjPX 5xkQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m9-20020a17090aab0900b0020d9c20092fsi1780576pjq.181.2022.11.03.19.34.49; Thu, 03 Nov 2022 19:35:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231417AbiKDCSV (ORCPT + 96 others); Thu, 3 Nov 2022 22:18:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230435AbiKDCSC (ORCPT ); Thu, 3 Nov 2022 22:18:02 -0400 Received: from dggsgout12.his.huawei.com (dggsgout12.his.huawei.com [45.249.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5455A5588; Thu, 3 Nov 2022 19:18:01 -0700 (PDT) Received: from mail02.huawei.com (unknown [172.30.67.143]) by dggsgout12.his.huawei.com (SkyGuard) with ESMTP id 4N3PNY5tBpz6T2Y5; Fri, 4 Nov 2022 10:15:25 +0800 (CST) Received: from huaweicloud.com (unknown [10.175.127.227]) by APP2 (Coremail) with SMTP id Syh0CgB3D9RTdmRjDShNBQ--.16192S9; Fri, 04 Nov 2022 10:17:59 +0800 (CST) From: Yu Kuai To: hch@lst.de, tj@kernel.org, josef@toxicpanda.com, axboe@kernel.dk, yukuai3@huawei.com Cc: cgroups@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, yukuai1@huaweicloud.com, yi.zhang@huawei.com Subject: [PATCH v2 5/5] blk-iocost: read params inside lock in sysfs apis Date: Fri, 4 Nov 2022 10:39:38 +0800 Message-Id: <20221104023938.2346986-6-yukuai1@huaweicloud.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20221104023938.2346986-1-yukuai1@huaweicloud.com> References: <20221104023938.2346986-1-yukuai1@huaweicloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: Syh0CgB3D9RTdmRjDShNBQ--.16192S9 X-Coremail-Antispam: 1UD129KBjvJXoW7Zr1kXFWktr13tF4kZFyDAwb_yoW8Wr4xpF Z0939rK3yFqr1xJF13tF4xXwn8C3yqgr4fXrsxuFyfAr9rZr1IqFsFkrW0kw48ZFWfC390 gFWagr4UCr45G37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUPF14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_JF0E3s1l82xGYI kIc2x26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2 z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F 4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq 3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7 IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4U M4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2 kIc2xKxwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E 14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIx kGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAF wI0_Cr0_Gr1UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJV W8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUOBTY UUUUU X-CM-SenderInfo: 51xn3trlr6x35dzhxuhorxvhhfrp/ X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yu Kuai Otherwise, user might get abnormal values if params is updated concurrently. Signed-off-by: Yu Kuai --- block/blk-iocost.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/block/blk-iocost.c b/block/blk-iocost.c index 192ad4e0cfc6..7d682ce0bee6 100644 --- a/block/blk-iocost.c +++ b/block/blk-iocost.c @@ -3135,6 +3135,7 @@ static u64 ioc_qos_prfill(struct seq_file *sf, struct blkg_policy_data *pd, if (!dname) return 0; + mutex_lock(&ioc->params_mutex); seq_printf(sf, "%s enable=%d ctrl=%s rpct=%u.%02u rlat=%u wpct=%u.%02u wlat=%u min=%u.%02u max=%u.%02u\n", dname, ioc->enabled, ioc->user_qos_params ? "user" : "auto", ioc->params.qos[QOS_RPPM] / 10000, @@ -3147,6 +3148,7 @@ static u64 ioc_qos_prfill(struct seq_file *sf, struct blkg_policy_data *pd, ioc->params.qos[QOS_MIN] % 10000 / 100, ioc->params.qos[QOS_MAX] / 10000, ioc->params.qos[QOS_MAX] % 10000 / 100); + mutex_unlock(&ioc->params_mutex); return 0; } @@ -3331,12 +3333,14 @@ static u64 ioc_cost_model_prfill(struct seq_file *sf, if (!dname) return 0; + mutex_lock(&ioc->params_mutex); seq_printf(sf, "%s ctrl=%s model=linear " "rbps=%llu rseqiops=%llu rrandiops=%llu " "wbps=%llu wseqiops=%llu wrandiops=%llu\n", dname, ioc->user_cost_model ? "user" : "auto", u[I_LCOEF_RBPS], u[I_LCOEF_RSEQIOPS], u[I_LCOEF_RRANDIOPS], u[I_LCOEF_WBPS], u[I_LCOEF_WSEQIOPS], u[I_LCOEF_WRANDIOPS]); + mutex_unlock(&ioc->params_mutex); return 0; } -- 2.31.1