linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Patch] eliminate CLONE_* duplications
@ 2005-09-21  9:21 Herbert Poetzl
  2005-09-21 10:55 ` Roman Zippel
  0 siblings, 1 reply; 10+ messages in thread
From: Herbert Poetzl @ 2005-09-21  9:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux Kernel ML


several archs require some CLONE_* flags (usually
CLONE_VM and CLONE_UNTRACED) but can not include
<linux/sched.h> because of C specific code ...

some archs (alpha,cris,ia64,ppc/64,v850) map those
values via asm-offsets.c, others (cris-*,hppa/64)
redefine the values in the asm code ...

this patch moves the relevant defines into a
separate <linux/clone.h>, which is included by
<linux/sched.h>, removes all asm-offsets.c entries
and adds the <linux/clone.h> as include where the
CLONE_* values are used

alternatively I could imagine to add some ugly
#ifdefs to make <linux/sched.h> asm safe :)

patch is compile tested on relevant archs.
please consider for inclusion.

TIA,
Herbert



Signed-off-by: Herbert Poetzl <herbert@13thfloor.at>
---
diff -NurpP --minimal linux-2.6.14-rc1/arch/alpha/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/alpha/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/alpha/kernel/asm-offsets.c	2004-08-14 12:56:24 +0200
+++ linux-2.6.14-rc1-cl01/arch/alpha/kernel/asm-offsets.c	2005-09-21 07:03:09 +0200
@@ -33,8 +33,6 @@ void foo(void)
 
 	DEFINE(SIZEOF_PT_REGS, sizeof(struct pt_regs));
 	DEFINE(PT_PTRACED, PT_PTRACED);
-	DEFINE(CLONE_VM, CLONE_VM);
-	DEFINE(CLONE_UNTRACED, CLONE_UNTRACED);
 	DEFINE(SIGCHLD, SIGCHLD);
 	BLANK();
 
diff -NurpP --minimal linux-2.6.14-rc1/arch/alpha/kernel/entry.S linux-2.6.14-rc1-cl01/arch/alpha/kernel/entry.S
--- linux-2.6.14-rc1/arch/alpha/kernel/entry.S	2005-09-20 00:37:08 +0200
+++ linux-2.6.14-rc1-cl01/arch/alpha/kernel/entry.S	2005-09-21 07:08:27 +0200
@@ -5,6 +5,7 @@
  */
 
 #include <linux/config.h>
+#include <linux/clone.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/pal.h>
diff -NurpP --minimal linux-2.6.14-rc1/arch/cris/arch-v10/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/cris/arch-v10/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/cris/arch-v10/kernel/asm-offsets.c	2004-08-14 12:55:32 +0200
+++ linux-2.6.14-rc1-cl01/arch/cris/arch-v10/kernel/asm-offsets.c	2005-09-21 08:44:21 +0200
@@ -40,8 +40,5 @@ int main(void)
 #undef ENTRY
 #define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
         ENTRY(pid);
-        BLANK();
-        DEFINE(LCLONE_VM, CLONE_VM);
-        DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
         return 0;
 }
diff -NurpP --minimal linux-2.6.14-rc1/arch/cris/arch-v10/kernel/entry.S linux-2.6.14-rc1-cl01/arch/cris/arch-v10/kernel/entry.S
--- linux-2.6.14-rc1/arch/cris/arch-v10/kernel/entry.S	2005-09-20 00:37:10 +0200
+++ linux-2.6.14-rc1-cl01/arch/cris/arch-v10/kernel/entry.S	2005-09-21 07:07:08 +0200
@@ -266,6 +266,7 @@
 #include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/sys.h>
+#include <linux/clone.h>
 #include <asm/unistd.h>
 #include <asm/arch/sv_addr_ag.h>
 #include <asm/errno.h>
diff -NurpP --minimal linux-2.6.14-rc1/arch/cris/arch-v32/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/cris/arch-v32/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/cris/arch-v32/kernel/asm-offsets.c	2005-08-29 22:24:51 +0200
+++ linux-2.6.14-rc1-cl01/arch/cris/arch-v32/kernel/asm-offsets.c	2005-09-21 08:44:35 +0200
@@ -42,8 +42,5 @@ int main(void)
 #undef ENTRY
 #define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
         ENTRY(pid);
-        BLANK();
-        DEFINE(LCLONE_VM, CLONE_VM);
-        DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
         return 0;
 }
diff -NurpP --minimal linux-2.6.14-rc1/arch/frv/kernel/kernel_thread.S linux-2.6.14-rc1-cl01/arch/frv/kernel/kernel_thread.S
--- linux-2.6.14-rc1/arch/frv/kernel/kernel_thread.S	2005-03-02 12:38:20 +0100
+++ linux-2.6.14-rc1-cl01/arch/frv/kernel/kernel_thread.S	2005-09-21 07:10:41 +0200
@@ -10,9 +10,9 @@
  */
 
 #include <linux/linkage.h>
+#include <linux/clone.h>
 #include <asm/unistd.h>
 
-#define CLONE_VM	0x00000100	/* set if VM shared between processes */
 #define	KERN_ERR	"<3>"
 
 	.section .rodata
diff -NurpP --minimal linux-2.6.14-rc1/arch/ia64/ia32/ia32_entry.S linux-2.6.14-rc1-cl01/arch/ia64/ia32/ia32_entry.S
--- linux-2.6.14-rc1/arch/ia64/ia32/ia32_entry.S	2005-09-20 00:37:11 +0200
+++ linux-2.6.14-rc1-cl01/arch/ia64/ia32/ia32_entry.S	2005-09-21 07:07:57 +0200
@@ -1,3 +1,4 @@
+#include <linux/clone.h>
 #include <asm/asmmacro.h>
 #include <asm/ia32.h>
 #include <asm/asm-offsets.h>
@@ -179,7 +180,7 @@ END(ia32_trace_syscall)
 
 GLOBAL_ENTRY(sys32_vfork)
 	alloc r16=ar.pfs,2,2,4,0;;
-	mov out0=IA64_CLONE_VFORK|IA64_CLONE_VM|SIGCHLD	// out0 = clone_flags
+	mov out0=CLONE_VFORK|CLONE_VM|SIGCHLD	// out0 = clone_flags
 	br.cond.sptk.few .fork1			// do the work
 END(sys32_vfork)
 
diff -NurpP --minimal linux-2.6.14-rc1/arch/ia64/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/ia64/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/ia64/kernel/asm-offsets.c	2005-09-20 00:37:11 +0200
+++ linux-2.6.14-rc1-cl01/arch/ia64/kernel/asm-offsets.c	2005-09-21 08:32:38 +0200
@@ -188,11 +188,7 @@ void foo(void)
 	DEFINE(IA64_SIGFRAME_HANDLER_OFFSET, offsetof (struct sigframe, handler));
 	DEFINE(IA64_SIGFRAME_SIGCONTEXT_OFFSET, offsetof (struct sigframe, sc));
 	BLANK();
-    /* for assembly files which can't include sched.h: */
-	DEFINE(IA64_CLONE_VFORK, CLONE_VFORK);
-	DEFINE(IA64_CLONE_VM, CLONE_VM);
 
-	BLANK();
 	DEFINE(IA64_CPUINFO_NSEC_PER_CYC_OFFSET,
 	       offsetof (struct cpuinfo_ia64, nsec_per_cyc));
 	DEFINE(IA64_CPUINFO_PTCE_BASE_OFFSET,
diff -NurpP --minimal linux-2.6.14-rc1/arch/parisc/kernel/entry.S linux-2.6.14-rc1-cl01/arch/parisc/kernel/entry.S
--- linux-2.6.14-rc1/arch/parisc/kernel/entry.S	2005-09-20 00:37:13 +0200
+++ linux-2.6.14-rc1-cl01/arch/parisc/kernel/entry.S	2005-09-21 07:09:46 +0200
@@ -23,6 +23,7 @@
  */
 
 #include <linux/config.h>
+#include <linux/clone.h>
 #include <asm/asm-offsets.h>
 
 /* we have the following possibilities to act on an interruption:
@@ -751,9 +752,6 @@ fault_vector_11:
 	 * for copy_thread/ret_ to properly set up the child.
 	 */
 
-#define CLONE_VM 0x100	/* Must agree with <linux/sched.h> */
-#define CLONE_UNTRACED 0x00800000
-
 	.export __kernel_thread, code
 	.import do_fork
 __kernel_thread:
diff -NurpP --minimal linux-2.6.14-rc1/arch/ppc/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/ppc/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/ppc/kernel/asm-offsets.c	2005-06-22 02:37:56 +0200
+++ linux-2.6.14-rc1-cl01/arch/ppc/kernel/asm-offsets.c	2005-09-21 07:04:04 +0200
@@ -119,8 +119,6 @@ main(void)
 	DEFINE(ORIG_GPR3, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, orig_gpr3));
 	DEFINE(RESULT, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, result));
 	DEFINE(TRAP, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, trap));
-	DEFINE(CLONE_VM, CLONE_VM);
-	DEFINE(CLONE_UNTRACED, CLONE_UNTRACED);
 	DEFINE(MM_PGD, offsetof(struct mm_struct, pgd));
 
 	/* About the CPU features table */
diff -NurpP --minimal linux-2.6.14-rc1/arch/ppc/kernel/misc.S linux-2.6.14-rc1-cl01/arch/ppc/kernel/misc.S
--- linux-2.6.14-rc1/arch/ppc/kernel/misc.S	2005-09-20 00:37:14 +0200
+++ linux-2.6.14-rc1-cl01/arch/ppc/kernel/misc.S	2005-09-21 07:06:12 +0200
@@ -14,6 +14,7 @@
 
 #include <linux/config.h>
 #include <linux/sys.h>
+#include <linux/clone.h>
 #include <asm/unistd.h>
 #include <asm/errno.h>
 #include <asm/processor.h>
diff -NurpP --minimal linux-2.6.14-rc1/arch/ppc64/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/ppc64/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/ppc64/kernel/asm-offsets.c	2005-09-20 00:37:15 +0200
+++ linux-2.6.14-rc1-cl01/arch/ppc64/kernel/asm-offsets.c	2005-09-21 07:04:11 +0200
@@ -160,9 +160,6 @@ int main(void)
 	DEFINE(_SRR0, STACK_FRAME_OVERHEAD+sizeof(struct pt_regs));
 	DEFINE(_SRR1, STACK_FRAME_OVERHEAD+sizeof(struct pt_regs)+8);
 
-	DEFINE(CLONE_VM, CLONE_VM);
-	DEFINE(CLONE_UNTRACED, CLONE_UNTRACED);
-
 	/* About the CPU features table */
 	DEFINE(CPU_SPEC_ENTRY_SIZE, sizeof(struct cpu_spec));
 	DEFINE(CPU_SPEC_PVR_MASK, offsetof(struct cpu_spec, pvr_mask));
diff -NurpP --minimal linux-2.6.14-rc1/arch/ppc64/kernel/misc.S linux-2.6.14-rc1-cl01/arch/ppc64/kernel/misc.S
--- linux-2.6.14-rc1/arch/ppc64/kernel/misc.S	2005-09-20 00:37:15 +0200
+++ linux-2.6.14-rc1-cl01/arch/ppc64/kernel/misc.S	2005-09-21 07:08:59 +0200
@@ -20,6 +20,7 @@
 
 #include <linux/config.h>
 #include <linux/sys.h>
+#include <linux/clone.h>
 #include <asm/unistd.h>
 #include <asm/errno.h>
 #include <asm/processor.h>
diff -NurpP --minimal linux-2.6.14-rc1/arch/v850/kernel/asm-offsets.c linux-2.6.14-rc1-cl01/arch/v850/kernel/asm-offsets.c
--- linux-2.6.14-rc1/arch/v850/kernel/asm-offsets.c	2005-09-20 00:37:17 +0200
+++ linux-2.6.14-rc1-cl01/arch/v850/kernel/asm-offsets.c	2005-09-21 07:04:25 +0200
@@ -53,9 +53,5 @@ int main (void)
 	/* error values */
 	DEFINE (ENOSYS, ENOSYS);
 
-	/* clone flag bits */
-	DEFINE (CLONE_VFORK, CLONE_VFORK);
-	DEFINE (CLONE_VM, CLONE_VM);
-
 	return 0;
 }
diff -NurpP --minimal linux-2.6.14-rc1/arch/v850/kernel/entry.S linux-2.6.14-rc1-cl01/arch/v850/kernel/entry.S
--- linux-2.6.14-rc1/arch/v850/kernel/entry.S	2005-09-20 00:37:17 +0200
+++ linux-2.6.14-rc1-cl01/arch/v850/kernel/entry.S	2005-09-21 07:10:08 +0200
@@ -13,6 +13,7 @@
  */
 
 #include <linux/sys.h>
+#include <linux/clone.h>
 
 #include <asm/entry.h>
 #include <asm/current.h>
diff -NurpP --minimal linux-2.6.14-rc1/include/asm-cris/arch-v10/offset.h linux-2.6.14-rc1-cl01/include/asm-cris/arch-v10/offset.h
--- linux-2.6.14-rc1/include/asm-cris/arch-v10/offset.h	2005-08-29 22:25:36 +0200
+++ linux-2.6.14-rc1-cl01/include/asm-cris/arch-v10/offset.h	2005-09-21 07:12:49 +0200
@@ -27,7 +27,4 @@
 
 #define TASK_pid 141 /* offsetof(struct task_struct, pid) */
 
-#define LCLONE_VM 256 /* CLONE_VM */
-#define LCLONE_UNTRACED 8388608 /* CLONE_UNTRACED */
-
 #endif
diff -NurpP --minimal linux-2.6.14-rc1/include/asm-cris/arch-v32/offset.h linux-2.6.14-rc1-cl01/include/asm-cris/arch-v32/offset.h
--- linux-2.6.14-rc1/include/asm-cris/arch-v32/offset.h	2005-08-29 22:25:36 +0200
+++ linux-2.6.14-rc1-cl01/include/asm-cris/arch-v32/offset.h	2005-09-21 07:13:01 +0200
@@ -29,7 +29,4 @@
 
 #define TASK_pid 149 /* offsetof(struct task_struct, pid) */
 
-#define LCLONE_VM 256 /* CLONE_VM */
-#define LCLONE_UNTRACED 8388608 /* CLONE_UNTRACED */
-
 #endif
diff -NurpP --minimal linux-2.6.14-rc1/include/linux/clone.h linux-2.6.14-rc1-cl01/include/linux/clone.h
--- linux-2.6.14-rc1/include/linux/clone.h	1970-01-01 01:00:00 +0100
+++ linux-2.6.14-rc1-cl01/include/linux/clone.h	2005-09-21 04:09:06 +0200
@@ -0,0 +1,32 @@
+#ifndef _LINUX_CLONE_H
+#define _LINUX_CLONE_H
+
+/*
+ * cloning flags:
+ */
+#define CSIGNAL		0x000000ff	/* signal mask to be sent at exit */
+#define CLONE_VM	0x00000100	/* set if VM shared between processes */
+#define CLONE_FS	0x00000200	/* set if fs info shared between processes */
+#define CLONE_FILES	0x00000400	/* set if open files shared between processes */
+#define CLONE_SIGHAND	0x00000800	/* set if signal handlers and blocked signals shared */
+#define CLONE_PTRACE	0x00002000	/* set if we want to let tracing continue on the child too */
+#define CLONE_VFORK	0x00004000	/* set if the parent wants the child to wake it up on mm_release */
+#define CLONE_PARENT	0x00008000	/* set if we want to have the same parent as the cloner */
+#define CLONE_THREAD	0x00010000	/* Same thread group? */
+#define CLONE_NEWNS	0x00020000	/* New namespace group? */
+#define CLONE_SYSVSEM	0x00040000	/* share system V SEM_UNDO semantics */
+#define CLONE_SETTLS	0x00080000	/* create a new TLS for the child */
+#define CLONE_PARENT_SETTID	0x00100000	/* set the TID in the parent */
+#define CLONE_CHILD_CLEARTID	0x00200000	/* clear the TID in the child */
+#define CLONE_DETACHED		0x00400000	/* Unused, ignored */
+#define CLONE_UNTRACED		0x00800000	/* set if the tracing process can't force CLONE_PTRACE on this clone */
+#define CLONE_CHILD_SETTID	0x01000000	/* set the TID in the child */
+#define CLONE_STOPPED		0x02000000	/* Start in stopped state */
+
+/*
+ * List of flags we want to share for kernel threads,
+ * if only because they are not used by them anyway.
+ */
+#define CLONE_KERNEL	(CLONE_FS | CLONE_FILES | CLONE_SIGHAND)
+
+#endif
diff -NurpP --minimal linux-2.6.14-rc1/include/linux/sched.h linux-2.6.14-rc1-cl01/include/linux/sched.h
--- linux-2.6.14-rc1/include/linux/sched.h	2005-09-20 00:37:38 +0200
+++ linux-2.6.14-rc1-cl01/include/linux/sched.h	2005-09-21 04:08:27 +0200
@@ -36,38 +36,11 @@
 #include <linux/seccomp.h>
 
 #include <linux/auxvec.h>	/* For AT_VECTOR_SIZE */
+#include <linux/clone.h>
 
 struct exec_domain;
 
 /*
- * cloning flags:
- */
-#define CSIGNAL		0x000000ff	/* signal mask to be sent at exit */
-#define CLONE_VM	0x00000100	/* set if VM shared between processes */
-#define CLONE_FS	0x00000200	/* set if fs info shared between processes */
-#define CLONE_FILES	0x00000400	/* set if open files shared between processes */
-#define CLONE_SIGHAND	0x00000800	/* set if signal handlers and blocked signals shared */
-#define CLONE_PTRACE	0x00002000	/* set if we want to let tracing continue on the child too */
-#define CLONE_VFORK	0x00004000	/* set if the parent wants the child to wake it up on mm_release */
-#define CLONE_PARENT	0x00008000	/* set if we want to have the same parent as the cloner */
-#define CLONE_THREAD	0x00010000	/* Same thread group? */
-#define CLONE_NEWNS	0x00020000	/* New namespace group? */
-#define CLONE_SYSVSEM	0x00040000	/* share system V SEM_UNDO semantics */
-#define CLONE_SETTLS	0x00080000	/* create a new TLS for the child */
-#define CLONE_PARENT_SETTID	0x00100000	/* set the TID in the parent */
-#define CLONE_CHILD_CLEARTID	0x00200000	/* clear the TID in the child */
-#define CLONE_DETACHED		0x00400000	/* Unused, ignored */
-#define CLONE_UNTRACED		0x00800000	/* set if the tracing process can't force CLONE_PTRACE on this clone */
-#define CLONE_CHILD_SETTID	0x01000000	/* set the TID in the child */
-#define CLONE_STOPPED		0x02000000	/* Start in stopped state */
-
-/*
- * List of flags we want to share for kernel threads,
- * if only because they are not used by them anyway.
- */
-#define CLONE_KERNEL	(CLONE_FS | CLONE_FILES | CLONE_SIGHAND)
-
-/*
  * These are the constant used to fake the fixed-point load-average
  * counting. Some notes:
  *  - 11 bit fractions expand to 22 bits by the multiplies: this gives


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21  9:21 [Patch] eliminate CLONE_* duplications Herbert Poetzl
@ 2005-09-21 10:55 ` Roman Zippel
  2005-09-21 14:39   ` Herbert Poetzl
  0 siblings, 1 reply; 10+ messages in thread
From: Roman Zippel @ 2005-09-21 10:55 UTC (permalink / raw)
  To: Herbert Poetzl; +Cc: Andrew Morton, Linux Kernel ML

Hi,

On Wed, 21 Sep 2005, Herbert Poetzl wrote:

> some archs (alpha,cris,ia64,ppc/64,v850) map those
> values via asm-offsets.c, others (cris-*,hppa/64)
> redefine the values in the asm code ...

Please fix cris-*,hppa/64 instead to use asm-offsets.c.

bye, Roman

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21 10:55 ` Roman Zippel
@ 2005-09-21 14:39   ` Herbert Poetzl
  2005-09-21 14:53     ` Roman Zippel
  0 siblings, 1 reply; 10+ messages in thread
From: Herbert Poetzl @ 2005-09-21 14:39 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Andrew Morton, Linux Kernel ML

On Wed, Sep 21, 2005 at 12:55:10PM +0200, Roman Zippel wrote:
> Hi,
> 
> On Wed, 21 Sep 2005, Herbert Poetzl wrote:
> 
> > some archs (alpha,cris,ia64,ppc/64,v850) map those
> > values via asm-offsets.c, others (cris-*,hppa/64)
> > redefine the values in the asm code ...
> 
> Please fix cris-*,hppa/64 instead to use asm-offsets.c.

please elaborate _why_ we would want a bunch of
additional DEFINE entries in each arch instead of a
simple include file?

TIA,
Herbert

> bye, Roman
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21 14:39   ` Herbert Poetzl
@ 2005-09-21 14:53     ` Roman Zippel
  2005-09-21 15:11       ` Herbert Poetzl
  0 siblings, 1 reply; 10+ messages in thread
From: Roman Zippel @ 2005-09-21 14:53 UTC (permalink / raw)
  To: Herbert Poetzl; +Cc: Andrew Morton, Linux Kernel ML

Hi,

On Wed, 21 Sep 2005, Herbert Poetzl wrote:

> please elaborate _why_ we would want a bunch of
> additional DEFINE entries in each arch instead of a
> simple include file?

It's more important to keep related definition together and organize them 
logically, than spreading definitions over zillion header files for the 
only purpose to be usable from asm.
If you want to cleanup sched.h and properly break it up, please go ahead, 
but I'm afraid that will be a lot more work than adding a few defines to 
asm-offsets.c.

bye, Roman

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21 14:53     ` Roman Zippel
@ 2005-09-21 15:11       ` Herbert Poetzl
  2005-09-21 15:39         ` Roman Zippel
  0 siblings, 1 reply; 10+ messages in thread
From: Herbert Poetzl @ 2005-09-21 15:11 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Andrew Morton, Linux Kernel ML

On Wed, Sep 21, 2005 at 04:53:51PM +0200, Roman Zippel wrote:
> Hi,
> 
> On Wed, 21 Sep 2005, Herbert Poetzl wrote:
> 
> > please elaborate _why_ we would want a bunch of
> > additional DEFINE entries in each arch instead of a
> > simple include file?
> 
> It's more important to keep related definition together and organize
> them logically, than spreading definitions over zillion header files
> for the only purpose to be usable from asm. If you want to cleanup
> sched.h and properly break it up, please go ahead, but I'm afraid that
> will be a lot more work than adding a few defines to asm-offsets.c.

well, I thought that is what my patch did, so please
could you elaborate on the 'properly' part, as this
might be the missing information here ...

TIA,
Herbert

> bye, Roman
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21 15:11       ` Herbert Poetzl
@ 2005-09-21 15:39         ` Roman Zippel
  2005-09-21 23:58           ` Herbert Poetzl
  0 siblings, 1 reply; 10+ messages in thread
From: Roman Zippel @ 2005-09-21 15:39 UTC (permalink / raw)
  To: Herbert Poetzl; +Cc: Andrew Morton, Linux Kernel ML

Hi,

On Wed, 21 Sep 2005, Herbert Poetzl wrote:

> well, I thought that is what my patch did, so please
> could you elaborate on the 'properly' part, as this
> might be the missing information here ...

"It's more important to keep related definition together and organize them 
logically."

bye, Roman

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21 15:39         ` Roman Zippel
@ 2005-09-21 23:58           ` Herbert Poetzl
  2005-09-27 15:25             ` Roman Zippel
  0 siblings, 1 reply; 10+ messages in thread
From: Herbert Poetzl @ 2005-09-21 23:58 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Andrew Morton, Linux Kernel ML

On Wed, Sep 21, 2005 at 05:39:23PM +0200, Roman Zippel wrote:
> Hi,
> 
> On Wed, 21 Sep 2005, Herbert Poetzl wrote:
> 
> > well, I thought that is what my patch did, so please
> > could you elaborate on the 'properly' part, as this
> > might be the missing information here ...
> 
> "It's more important to keep related definition together and 
> organize them logically."

hmm, looks like we are dancing around in circles here
so please forgive my direct (and repeated) question:

_what_ do you consider 'logically organized' because
putting all the CLONE_* stuff into a separate file is
pretty logical for me ... but obviously not for you.

I have absolutely no problem with different, more
logical splitups, and I'm willing to break down the
entire sched.h if that will help the cause ... so
please enlighten me here ...

TIA,
Herbert

> bye, Roman
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-21 23:58           ` Herbert Poetzl
@ 2005-09-27 15:25             ` Roman Zippel
  2005-09-27 16:22               ` Herbert Poetzl
  0 siblings, 1 reply; 10+ messages in thread
From: Roman Zippel @ 2005-09-27 15:25 UTC (permalink / raw)
  To: Herbert Poetzl; +Cc: Andrew Morton, Linux Kernel ML

Hi,

(Sorry for the delay.)

On Thu, 22 Sep 2005, Herbert Poetzl wrote:

> _what_ do you consider 'logically organized' because
> putting all the CLONE_* stuff into a separate file is
> pretty logical for me ... but obviously not for you.

"logically organized" mainly means reducing dependencies by organizing 
them by their logical dependencies. If a large header file is included by 
a lot of other files, some parts maybe separated to reduce header 
dependencies. The same can be done for config dependencies, so that a 
config change doesn't necessarily recompiles the whole kernel.

Your change doesn't reduce any dependecies and it's not such a big 
cleanup:

 arch/alpha/kernel/asm-offsets.c         |    2 --
 arch/alpha/kernel/entry.S               |    1 +
 arch/cris/arch-v10/kernel/asm-offsets.c |    3 ---
 arch/cris/arch-v10/kernel/entry.S       |    1 +
 arch/cris/arch-v32/kernel/asm-offsets.c |    3 ---
 arch/frv/kernel/kernel_thread.S         |    2 +-
 arch/ia64/ia32/ia32_entry.S             |    3 ++-
 arch/ia64/kernel/asm-offsets.c          |    4 ----
 arch/parisc/kernel/entry.S              |    4 +---
 arch/ppc/kernel/asm-offsets.c           |    2 --
 arch/ppc/kernel/misc.S                  |    1 +
 arch/ppc64/kernel/asm-offsets.c         |    3 ---
 arch/ppc64/kernel/misc.S                |    1 +
 arch/v850/kernel/asm-offsets.c          |    4 ----
 arch/v850/kernel/entry.S                |    1 +
 include/asm-cris/arch-v10/offset.h      |    3 ---
 include/asm-cris/arch-v32/offset.h      |    3 ---
 include/linux/clone.h                   |   32 ++++++++++++++++++++++++++++++++
 include/linux/sched.h                   |   30 +-----------------------------
 19 files changed, 42 insertions(+), 61 deletions(-)

The noise generated by the separation is larger than the avoided 
duplication.
The hardcoded defines actually do need fixing, frv is especially bad, as 
it even has hardcoded structure offsets.

> I have absolutely no problem with different, more
> logical splitups, and I'm willing to break down the
> entire sched.h if that will help the cause ... so
> please enlighten me here ...

sched.h is especially challenging due to dependencies between headers 
under asm and linux. It's not just splitting sched.h, it also requires 
analyzing its dependencies.

bye, Roman

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-27 15:25             ` Roman Zippel
@ 2005-09-27 16:22               ` Herbert Poetzl
  2005-09-27 17:04                 ` Roman Zippel
  0 siblings, 1 reply; 10+ messages in thread
From: Herbert Poetzl @ 2005-09-27 16:22 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Andrew Morton, Linux Kernel ML

On Tue, Sep 27, 2005 at 05:25:41PM +0200, Roman Zippel wrote:
> Hi,
> 
> (Sorry for the delay.)

no big deal ...

> On Thu, 22 Sep 2005, Herbert Poetzl wrote:
> 
> > _what_ do you consider 'logically organized' because
> > putting all the CLONE_* stuff into a separate file is
> > pretty logical for me ... but obviously not for you.
> 
> "logically organized" mainly means reducing dependencies by organizing
> them by their logical dependencies. 

did you consider that separating out the clone
stuff might be that basis for reducing dependencies?

> If a large header file is included by a lot of other files, some parts
> maybe separated to reduce header dependencies. The same can be done
> for config dependencies, so that a config change doesn't necessarily
> recompiles the whole kernel.

> Your change doesn't reduce any dependecies and it's not such a big 
> cleanup:

aha, so we want a big all-in-one patch now which
does many changes at once, instead of a small
(and obvious) cleanup first, then later maybe
a restructuring ... yes?

>  arch/alpha/kernel/asm-offsets.c         |    2 --
>  arch/alpha/kernel/entry.S               |    1 +
>  arch/cris/arch-v10/kernel/asm-offsets.c |    3 ---
>  arch/cris/arch-v10/kernel/entry.S       |    1 +
>  arch/cris/arch-v32/kernel/asm-offsets.c |    3 ---
>  arch/frv/kernel/kernel_thread.S         |    2 +-
>  arch/ia64/ia32/ia32_entry.S             |    3 ++-
>  arch/ia64/kernel/asm-offsets.c          |    4 ----
>  arch/parisc/kernel/entry.S              |    4 +---
>  arch/ppc/kernel/asm-offsets.c           |    2 --
>  arch/ppc/kernel/misc.S                  |    1 +
>  arch/ppc64/kernel/asm-offsets.c         |    3 ---
>  arch/ppc64/kernel/misc.S                |    1 +
>  arch/v850/kernel/asm-offsets.c          |    4 ----
>  arch/v850/kernel/entry.S                |    1 +
>  include/asm-cris/arch-v10/offset.h      |    3 ---
>  include/asm-cris/arch-v32/offset.h      |    3 ---
>  include/linux/clone.h                   |   32 ++++++++++++++++++++++++++++++++
>  include/linux/sched.h                   |   30 +-----------------------------
>  19 files changed, 42 insertions(+), 61 deletions(-)

> The noise generated by the separation is larger than the avoided 
> duplication.

hmm, interesting argument ...

> The hardcoded defines actually do need fixing, frv is especially bad,
> as it even has hardcoded structure offsets.

so instead of fixing the issue properly, we 
'mend' it by adding new code to */asm-offsets.c

> > I have absolutely no problem with different, more
> > logical splitups, and I'm willing to break down the
> > entire sched.h if that will help the cause ... so
> > please enlighten me here ...

> sched.h is especially challenging due to dependencies between headers
> under asm and linux. It's not just splitting sched.h, it also requires
> analyzing its dependencies.

which you obviously think is nothing I can do
'properly' ...

thanks for the info,
Herbert

> bye, Roman

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Patch] eliminate CLONE_* duplications
  2005-09-27 16:22               ` Herbert Poetzl
@ 2005-09-27 17:04                 ` Roman Zippel
  0 siblings, 0 replies; 10+ messages in thread
From: Roman Zippel @ 2005-09-27 17:04 UTC (permalink / raw)
  To: Herbert Poetzl; +Cc: Andrew Morton, Linux Kernel ML

Hi,

On Tue, 27 Sep 2005, Herbert Poetzl wrote:

> > "logically organized" mainly means reducing dependencies by organizing
> > them by their logical dependencies. 
> 
> did you consider that separating out the clone
> stuff might be that basis for reducing dependencies?

Not in this form, all users of this flag need other definitions from 
sched.h.

> > The hardcoded defines actually do need fixing, frv is especially bad,
> > as it even has hardcoded structure offsets.
> 
> so instead of fixing the issue properly, we 
> 'mend' it by adding new code to */asm-offsets.c

Using asm-offsets.c _is_ a proper solution.

> > sched.h is especially challenging due to dependencies between headers
> > under asm and linux. It's not just splitting sched.h, it also requires
> > analyzing its dependencies.
> 
> which you obviously think is nothing I can do
> 'properly' ...

I don't know, but I know that it does require a large amount of experience 
in this area.

bye, Roman

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-09-27 17:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-21  9:21 [Patch] eliminate CLONE_* duplications Herbert Poetzl
2005-09-21 10:55 ` Roman Zippel
2005-09-21 14:39   ` Herbert Poetzl
2005-09-21 14:53     ` Roman Zippel
2005-09-21 15:11       ` Herbert Poetzl
2005-09-21 15:39         ` Roman Zippel
2005-09-21 23:58           ` Herbert Poetzl
2005-09-27 15:25             ` Roman Zippel
2005-09-27 16:22               ` Herbert Poetzl
2005-09-27 17:04                 ` Roman Zippel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).