All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: "Paul Menage" <menage@google.com>
Cc: pj@sgi.com, xemul@openvz.org, balbir@in.ibm.com,
	serue@us.ibm.com, linux-kernel@vger.kernel.org,
	containers@lists.linux-foundation.org
Subject: Re: [RFC/PATCH 1/8]: CGroup Files: Add locking mode to cgroups control files
Date: Tue, 13 May 2008 14:32:06 -0700	[thread overview]
Message-ID: <20080513143206.ef259829.akpm@linux-foundation.org> (raw)
In-Reply-To: <6599ad830805131417m4f8cc2e6iac42c0fb089a8cb1@mail.gmail.com>

On Tue, 13 May 2008 14:17:29 -0700
"Paul Menage" <menage@google.com> wrote:

> On Tue, May 13, 2008 at 1:01 PM, Andrew Morton
> <akpm@linux-foundation.org> wrote:
> >
> >  This, umm, doesn't seem to do much to make the kernel a simpler place.
> >
> >  Do we expect to gain much from this?  Hope so...  What?
> >
> 
> The goal is to prevent cgroup_mutex becoming a BKL for cgroups, to
> make it easier for subsystems to lock just the bits that they need to
> remain stable rather than everything.

OK.

But do we ever expect that cgroup_mutex will be taken with much
frequency, or held for much time?  If it's only taken during, say,
configuration of a group or during a query of that configuration then
perhaps we'll be OK.

otoh a per-cgroup lock would seem more appropriate than a global.

> >
> >  Vague handwaving: lockdep doesn't know anything about any of this.
> >  Whereas if we were more conventional in using separate locks and
> >  suitable lock types for each application, we would retain full lockdep
> >  coverage.
> 
> That's a good point - I'd not thought about lockdep. That's a good
> argument in favour of not having the locking done in the framework.
> 
> Stepping back a bit, the idea is definitely that where appropriate
> subsystems will use their own fine-grained locking. E.g. the
> res_counter abstraction does this already with a spinlock in each
> res_counter, and cpusets has the global callback_mutex that just
> synchronizes cpuset operations. But there are some cases where they
> need a bit of help from cgroups, such as when doing operations that
> require stable hierarchies, task membership of cgroups, etc.
> 
> Right now the default behaviour is to call cgroup_lock(), which I'd
> like to get away from. Having the framework do the locking results in
> less need for cleanup code in the subsystem handlers themselves, but
> that's not an unassailable argument for doing it that way.

Yes, caller-provided locking is the usual pattern in-kernel.  Based on
painful experience :(

> >  I'm trying to work out what protects static_buffer?
> >
> >  Why does it need to be static anyway?  64 bytes on-stack is OK.
> >
> 
> As Matt observed, this is just a poorly-named variable. How about
> "small_buffer"?

local_buffer ;)

  parent reply	other threads:[~2008-05-13 21:32 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-13  6:37 [RFC/PATCH 0/8]: CGroup Files: Clean up locking and boilerplate menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37 ` menage
2008-05-13  6:37 ` [RFC/PATCH 1/8]: CGroup Files: Add locking mode to cgroups control files menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage
2008-05-13  9:23   ` Li Zefan
2008-05-13 21:07     ` Paul Menage
2008-05-14  1:30       ` Li Zefan
2008-05-14  1:40         ` Paul Menage
     [not found]         ` <482A40C0.8030708-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2008-05-14  1:40           ` Paul Menage
     [not found]       ` <6599ad830805131407y3d94016cn773ba21a42b6098c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-14  1:30         ` Li Zefan
     [not found]     ` <48295E11.2000003-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2008-05-13 21:07       ` Paul Menage
     [not found]   ` <20080513071522.133586000-B63HFAS8fGlSzHKm+aFRNNkmqwFzkYv6@public.gmane.org>
2008-05-13  9:23     ` Li Zefan
2008-05-13 20:01     ` Andrew Morton
2008-05-13 20:01   ` Andrew Morton
2008-05-13 20:38     ` Matthew Helsley
     [not found]       ` <1210711138.21217.49.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-05-13 20:43         ` Andrew Morton
2008-05-13 20:43           ` Andrew Morton
     [not found]     ` <20080513130127.fcd46a41.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-05-13 20:38       ` Matthew Helsley
2008-05-13 21:17       ` Paul Menage
2008-05-13 21:17     ` Paul Menage
     [not found]       ` <6599ad830805131417m4f8cc2e6iac42c0fb089a8cb1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-13 21:32         ` Andrew Morton
2008-05-13 21:32       ` Andrew Morton [this message]
2008-05-13 21:46         ` Paul Menage
2008-05-14  1:59         ` Paul Jackson
     [not found]         ` <20080513143206.ef259829.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-05-13 21:46           ` Paul Menage
2008-05-14  1:59           ` Paul Jackson
2008-05-13  6:37 ` [RFC/PATCH 2/8]: CGroup Files: Add a cgroup write_string control file method menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage
2008-05-13 20:07   ` Andrew Morton
2008-05-13 21:01     ` Paul Menage
     [not found]     ` <20080513130710.36bc65f7.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-05-13 21:01       ` Paul Menage
     [not found]   ` <20080513071522.301139000-B63HFAS8fGlSzHKm+aFRNNkmqwFzkYv6@public.gmane.org>
2008-05-13 20:07     ` Andrew Morton
2008-05-13 20:44     ` Matt Helsley
2008-05-13 20:44   ` Matt Helsley
2008-05-13  6:37 ` [RFC/PATCH 3/8]: CGroup Files: Move the release_agent file to use typed handlers menage
     [not found]   ` <20080513071522.470099000-B63HFAS8fGlSzHKm+aFRNNkmqwFzkYv6@public.gmane.org>
2008-05-13 20:08     ` Andrew Morton
2008-05-13 20:08   ` Andrew Morton
2008-05-13 21:32     ` Paul Menage
     [not found]     ` <20080513130833.cc03caea.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-05-13 21:32       ` Paul Menage
2008-05-13  6:37 ` menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37 ` [RFC/PATCH 4/8]: CGroup Files: Move notify_on_release file to separate write handler menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage
2008-05-13  6:37 ` [RFC/PATCH 5/8]: CGroup Files: Turn attach_task_by_pid directly into a cgroup " menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage
2008-05-13  6:37 ` [RFC/PATCH 6/8]: CGroup Files: Remove cpuset_common_file_write() menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage
     [not found]   ` <20080513071522.984545000-B63HFAS8fGlSzHKm+aFRNNkmqwFzkYv6@public.gmane.org>
2008-05-13 20:11     ` Andrew Morton
2008-05-13 20:11       ` Andrew Morton
2008-05-13 21:27       ` Paul Menage
     [not found]       ` <20080513131134.8b1cefe2.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-05-13 21:27         ` Paul Menage
2008-05-13  6:37 ` [RFC/PATCH 7/8]: CGroup Files: Convert devcgroup_access_write() into a cgroup write_string() handler menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage
2008-05-13  6:37 ` [RFC/PATCH 8/8]: CGroup Files: Convert res_counter_write() to be a cgroups " menage-hpIqsD4AKlfQT0dZR+AlfA
2008-05-13  6:37   ` menage

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=20080513143206.ef259829.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=balbir@in.ibm.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=menage@google.com \
    --cc=pj@sgi.com \
    --cc=serue@us.ibm.com \
    --cc=xemul@openvz.org \
    /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.