From: Kay Sievers <kay.sievers@vrfy.org>
To: Greg KH <greg@kroah.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Nick Piggin <nickpiggin@yahoo.com.au>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, Jens Axboe <jens.axboe@oracle.com>,
Fengguang Wu <fengguang.wu@gmail.com>,
Trond Myklebust <trond.myklebust@fys.uio.no>,
Miklos Szeredi <miklos@szeredi.hu>
Subject: Re: per BDI dirty limit (was Re: -mm merge plans for 2.6.24)
Date: Sat, 27 Oct 2007 23:08:37 +0200 [thread overview]
Message-ID: <1193519317.5776.14.camel@lov.site> (raw)
In-Reply-To: <20071027160203.GA5709@kroah.com>
On Sat, 2007-10-27 at 09:02 -0700, Greg KH wrote:
> On Sat, Oct 27, 2007 at 10:39:59AM +0200, Peter Zijlstra wrote:
> > On Fri, 2007-10-26 at 19:40 -0700, Greg KH wrote:
> > > On Sat, Oct 27, 2007 at 03:18:08AM +0200, Peter Zijlstra wrote:
> > > > On Fri, 2007-10-26 at 22:04 +0200, Peter Zijlstra wrote:
> > > > > This crashes and burns on bootup, but I'm too tired to figure out what I
> > > > > did wrong... will give it another try tomorrow..
> > > >
> > > > Ok, can't sleep.. took a look. I have several problems here.
> > > >
> > > > The thing that makes it go *boom* is the __ATTR_NULL. Removing that
> > > > makes it boot. Albeit it then warns me of multiple duplicate sysfs
> > > > objects, all named "bdi".
> > > I'll look at this and see what I can come up with. Would you just like
> > > a whole new patch, or one against this one?
> >
> > Sorry for the grumpy note, I get that way at 3.30 am. Maybe I ought not
> > have mailed :-/
> >
> > This is the code I had at that time.
>
> Ah, I see a few problems. Here, try this version instead. It's
> compile-tested only, and should be a lot simpler.
>
> Note, we still are not setting the parent to the new bdi structure
> properly, so the devices will show up in /sys/devices/virtual/ instead
> of in their proper location. To do this, we need the parent of the
> device, which I'm not so sure what it should be (block device? block
> device controller?)
Assigning a parent device will only work with the upcoming conversion of
the raw kobjects in the block subsystem to "struct device".
A few comments to the patch:
> --- a/include/linux/string.h
> +++ b/include/linux/string.h
> @@ -8,6 +8,7 @@
> #include <linux/compiler.h> /* for inline */
> #include <linux/types.h> /* for size_t */
> #include <linux/stddef.h> /* for NULL */
> +#include <stdarg.h>
>
> #ifdef __cplusplus
> extern "C" {
> @@ -111,6 +112,9 @@ extern void *kmemdup(const void *src, si
> extern char **argv_split(gfp_t gfp, const char *str, int *argcp);
> extern void argv_free(char **argv);
>
> +char *kvprintf(const char *fmt, va_list args);
> +char *kprintf(const char *fmt, ...);
Why is that here? I don't think we need this when we use the existing:
kvasprintf(GFP_KERNEL, fmt, args)
> --- a/mm/backing-dev.c
> +++ b/mm/backing-dev.c
> +
> +static struct device_attribute bdi_dev_attrs[] = {
> + __ATTR(readahead, 0644, readahead_show, readahead_store),
> + __ATTR_RO(reclaimable),
> + __ATTR_RO(writeback),
> + __ATTR_RO(dirty),
> + __ATTR_RO(bdi_dirty),
> +};
Default attributes will need the NULL termination back (see below).
> +static __init int bdi_class_init(void)
> +{
> + bdi_class = class_create(THIS_MODULE, "bdi");
> + return 0;
> +}
> +
> +__initcall(bdi_class_init);
> +
> +int bdi_register(struct backing_dev_info *bdi, const char *fmt, ...)
This function should accept a: "struct device *parent" and all callers
just pass NULL until the block layer conversion gets merged.
> +{
> + char *name;
> + va_list args;
> + int ret = -ENOMEM;
> + int i;
> +
> + va_start(args, fmt);
> + name = kvprintf(fmt, args);
kvasprintf(GFP_KERNEL, fmt, args);
> + va_end(args);
> +
> + if (!name)
> + return -ENOMEM;
> +
> + bdi->dev = device_create(bdi_class, NULL, MKDEV(0,0), name);
The parent should be passed here.
> + for (i = 0; i < ARRAY_SIZE(bdi_dev_attrs); i++) {
> + ret = device_create_file(bdi->dev, &bdi_dev_attrs[i]);
> + if (ret)
> + break;
> + }
> + if (ret) {
> + while (--i >= 0)
> + device_remove_file(bdi->dev, &bdi_dev_attrs[i]);
> + device_unregister(bdi->dev);
> + bdi->dev = NULL;
> + }
All this open-coded attribute stuff should go away and be replaced by:
bdi_class->dev_attrs = bdi_dev_attrs;
Otherwise at event time the attributes are not created and stuff hooking
into the events will not be able to set values. Also, the core will do
proper add/remove and error handling then.
Thanks,
Kay
next prev parent reply other threads:[~2007-10-27 21:07 UTC|newest]
Thread overview: 146+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-01 21:22 -mm merge plans for 2.6.24 Andrew Morton
2007-10-01 21:34 ` wibbling over the cpuset shed domain connnection Paul Jackson
2007-10-02 12:36 ` Nick Piggin
2007-10-03 5:21 ` Paul Jackson
2007-10-02 13:12 ` Nick Piggin
2007-10-03 7:00 ` Paul Jackson
2007-10-03 10:57 ` Andrew Morton
2007-10-02 4:21 ` Memory controller merge (was Re: -mm merge plans for 2.6.24) Balbir Singh
2007-10-02 4:21 ` Balbir Singh
2007-10-02 15:46 ` Hugh Dickins
2007-10-02 15:46 ` Hugh Dickins
2007-10-03 8:13 ` Balbir Singh
2007-10-03 8:13 ` Balbir Singh
2007-10-03 18:47 ` Hugh Dickins
2007-10-03 18:47 ` Hugh Dickins
2007-10-04 4:16 ` Balbir Singh
2007-10-04 4:16 ` Balbir Singh
2007-10-04 13:16 ` Hugh Dickins
2007-10-04 13:16 ` Hugh Dickins
2007-10-05 3:07 ` Balbir Singh
2007-10-05 3:07 ` Balbir Singh
2007-10-07 17:41 ` Hugh Dickins
2007-10-07 17:41 ` Hugh Dickins
2007-10-08 2:54 ` Balbir Singh
2007-10-08 2:54 ` Balbir Singh
2007-10-04 16:10 ` Paul Menage
2007-10-04 16:10 ` Paul Menage
2007-10-10 21:07 ` Rik van Riel
2007-10-10 21:07 ` Rik van Riel
2007-10-11 6:33 ` Balbir Singh
2007-10-11 6:33 ` Balbir Singh
2007-10-02 6:18 ` x86 patches was Re: -mm merge plans for 2.6.24 Andi Kleen
2007-10-02 6:32 ` Andrew Morton
2007-10-02 7:01 ` Andi Kleen
2007-10-02 7:18 ` Andrew Morton
2007-10-02 7:36 ` KAMEZAWA Hiroyuki
2007-10-02 7:43 ` Andrew Morton
2007-10-02 8:16 ` KAMEZAWA Hiroyuki
2007-10-02 10:48 ` Yasunori Goto
2007-10-02 18:18 ` Christoph Lameter
2007-10-02 17:25 ` Lee Schermerhorn
2007-10-02 16:40 ` Nish Aravamudan
2007-10-02 17:17 ` Lee Schermerhorn
2007-10-02 18:16 ` Christoph Lameter
2007-10-02 7:55 ` Matt Mackall
2007-10-02 7:59 ` Andi Kleen
2007-10-02 9:26 ` Andy Whitcroft
2007-10-02 7:37 ` Ingo Molnar
2007-10-02 7:46 ` Andi Kleen
2007-10-02 7:58 ` Thomas Gleixner
2007-10-02 7:59 ` v4l-stk11xx* [Was: -mm merge plans for 2.6.24] Jiri Slaby
2007-10-02 8:08 ` Wireless damage " Jiri Slaby
2007-10-02 8:10 ` Jiri Slaby
2007-10-02 17:37 ` John W. Linville
2007-10-02 8:17 ` per BDI dirty limit (was Re: -mm merge plans for 2.6.24) Peter Zijlstra
2007-10-02 8:28 ` Fengguang Wu
2007-10-02 8:28 ` Fengguang Wu
2007-10-02 8:31 ` Andrew Morton
2007-10-02 8:48 ` Peter Zijlstra
2007-10-02 10:31 ` Kay Sievers
2007-10-02 10:44 ` Peter Zijlstra
2007-10-02 10:47 ` Fengguang Wu
2007-10-02 10:47 ` Fengguang Wu
2007-10-02 11:22 ` Kay Sievers
2007-10-02 11:28 ` Fengguang Wu
2007-10-02 11:28 ` Fengguang Wu
2007-10-02 11:21 ` Kay Sievers
2007-10-02 11:40 ` Peter Zijlstra
2007-10-02 12:05 ` Nick Piggin
2007-10-03 10:15 ` Kay Sievers
2007-10-03 10:37 ` Peter Zijlstra
2007-10-03 13:35 ` Kay Sievers
2007-10-03 13:58 ` Peter Zijlstra
2007-10-26 14:48 ` Peter Zijlstra
2007-10-26 15:06 ` Miklos Szeredi
2007-10-26 15:10 ` Kay Sievers
2007-10-26 15:22 ` Peter Zijlstra
2007-10-26 15:33 ` Kay Sievers
2007-10-26 15:33 ` Peter Zijlstra
2007-10-26 15:55 ` Kay Sievers
2007-10-26 20:04 ` Peter Zijlstra
2007-10-27 1:18 ` Peter Zijlstra
2007-10-27 2:40 ` Greg KH
2007-10-27 8:39 ` Peter Zijlstra
2007-10-27 16:02 ` Greg KH
2007-10-27 16:07 ` Peter Zijlstra
2007-10-27 21:08 ` Kay Sievers [this message]
2007-10-27 21:35 ` Peter Zijlstra
2007-10-28 7:10 ` Greg KH
2007-11-02 13:15 ` Peter Zijlstra
2007-11-02 13:50 ` Kay Sievers
2007-11-02 13:54 ` Peter Zijlstra
2007-11-02 14:17 ` Peter Zijlstra
2007-11-02 14:32 ` Kay Sievers
2007-11-02 14:59 ` [PATCH] mm: sysfs: expose the BDI object in sysfs Peter Zijlstra
2007-11-02 15:13 ` Kay Sievers
2007-10-26 16:37 ` per BDI dirty limit (was Re: -mm merge plans for 2.6.24) Trond Myklebust
2007-12-14 14:50 ` Peter Zijlstra
2007-12-14 15:14 ` Miklos Szeredi
2007-12-14 15:54 ` Peter Zijlstra
2007-10-02 14:38 ` Kay Sievers
2007-10-03 11:00 ` Martin Knoblauch
2007-10-02 8:39 ` writeback fixes Fengguang Wu
2007-10-02 8:39 ` Fengguang Wu
2007-10-02 16:06 ` kswapd min order, slub max order [was Re: -mm merge plans for 2.6.24] Hugh Dickins
2007-10-02 16:06 ` Hugh Dickins
2007-10-02 9:10 ` Nick Piggin
2007-10-02 9:10 ` Nick Piggin
2007-10-02 18:38 ` Mel Gorman
2007-10-02 18:38 ` Mel Gorman
2007-10-02 18:28 ` Christoph Lameter
2007-10-02 18:28 ` Christoph Lameter
2007-10-03 0:37 ` Christoph Lameter
2007-10-03 0:37 ` Christoph Lameter
2007-10-02 16:12 ` -mm merge plans for 2.6.24 Pekka Enberg
2007-10-02 16:21 ` new aops merge [was Re: -mm merge plans for 2.6.24] Hugh Dickins
2007-10-02 16:21 ` Hugh Dickins
2007-10-02 17:45 ` remove zero_page (was Re: -mm merge plans for 2.6.24) Nick Piggin
2007-10-02 17:45 ` Nick Piggin
2007-10-03 10:58 ` Andrew Morton
2007-10-03 10:58 ` Andrew Morton
2007-10-03 15:21 ` Linus Torvalds
2007-10-03 15:21 ` Linus Torvalds
2007-10-08 15:17 ` Nick Piggin
2007-10-08 15:17 ` Nick Piggin
2007-10-09 13:00 ` Hugh Dickins
2007-10-09 13:00 ` Hugh Dickins
2007-10-09 14:52 ` Linus Torvalds
2007-10-09 14:52 ` Linus Torvalds
2007-10-09 9:31 ` Nick Piggin
2007-10-09 9:31 ` Nick Piggin
2007-10-10 2:22 ` Linus Torvalds
2007-10-10 2:22 ` Linus Torvalds
2007-10-09 10:15 ` Nick Piggin
2007-10-09 10:15 ` Nick Piggin
2007-10-10 3:06 ` Linus Torvalds
2007-10-10 3:06 ` Linus Torvalds
2007-10-10 4:06 ` Hugh Dickins
2007-10-10 4:06 ` Hugh Dickins
2007-10-10 5:20 ` Linus Torvalds
2007-10-10 5:20 ` Linus Torvalds
2007-10-09 14:30 ` Nick Piggin
2007-10-09 14:30 ` Nick Piggin
2007-10-10 15:04 ` Linus Torvalds
2007-10-10 15:04 ` Linus Torvalds
2007-10-03 19:50 ` A kernel Tracing interface " David Wilder
2007-10-09 9:19 ` r/o bind mounts, was Re: -mm merge plans for 2.6.24 Christoph Hellwig
2007-10-13 8:44 ` Borislav Petkov
2007-10-13 8:52 ` Andrew Morton
2007-10-13 11:45 ` Borislav Petkov
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=1193519317.5776.14.camel@lov.site \
--to=kay.sievers@vrfy.org \
--cc=akpm@linux-foundation.org \
--cc=fengguang.wu@gmail.com \
--cc=greg@kroah.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=nickpiggin@yahoo.com.au \
--cc=peterz@infradead.org \
--cc=trond.myklebust@fys.uio.no \
/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.