mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: FabF <Fabian.Frederick@skynet.be>
To: Andrew Morton <akpm@osdl.org>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
	linux-kernel@vger.kernel.org,
	Badari Pulavarty <pbadari@us.ibm.com>
Subject: Re: [PATCH 2.6.6-rc3-mm1] Add maxthinktime to sysfs
Date: Sat, 01 May 2004 01:37:04 +0200	[thread overview]
Message-ID: <1083368224.4976.9.camel@bluerhyme.real3> (raw)
In-Reply-To: <20040430154246.2019f9ec.akpm@osdl.org>

[-- Attachment #1: Type: text/plain, Size: 913 bytes --]

On Sat, 2004-05-01 at 00:42, Andrew Morton wrote:
> FabF <Fabian.Frederick@skynet.be> wrote:
> >
> > 	Here's a patch to add the asio maxthinktime to sysfs.
> 
> Why? Have you measured any benefit from varying it, and if so, what was
> the result?

Andrew,

       I notice huge variations in first seconds of a 10 client
throughput activity as attached (5,100,300 as maxthinktime).
It's just another parameter I'd like to play with ;)
Maybe this one's exposition is not important intrinsequely but we could
bring interesting combinations later ...
       

> 
> Badari, did you find any need to vary this in the AS tuning work which you
> were doing?  (What happened to that, btw?)
> 
> If we're going to expose this tunable to users it needs to be documented in
> as-iosched.txt

I'm an absolute beginner Andrew ... Maybe someone more experienced could do that ?

PS:Attached the patch v2.

Best regards,
Fabian

[-- Attachment #2: ffbench11.txt --]
[-- Type: text/plain, Size: 905 bytes --]

ffbench 11 - Fabian Frederick 04/2004 - asio - maxthinktime - 10 clients
5	100	300
---------------------
5.37	21.26	16.28
11.71	23.10	20.14
15.22	21.05	20.20
13.85	18.03	17.55
11.58	16.39	16.86
11.41	15.50	14.30
11.43	14.37	14.03
11.43	13.82	14.16
11.43	13.60	14.29
11.57	13.27	14.01
11.24	13.06	13.67
10.78	12.91	13.67
10.71	12.41	12.91
10.91	12.53	12.70
10.97	12.32	12.67
10.90	12.34	12.82
10.62	12.25	12.68
10.59	11.81	12.61
10.44	11.40	12.15
10.44	11.35	11.96
10.37	11.36	11.68
10.20	11.19	11.73
10.39	11.18	11.85
10.22	11.22	11.92
10.10	11.15	11.81
10.11	11.03	11.53
9.95	11.00	11.56
10.15	11.21	11.55
10.32	11.17	11.54
10.34	10.96	11.47
10.08	11.02	11.47
10.10	11.14	11.54
10.15	11.14	11.45
10.07	11.04	11.31
10.12	11.08	11.26
10.01	11.04	11.28
10.02	10.93	11.15
9.98	10.70	10.93
9.94	10.60	10.93
9.85	10.45	10.78
9.87	10.40	10.68
9.98	10.37	10.62
9.95	10.28	10.56
9.87	10.20	10.51
9.72	10.16	10.55

[-- Attachment #3: maxthinktime2.diff --]
[-- Type: text/x-patch, Size: 2116 bytes --]

diff -Naur orig/drivers/block/as-iosched.c edited/drivers/block/as-iosched.c
--- orig/drivers/block/as-iosched.c	2004-04-30 20:10:43.000000000 +0200
+++ edited/drivers/block/as-iosched.c	2004-05-01 01:00:36.000000000 +0200
@@ -65,7 +65,7 @@
  * or doing a lengthy computation. A small penalty can be justified there, and
  * will still catch out those processes that constantly have large thinktimes.
  */
-#define MAX_THINKTIME (HZ/50UL)
+unsigned long maxthinktime=(HZ/50UL);
 
 /* Bits in as_io_context.state */
 enum as_io_states {
@@ -869,7 +869,7 @@
 			if (test_bit(AS_TASK_IORUNNING, &aic->state)
 							&& in_flight == 0) {
 				thinktime = jiffies - aic->last_end_request;
-				thinktime = min(thinktime, MAX_THINKTIME-1);
+				thinktime = min(thinktime, maxthinktime-1);
 			} else
 				thinktime = 0;
 			as_update_thinktime(ad, aic, thinktime);
@@ -1951,6 +1951,7 @@
 {									\
 	return as_var_show(__VAR, (page));			\
 }
+SHOW_FUNCTION(as_maxthinktime_show, maxthinktime);
 SHOW_FUNCTION(as_readexpire_show, ad->fifo_expire[REQ_SYNC]);
 SHOW_FUNCTION(as_writeexpire_show, ad->fifo_expire[REQ_ASYNC]);
 SHOW_FUNCTION(as_anticexpire_show, ad->antic_expire);
@@ -1968,6 +1969,7 @@
 		*(__PTR) = (MAX);					\
 	return ret;							\
 }
+STORE_FUNCTION(as_maxthinktime_store, &maxthinktime, 0, LONG_MAX);
 STORE_FUNCTION(as_readexpire_store, &ad->fifo_expire[REQ_SYNC], 0, INT_MAX);
 STORE_FUNCTION(as_writeexpire_store, &ad->fifo_expire[REQ_ASYNC], 0, INT_MAX);
 STORE_FUNCTION(as_anticexpire_store, &ad->antic_expire, 0, INT_MAX);
@@ -1977,6 +1979,11 @@
 			&ad->batch_expire[REQ_ASYNC], 0, INT_MAX);
 #undef STORE_FUNCTION
 
+static struct as_fs_entry as_maxthinktime = {
+	.attr = {.name = "maxthinktime", .mode = S_IRUGO | S_IWUSR },
+	.show = as_maxthinktime_show,
+	.store = as_maxthinktime_store,
+};
 static struct as_fs_entry as_est_entry = {
 	.attr = {.name = "est_time", .mode = S_IRUGO },
 	.show = as_est_show,
@@ -2008,6 +2015,7 @@
 };
 
 static struct attribute *default_attrs[] = {
+	&as_maxthinktime.attr,
 	&as_est_entry.attr,
 	&as_readexpire_entry.attr,
 	&as_writeexpire_entry.attr,

  reply	other threads:[~2004-04-30 23:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-30 22:26 FabF
2004-04-30 22:42 ` Andrew Morton
2004-04-30 23:37   ` FabF [this message]
2004-04-30 23:34     ` Andrew Morton
2004-05-01  3:41     ` Nick Piggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1083368224.4976.9.camel@bluerhyme.real3 \
    --to=fabian.frederick@skynet.be \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=pbadari@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®