From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bartlomiej Zolnierkiewicz Subject: [PATCH] block: export SSD/non-rotational queue flag through sysfs Date: Mon, 5 Jan 2009 19:52:57 +0100 Message-ID: <200901051952.58029.bzolnier@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Return-path: Received: from mu-out-0910.google.com ([209.85.134.186]:53317 "EHLO mu-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752312AbZAESxX (ORCPT ); Mon, 5 Jan 2009 13:53:23 -0500 Content-Disposition: inline Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Jens Axboe Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, Alan Cox RnJvbTogQmFydGxvbWllaiBab2xuaWVya2lld2ljeiA8YnpvbG5pZXJAZ21haWwuY29tPgpTdWJq ZWN0OiBbUEFUQ0hdIGJsb2NrOiBleHBvcnQgU1NEL25vbi1yb3RhdGlvbmFsIHF1ZXVlIGZsYWcg dGhyb3VnaCBzeXNmcwoKRm9yIHNvbWUgZGV2aWNlcyAoaS5lLiBDRkEgQVRBKSB3ZSBjYW4ndCBy ZWxpYWJseSBkZXRlY3Qgd2hldGhlcgp0aGUgZGV2aWNlIGlzIG9mIHJvdGF0aW9uYWwgb3Igbm9u LXJvdGF0aW9uYWwgdHlwZSBzbyB3ZSBuZWVkIHRvCmxlYXZlIHRoZSBmaW5hbCBkZWNpc2lvbiBh Ym91dCB0aGlzIHNldHRpbmcgdG8gdGhlIHVzZXItc3BhY2UuCgpTdWdnZXN0ZWQtYnk6IEFsYW4g Q294IDxhbGFuQGx4b3JndWsudWt1dS5vcmcudWs+ClNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWog Wm9sbmllcmtpZXdpY3ogPGJ6b2xuaWVyQGdtYWlsLmNvbT4KLS0tCiBibG9jay9ibGstc3lzZnMu YyB8ICAgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwg MjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKSW5kZXg6IGIvYmxvY2svYmxrLXN5c2Zz LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gYS9ibG9jay9ibGstc3lzZnMuYworKysgYi9ibG9jay9ibGstc3lz ZnMuYwpAQCAtMTMwLDYgKzEzMCwyNyBAQCBzdGF0aWMgc3NpemVfdCBxdWV1ZV9tYXhfaHdfc2Vj dG9yc19zaG93CiAJcmV0dXJuIHF1ZXVlX3Zhcl9zaG93KG1heF9od19zZWN0b3JzX2tiLCAocGFn ZSkpOwogfQogCitzdGF0aWMgc3NpemVfdCBxdWV1ZV9ub25yb3Rfc2hvdyhzdHJ1Y3QgcmVxdWVz dF9xdWV1ZSAqcSwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcXVldWVfdmFyX3Nob3coYmxrX3F1 ZXVlX25vbnJvdChxKSwgcGFnZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHF1ZXVlX25vbnJvdF9z dG9yZShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgY29uc3QgY2hhciAqcGFnZSwKKwkJCQkgIHNp emVfdCBjb3VudCkKK3sKKwl1bnNpZ25lZCBsb25nIG5tOworCXNzaXplX3QgcmV0ID0gcXVldWVf dmFyX3N0b3JlKCZubSwgcGFnZSwgY291bnQpOworCisJc3Bpbl9sb2NrX2lycShxLT5xdWV1ZV9s b2NrKTsKKwlpZiAobm0pCisJCXF1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfTk9OUk9ULCBxKTsK KwllbHNlCisJCXF1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19OT05ST1QsIHEpOworCXNwaW5f dW5sb2NrX2lycShxLT5xdWV1ZV9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBz c2l6ZV90IHF1ZXVlX25vbWVyZ2VzX3Nob3coc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGNoYXIg KnBhZ2UpCiB7CiAJcmV0dXJuIHF1ZXVlX3Zhcl9zaG93KGJsa19xdWV1ZV9ub21lcmdlcyhxKSwg cGFnZSk7CkBAIC0xNDYsOCArMTY3LDggQEAgc3RhdGljIHNzaXplX3QgcXVldWVfbm9tZXJnZXNf c3RvcmUoc3RydQogCQlxdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX05PTUVSR0VTLCBxKTsKIAll bHNlCiAJCXF1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19OT01FUkdFUywgcSk7Ci0KIAlzcGlu X3VubG9ja19pcnEocS0+cXVldWVfbG9jayk7CisKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yMTAs NiArMjMxLDEyIEBAIHN0YXRpYyBzdHJ1Y3QgcXVldWVfc3lzZnNfZW50cnkgcXVldWVfaHcKIAku c2hvdyA9IHF1ZXVlX2h3X3NlY3Rvcl9zaXplX3Nob3csCiB9OwogCitzdGF0aWMgc3RydWN0IHF1 ZXVlX3N5c2ZzX2VudHJ5IHF1ZXVlX25vbnJvdF9lbnRyeSA9IHsKKwkuYXR0ciA9IHsubmFtZSA9 ICJub25yb3QiLCAubW9kZSA9IFNfSVJVR08gfCBTX0lXVVNSIH0sCisJLnNob3cgPSBxdWV1ZV9u b25yb3Rfc2hvdywKKwkuc3RvcmUgPSBxdWV1ZV9ub25yb3Rfc3RvcmUsCit9OworCiBzdGF0aWMg c3RydWN0IHF1ZXVlX3N5c2ZzX2VudHJ5IHF1ZXVlX25vbWVyZ2VzX2VudHJ5ID0gewogCS5hdHRy ID0gey5uYW1lID0gIm5vbWVyZ2VzIiwgLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiB9LAogCS5z aG93ID0gcXVldWVfbm9tZXJnZXNfc2hvdywKQEAgLTIyOSw2ICsyNTYsNyBAQCBzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZSAqZGVmYXVsdF9hdHRyc1tdCiAJJnF1ZXVlX21heF9zZWN0b3JzX2VudHJ5 LmF0dHIsCiAJJnF1ZXVlX2lvc2NoZWRfZW50cnkuYXR0ciwKIAkmcXVldWVfaHdfc2VjdG9yX3Np emVfZW50cnkuYXR0ciwKKwkmcXVldWVfbm9ucm90X2VudHJ5LmF0dHIsCiAJJnF1ZXVlX25vbWVy Z2VzX2VudHJ5LmF0dHIsCiAJJnF1ZXVlX3JxX2FmZmluaXR5X2VudHJ5LmF0dHIsCiAJTlVMTCwK AAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753930AbZAESxg (ORCPT ); Mon, 5 Jan 2009 13:53:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752504AbZAESxZ (ORCPT ); Mon, 5 Jan 2009 13:53:25 -0500 Received: from mu-out-0910.google.com ([209.85.134.186]:53317 "EHLO mu-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752312AbZAESxX (ORCPT ); Mon, 5 Jan 2009 13:53:23 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:mime-version:content-type :content-transfer-encoding:content-disposition:message-id; b=jDnjTGFVUXzQjpD2zkR+JAGVSgdKAJpw86xwAJSXd6B5TPB5P2YiTWUJQNOoJSm6Dl qcQFV14/wcoZdGieOuxfC4MJj1Y+2F5taCMKU9NUIq9szX8H1ZMQ4mbyMQpHLv2JSQom tpa9GoyVTym4H8yRFgeZi/5ruS4npPr+VIEzI= From: Bartlomiej Zolnierkiewicz To: Jens Axboe Subject: [PATCH] block: export SSD/non-rotational queue flag through sysfs Date: Mon, 5 Jan 2009 19:52:57 +0100 User-Agent: KMail/1.10.3 (Linux/2.6.28-next-20090102; KDE/4.1.3; i686; ; ) Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, Alan Cox MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: inline Message-Id: <200901051952.58029.bzolnier@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by alpha id n05IrewM018971 From: Bartlomiej Zolnierkiewicz Subject: [PATCH] block: export SSD/non-rotational queue flag through sysfs For some devices (i.e. CFA ATA) we can't reliably detect whetherthe device is of rotational or non-rotational type so we need toleave the final decision about this setting to the user-space. Suggested-by: Alan Cox Signed-off-by: Bartlomiej Zolnierkiewicz --- block/blk-sysfs.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) Index: b/block/blk-sysfs.c===================================================================--- a/block/blk-sysfs.c+++ b/block/blk-sysfs.c@@ -130,6 +130,27 @@ static ssize_t queue_max_hw_sectors_show return queue_var_show(max_hw_sectors_kb, (page)); } +static ssize_t queue_nonrot_show(struct request_queue *q, char *page)+{+ return queue_var_show(blk_queue_nonrot(q), page);+}++static ssize_t queue_nonrot_store(struct request_queue *q, const char *page,+ size_t count)+{+ unsigned long nm;+ ssize_t ret = queue_var_store(&nm, page, count);++ spin_lock_irq(q->queue_lock);+ if (nm)+ queue_flag_set(QUEUE_FLAG_NONROT, q);+ else+ queue_flag_clear(QUEUE_FLAG_NONROT, q);+ spin_unlock_irq(q->queue_lock);++ return ret;+}+ static ssize_t queue_nomerges_show(struct request_queue *q, char *page) { return queue_var_show(blk_queue_nomerges(q), page);@@ -146,8 +167,8 @@ static ssize_t queue_nomerges_store(stru queue_flag_set(QUEUE_FLAG_NOMERGES, q); else queue_flag_clear(QUEUE_FLAG_NOMERGES, q);- spin_unlock_irq(q->queue_lock);+ return ret; } @@ -210,6 +231,12 @@ static struct queue_sysfs_entry queue_hw .show = queue_hw_sector_size_show, }; +static struct queue_sysfs_entry queue_nonrot_entry = {+ .attr = {.name = "nonrot", .mode = S_IRUGO | S_IWUSR },+ .show = queue_nonrot_show,+ .store = queue_nonrot_store,+};+ static struct queue_sysfs_entry queue_nomerges_entry = { .attr = {.name = "nomerges", .mode = S_IRUGO | S_IWUSR }, .show = queue_nomerges_show,@@ -229,6 +256,7 @@ static struct attribute *default_attrs[] &queue_max_sectors_entry.attr, &queue_iosched_entry.attr, &queue_hw_sector_size_entry.attr,+ &queue_nonrot_entry.attr, &queue_nomerges_entry.attr, &queue_rq_affinity_entry.attr, NULL,{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I