All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nadia Derbey <Nadia.Derbey@bull.net>
To: Randy Dunlap <randy.dunlap@oracle.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [RFC][PATCH 1/6] Tunable structure and registration routines
Date: Thu, 25 Jan 2007 18:01:34 +0100	[thread overview]
Message-ID: <45B8E26E.5000104@bull.net> (raw)
In-Reply-To: <20070125083424.7c455d94.randy.dunlap@oracle.com>

Randy Dunlap wrote:
> On Thu, 25 Jan 2007 17:26:31 +0100 Nadia Derbey wrote:
>>>>+Any kernel subsystem that has registered a tunable should call
>>>>+auto_tune_func() as follows:
>>>>+
>>>>++-------------------------+--------------------------------------------+
>>>>+| Step                    | Routine to call                            |
>>>>++-------------------------+--------------------------------------------+
>>>>+| Declaration phase       | DEFINE_TUNABLE(name, values...);           |
>>>>++-------------------------+--------------------------------------------+
>>>>+| Initialization routine  | set_tunable_min_max(name, min, max);       |
>>>>+|                         | set_autotuning_routine(name, routine);     |
>>>>+|                         | register_tunable(&name);                   |
>>>>+| Note: the 1st 2 calls   |                                            |
>>>>+|       are optional      |                                            |
>>>>++-------------------------+--------------------------------------------+
>>>>+| Alloc                   | activate_auto_tuning(AKT_UP, &name);       |
>>>>++-------------------------+--------------------------------------------+
>>>>+| Free                    | activate_auto_tuning(AKT_DOWN, &name);     |
>>>
>>>
>>>So does Free always use AKT_DOWN?  why does it matter?
>>>Seems unneeded and inconsistent.
>>
>>Tuning down is recommended in order to come back to the default tunable 
>>value.
> 
> 
> Let me try to be clearer.  What is Alloc?  and why is AKT_UP
> associated with Alloc and AFK_DOWN associated with Free (whatever
> that means)?

Alloc stands for resource allocation: in a subsystem where resource 
allocation depends on a tunable value, we should tune up that value 
prior to the alllocation itself. Let's come back to the ipc subsystem 
example: ipc_addid() is the routine that adds an entry to an ipc array. 
The 1st thing it does (via grow_ary()) is to allocate some more space 
for the ipc array if needed, i.e. if the ipc tunable value has 
increased. That's why the tunable should be tuned up before calling 
ipc_addid().

AKT_DOWN is the reverse operation: we are freeing resources, so the 
tunble has no reason to remain with a big value.

> 
> 
> 
>>I agree with you: today it has quite no effect, except on the tunable 
>>value. If we take the ipc's example, grow_ary() just returns if the new 
>>tunable value happens to be lower than the previous one.
>>But we can imagine, in the future, that grow_ary could deallocate the 
>>unused memory.
>>+ in that particular case, lowering the tunable value makes the 1st loop 
>>in ipc_addid() shorter.
>>
>>
>>>How does one activate a tunable for downward adjustment?
>>
>>Actually a tunable is activated to be dynamically adjusted (whatever the 
>>direction).
>>But you are giving me an idea for a future enhancement: we can imagine a 
>>tunable that could be allowed to increase only (or decrease only). In 
>>that case, we should move the autotune sysfs attribute into an 'up' and 
>>a 'down' attribute?
> 
> 
> Couldn't the tunable owner just adjust the min value to a new
> (larger) min value, e.g.?

You're completely right: setting the min value to the default one should 
be enough!

> 
> 
> 
>>>>+extern void fork_late_init(void);
>>>
>>>
>>>Looks like the wrong header file for that extern.
>>>
>>>
>>
>>Actually, I wanted the changes to the existing kernel files to be as 
>>small as possible. That's why everything is concentrated, whenever 
>>possible, in the added files.
> 
> 
> I suppose that's OK for review, but it shouldn't be merged that way.
> 
> ---
> ~Randy
> 


Regards,
Nadia


  reply	other threads:[~2007-01-25 16:58 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-16  6:15 [RFC][PATCH 0/6] Automatice kernel tunables (AKT) Nadia.Derbey
2007-01-16  6:15 ` [RFC][PATCH 1/6] Tunable structure and registration routines Nadia.Derbey
2007-01-25  0:32   ` Randy Dunlap
2007-01-25 16:26     ` Nadia Derbey
2007-01-25 16:34       ` Randy Dunlap
2007-01-25 17:01         ` Nadia Derbey [this message]
2007-01-16  6:15 ` [RFC][PATCH 2/6] auto_tuning activation Nadia.Derbey
2007-01-16  6:15 ` [RFC][PATCH 3/6] tunables associated kobjects Nadia.Derbey
2007-01-16  6:15 ` [RFC][PATCH 4/6] min and max kobjects Nadia.Derbey
2007-01-24 22:41   ` Randy Dunlap
2007-01-25 16:34     ` Nadia Derbey
2007-01-16  6:15 ` [RFC][PATCH 5/6] per namespace tunables Nadia.Derbey
2007-01-24 22:41   ` Randy Dunlap
2007-01-16  6:15 ` [RFC][PATCH 6/6] automatic tuning applied to some kernel components Nadia.Derbey
2007-01-22 19:56   ` Andrew Morton
2007-01-23 14:40     ` Nadia Derbey
2007-02-07 21:18       ` Eric W. Biederman
2007-02-09 12:27         ` Nadia Derbey
2007-02-09 18:35           ` Eric W. Biederman
2007-02-13  9:06             ` Nadia Derbey
2007-02-13 10:10               ` Eric W. Biederman
2007-02-15  7:07                 ` Nadia Derbey
2007-02-15  7:49                   ` Eric W. Biederman
2007-02-15  8:25                     ` Nadia Derbey

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=45B8E26E.5000104@bull.net \
    --to=nadia.derbey@bull.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=randy.dunlap@oracle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.