From: Bernardo Innocenti <bernie@develer.com>
To: Tom Rini <trini@kernel.crashing.org>
Cc: Willy Tarreau <willy@w.ods.org>, Christoph Hellwig <hch@lst.de>,
uClinux development list <uclinux-dev@uclinux.org>,
linux-kernel@vger.kernel.org, Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [uClinux-dev] Kernel 2.6 size increase (PATCH)
Date: Wed, 30 Jul 2003 18:45:27 +0200 [thread overview]
Message-ID: <200307301845.27401.bernie@develer.com> (raw)
In-Reply-To: <20030730153527.GB27214@ip68-0-152-218.tc.ph.cox.net>
On Wednesday 30 July 2003 17:35, Tom Rini wrote:
> > I tried stripping sysfs away. I just saved 7KB and got a kernel that
> > couldn't boot because root device translation depends on sysfs ;-)
>
> Now that someone has gone down the path (and, thanks for doing it), we
> know how much is saved and what needs to be done to get it to work.
> Lets just hope it doesn't grow that much more.
Here's the patch, in case someone cares trying it.
Please DON'T apply as-is to shipping kernels: as I was saying,
removing sysfs like this makes the system unable to boot.
---------------------------------------------------------------------------
Make sysfs optional for embedded systems.
Applies as-is to 2.6.0-test1.
diff -Nru linux-2.6.0-test1-with_elevator_patch/init/Kconfig linux-2.6.0-test1/init/Kconfig
--- linux-2.6.0-test1-with_elevator_patch/init/Kconfig 2003-07-26 14:25:48.000000000 +0200
+++ linux-2.6.0-test1/init/Kconfig 2003-07-26 16:02:01.000000000 +0200
@@ -141,6 +141,13 @@
Disabling this option will cause the kernel to be built without
support for epoll family of system calls.
+config SYS_FS
+ bool "/sys file system support" if EMBEDDED
+ default y
+ help
+ Disabling this option will cause the kernel to be built without
+ sysfs, which is mostly needed for power management and hot-plug support.
+
source "drivers/block/Kconfig.iosched"
endmenu # General setup
diff -Nru linux-2.6.0-test1-with_elevator_patch/fs/Makefile linux-2.6.0-test1/fs/Makefile
--- linux-2.6.0-test1-with_elevator_patch/fs/Makefile 2003-07-14 05:34:42.000000000 +0200
+++ linux-2.6.0-test1/fs/Makefile 2003-07-26 01:03:59.000000000 +0200
@@ -43,7 +43,7 @@
obj-$(CONFIG_PROC_FS) += proc/
obj-y += partitions/
-obj-y += sysfs/
+obj-$(CONFIG_SYS_FS) += sysfs/
obj-y += devpts/
obj-$(CONFIG_PROFILING) += dcookies.o
@@ -74,7 +74,7 @@
obj-$(CONFIG_NLS) += nls/
obj-$(CONFIG_SYSV_FS) += sysv/
obj-$(CONFIG_SMB_FS) += smbfs/
-obj-$(CONFIG_CIFS) += cifs/
+obj-$(CONFIG_CIFS) += cifs/
obj-$(CONFIG_NCP_FS) += ncpfs/
obj-$(CONFIG_HPFS_FS) += hpfs/
obj-$(CONFIG_NTFS_FS) += ntfs/
diff -Nru linux-2.6.0-test1-with_elevator_patch/fs/namespace.c linux-2.6.0-test1/fs/namespace.c
--- linux-2.6.0-test1-with_elevator_patch/fs/namespace.c 2003-07-14 05:35:52.000000000 +0200
+++ linux-2.6.0-test1/fs/namespace.c 2003-07-26 15:39:05.000000000 +0200
@@ -1154,7 +1154,11 @@
d++;
i--;
} while (i);
+
+#ifdef CONFIG_SYSFS
sysfs_init();
+#endif /* CONFIG_SYSFS */
+
init_rootfs();
init_mount_tree();
}
diff -Nru linux-2.6.0-test1-with_elevator_patch/include/linux/sysfs.h linux-2.6.0-test1/include/linux/sysfs.h
--- linux-2.6.0-test1-with_elevator_patch/include/linux/sysfs.h 2003-07-14 05:32:44.000000000 +0200
+++ linux-2.6.0-test1/include/linux/sysfs.h 2003-07-26 15:28:12.000000000 +0200
@@ -25,36 +25,101 @@
ssize_t (*write)(struct kobject *, char *, loff_t, size_t);
};
-int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr);
-int sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr);
-
struct sysfs_ops {
ssize_t (*show)(struct kobject *, struct attribute *,char *);
ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
};
+#ifdef CONFIG_SYS_FS
+
extern int
-sysfs_create_dir(struct kobject *);
+sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr);
+
+extern int
+sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr);
+
+extern int
+sysfs_create_dir(struct kobject * kobj);
extern void
-sysfs_remove_dir(struct kobject *);
+sysfs_remove_dir(struct kobject * kobj);
extern void
-sysfs_rename_dir(struct kobject *, char *new_name);
+sysfs_rename_dir(struct kobject * kobj, char *new_name);
extern int
-sysfs_create_file(struct kobject *, struct attribute *);
+sysfs_create_file(struct kobject * kobj, struct attribute * attr);
extern int
-sysfs_update_file(struct kobject *, struct attribute *);
+sysfs_update_file(struct kobject * kobj, struct attribute * attr);
extern void
-sysfs_remove_file(struct kobject *, struct attribute *);
+sysfs_remove_file(struct kobject * kobj, struct attribute * attr);
extern int
sysfs_create_link(struct kobject * kobj, struct kobject * target, char * name);
extern void
-sysfs_remove_link(struct kobject *, char * name);
+sysfs_remove_link(struct kobject * kobj, char * name);
+
+#else /* !CONFIG_SYS_FS */
+
+static inline int
+sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr)
+{
+ return 0;
+}
+
+static inline int
+sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr)
+{
+ return 0;
+}
+
+static inline int
+sysfs_create_dir(struct kobject * kobj)
+{
+ return 0;
+}
+
+static inline void
+sysfs_remove_dir(struct kobject * kobj)
+{
+}
+
+static inline void
+sysfs_rename_dir(struct kobject * kobj, char *new_name)
+{
+}
+
+static inline int
+sysfs_create_file(struct kobject * kobj, struct attribute * attr)
+{
+ return 0;
+}
+
+static inline int
+sysfs_update_file(struct kobject * kobj, struct attribute * attr)
+{
+ return 0;
+}
+
+static inline void
+sysfs_remove_file(struct kobject * kobj, struct attribute * attr)
+{
+}
+
+static inline int
+sysfs_create_link(struct kobject * kobj, struct kobject * target, char * name)
+{
+ return 0;
+}
+
+static inline void
+sysfs_remove_link(struct kobject * kobj, char * name)
+{
+}
+
+#endif /* !CONFIG_SYS_FS */
#endif /* _SYSFS_H_ */
--
// Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/ http://www.develer.com/
Please don't send Word attachments - http://www.gnu.org/philosophy/no-word-attachments.html
prev parent reply other threads:[~2003-07-30 16:45 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-23 18:46 Kernel 2.6 size increase Bernardo Innocenti
2003-07-23 19:14 ` Richard B. Johnson
2003-07-23 20:07 ` David S. Miller
2003-07-23 21:47 ` Randy.Dunlap
2003-07-23 19:32 ` [uClinux-dev] " Christoph Hellwig
2003-07-23 20:11 ` David S. Miller
2003-07-23 20:15 ` Christoph Hellwig
2003-07-23 20:22 ` David S. Miller
2003-07-23 20:27 ` Christoph Hellwig
2003-07-23 22:35 ` [uClinux-dev] Kernel 2.6 size increase - get_current()? Bernardo Innocenti
2003-07-23 22:37 ` Alan Cox
2003-07-23 23:00 ` Bernardo Innocenti
2003-07-24 5:06 ` David McCullough
2003-07-24 11:28 ` Alan Cox
2003-07-24 12:04 ` David McCullough
2003-07-24 14:48 ` Alan Cox
2003-07-25 18:25 ` bill davidsen
2003-07-24 15:30 ` Hollis Blanchard
2003-07-24 19:37 ` Alan Cox
2003-07-24 19:51 ` Hollis Blanchard
2003-07-24 21:20 ` J.A. Magallon
2003-07-25 4:22 ` Otto Solares
2003-07-25 14:38 ` Hollis Blanchard
2003-07-28 3:19 ` Miles Bader
2003-07-28 8:14 ` Ihar "Philips" Filipau
2003-07-28 8:58 ` Miles Bader
2003-07-28 9:03 ` Ihar "Philips" Filipau
2003-07-23 21:57 ` [uClinux-dev] Kernel 2.6 size increase Bernardo Innocenti
2003-07-23 22:07 ` Bernardo Innocenti
2003-07-23 22:27 ` Willy Tarreau
2003-07-23 22:34 ` Alan Cox
2003-07-24 20:27 ` Bernardo Innocenti
2003-07-25 15:46 ` Christoph Hellwig
2003-07-25 23:55 ` [PATCH] Make I/O schedulers optional (Was: Re: Kernel 2.6 size increase) Bernardo Innocenti
2003-07-26 8:17 ` Andrew Morton
2003-07-26 12:40 ` Bernardo Innocenti
2003-07-26 14:07 ` Jens Axboe
2003-07-26 23:42 ` Bernardo Innocenti
2003-07-26 23:41 ` Jens Axboe
2003-07-28 17:13 ` [uClinux-dev] Kernel 2.6 size increase Nicolas Pitre
2003-07-28 23:02 ` Bernardo Innocenti
2003-07-29 2:36 ` Miles Bader
2003-08-08 13:25 ` [uClinux-dev] " David Woodhouse
2003-08-08 14:37 ` Bernardo Innocenti
2003-08-08 14:43 ` David Woodhouse
2003-07-25 18:16 ` bill davidsen
2003-07-29 22:29 ` Tom Rini
2003-07-29 22:48 ` Alan Cox
2003-07-29 23:06 ` Tom Rini
2003-07-30 2:07 ` Miles Bader
2003-07-30 15:33 ` Tom Rini
2003-07-31 1:49 ` Miles Bader
2003-07-31 4:17 ` Tom Rini
2003-07-31 5:03 ` Miles Bader
2003-07-31 15:24 ` Tom Rini
2003-07-30 2:49 ` [uClinux-dev] " Bernardo Innocenti
2003-07-30 15:35 ` Tom Rini
2003-07-30 16:45 ` Bernardo Innocenti [this message]
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=200307301845.27401.bernie@develer.com \
--to=bernie@develer.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=trini@kernel.crashing.org \
--cc=uclinux-dev@uclinux.org \
--cc=willy@w.ods.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.