[uml-devel] [patch 4/4] SYSEMU: fix sysaudit / singlestep interaction

2005-07-27 Thread blaisorblade

From: Bodo Stroesser <[EMAIL PROTECTED]>, Paolo 'Blaisorblade' Giarrusso 
<[EMAIL PROTECTED]>
CC: Roland McGrath <[EMAIL PROTECTED]>

This is simply an adjustment for "Ptrace - i386: fix Syscall Audit interaction
with singlestep" to work on top of SYSEMU patches, too. On this patch, I have
some doubts: I wonder why we need to alter that way ptrace_disable().

I left the patch this way because it has been extensively tested, but I don't
understand the reason.

The current PTRACE_DETACH handling simply clears child->ptrace; actually this
is not enough because entry.S just looks at the thread_flags; actually,
do_syscall_trace checks current->ptrace but I don't think depending on that is
good, at least for performance, so I think the clearing is done elsewhere. For
instance, on PTRACE_CONT it's done, but doing PTRACE_DETACH without
PTRACE_CONT is possible (and happens when gdb crashes and one kills it
manually).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
---

 linux-2.6.git-paolo/arch/i386/kernel/ptrace.c |   23 ---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff -puN arch/i386/kernel/ptrace.c~sysaudit-singlestep-umlhost 
arch/i386/kernel/ptrace.c
--- linux-2.6.git/arch/i386/kernel/ptrace.c~sysaudit-singlestep-umlhost 
2005-07-26 20:27:56.0 +0200
+++ linux-2.6.git-paolo/arch/i386/kernel/ptrace.c   2005-07-26 
20:27:56.0 +0200
@@ -271,6 +271,8 @@ static void clear_singlestep(struct task
 void ptrace_disable(struct task_struct *child)
 { 
clear_singlestep(child);
+   clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
+   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
 }
 
 /*
@@ -693,14 +695,29 @@ __attribute__((regparm(3)))
 int do_syscall_trace(struct pt_regs *regs, int entryexit)
 {
int is_sysemu = test_thread_flag(TIF_SYSCALL_EMU), ret = 0;
-   /* With TIF_SYSCALL_EMU set we want to ignore TIF_SINGLESTEP */
+   /* With TIF_SYSCALL_EMU set we want to ignore TIF_SINGLESTEP for syscall
+* interception. */
int is_singlestep = !is_sysemu && test_thread_flag(TIF_SINGLESTEP);
 
/* do the secure computing check first */
secure_computing(regs->orig_eax);
 
-   if (unlikely(current->audit_context) && entryexit)
-   audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), 
regs->eax);
+   if (unlikely(current->audit_context)) {
+   if (entryexit)
+   audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), 
regs->eax);
+   /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only
+* on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is
+* not used, entry.S will call us only on syscall exit, not
+* entry; so when TIF_SYSCALL_AUDIT is used we must avoid
+* calling send_sigtrap() on syscall entry.
+*
+* Note that when PTRACE_SYSEMU_SINGLESTEP is used,
+* is_singlestep is false, despite his name, so we will still do
+* the correct thing.
+*/
+   else if (is_singlestep)
+   goto out;
+   }
 
if (!(current->ptrace & PT_PTRACED))
goto out;
_


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
___
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel


[uml-devel] [patch 1/4] UML Support - Ptrace: adds the host SYSEMU support, for UML and general usage

2005-07-27 Thread blaisorblade

From: Laurent Vivier <[EMAIL PROTECTED]>,
Jeff Dike <[EMAIL PROTECTED]>,
Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>,
Bodo Stroesser <[EMAIL PROTECTED]>

Adds a new ptrace(2) mode, called PTRACE_SYSEMU, resembling PTRACE_SYSCALL
except that the kernel does not execute the requested syscall; this is useful
to improve performance for virtual environments, like UML, which want to run
the syscall on their own.

In fact, using PTRACE_SYSCALL means stopping child execution twice, on entry
and on exit, and each time you also have two context switches; with SYSEMU you
avoid the 2nd stop and so save two context switches per syscall.

Also, some architectures don't have support in the host for changing the
syscall number via ptrace(), which is currently needed to skip syscall
execution (UML turns any syscall into getpid() to avoid it being executed on
the host). Fixing that is hard, while SYSEMU is easier to implement.

* This version of the patch includes some suggestions of Jeff Dike to avoid
  adding any instructions to the syscall fast path, plus some other little
  changes, by myself, to make it work even when the syscall is executed with
  SYSENTER (but I'm unsure about them). It has been widely tested for quite a
  lot of time.

* Various fixed were included to handle the various switches between
  various states, i.e. when for instance a syscall entry is traced with one of
  PT_SYSCALL / _SYSEMU / _SINGLESTEP and another one is used on exit.
  Basically, this is done by remembering which one of them was used even after
  the call to ptrace_notify().

* We're combining TIF_SYSCALL_EMU with TIF_SYSCALL_TRACE or TIF_SINGLESTEP
  to make do_syscall_trace() notice that the current syscall was started with
  SYSEMU on entry, so that no notification ought to be done in the exit path;
  this is a bit of a hack, so this problem is solved in another way in next
  patches.

* Also, the effects of the patch:
"Ptrace - i386: fix Syscall Audit interaction with singlestep"
are cancelled; they are restored back in the last patch of this series.

Detailed descriptions of the patches doing this kind of processing follow (but
I've already summed everything up).

* Fix behaviour when changing interception kind #1.

In do_syscall_trace(), we check the status of the TIF_SYSCALL_EMU flag only
after doing the debugger notification; but the debugger might have changed the
status of this flag because he continued execution with PTRACE_SYSCALL, so
this is wrong. This patch fixes it by saving the flag status before calling
ptrace_notify().

* Fix behaviour when changing interception kind #2:
  avoid intercepting syscall on return when using SYSCALL again.

A guest process switching from using PTRACE_SYSEMU to PTRACE_SYSCALL crashes.

The problem is in arch/i386/kernel/entry.S. The current SYSEMU patch inhibits
the syscall-handler to be called, but does not prevent do_syscall_trace() to
be called after this for syscall completion interception.

The appended patch fixes this. It reuses the flag TIF_SYSCALL_EMU to remember
"we come from PTRACE_SYSEMU and now are in PTRACE_SYSCALL", since the flag is
unused in the depicted situation.

* Fix behaviour when changing interception kind #3:
  avoid intercepting syscall on return when using SINGLESTEP.

When testing 2.6.9 and the skas3.v6 patch, with my latest
patch and had problems with singlestepping on UML in SKAS with SYSEMU.
It looped receiving SIGTRAPs without moving forward. EIP of the traced
process was the same for all SIGTRAPs.

What's missing is to handle switching from PTRACE_SYSCALL_EMU to
PTRACE_SINGLESTEP in a way very similar to what is done for the change
from PTRACE_SYSCALL_EMU to PTRACE_SYSCALL_TRACE.

I.e., after calling ptrace(PTRACE_SYSEMU), on the return path, the debugger is
notified and then wake ups the process; the syscall is executed (or skipped,
when do_syscall_trace() returns 0, i.e. when using PTRACE_SYSEMU), and
do_syscall_trace() is called again. Since we are on the return path of a
SYSEMU'd syscall, if the wake up is performed through ptrace(PTRACE_SYSCALL),
we must still avoid notifying the parent of the syscall exit. Now, this
behaviour is extended even to resuming with PTRACE_SINGLESTEP.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
---

 linux-2.6.git-paolo/arch/i386/kernel/entry.S   |9 ++-
 linux-2.6.git-paolo/arch/i386/kernel/ptrace.c  |   57 ++---
 linux-2.6.git-paolo/include/asm-i386/thread_info.h |5 +
 linux-2.6.git-paolo/include/linux/ptrace.h |1 
 linux-2.6.git-paolo/kernel/fork.c  |3 +
 5 files changed, 53 insertions(+), 22 deletions(-)

diff -puN arch/i386/kernel/ptrace.c~host-sysemu arch/i386/kernel/ptrace.c
--- linux-2.6.git/arch/i386/kernel/ptrace.c~host-sysemu 2005-07-26 
20:24:57.0 +0200
+++ linux-2.6.git-paolo/arch/i386/kernel/ptrace.c   2005-07-26 
20:39:59.0 +0200
@@ -509,15 +509,27 @@ asmlinkage int sys_ptrace(long request, 

[uml-devel] [patch 3/4] Uml support: add PTRACE_SYSEMU_SINGLESTEP option to i386

2005-07-27 Thread blaisorblade

From: Bodo Stroesser <[EMAIL PROTECTED]>

This patch implements the new ptrace option PTRACE_SYSEMU_SINGLESTEP, which
can be used by UML to singlestep a process: it will receive SINGLESTEP
interceptions for normal instructions and syscalls, but syscall execution will
be skipped just like with PTRACE_SYSEMU.

Signed-off-by: Bodo Stroesser <[EMAIL PROTECTED]>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
---

 linux-2.6.git-paolo/arch/i386/kernel/ptrace.c |   21 +
 linux-2.6.git-paolo/include/linux/ptrace.h|1 +
 2 files changed, 18 insertions(+), 4 deletions(-)

diff -puN arch/i386/kernel/ptrace.c~sysemu-add-SYSEMU_SINGLESTEP 
arch/i386/kernel/ptrace.c
--- linux-2.6.git/arch/i386/kernel/ptrace.c~sysemu-add-SYSEMU_SINGLESTEP
2005-07-26 20:27:45.0 +0200
+++ linux-2.6.git-paolo/arch/i386/kernel/ptrace.c   2005-07-26 
20:39:55.0 +0200
@@ -547,11 +547,17 @@ asmlinkage int sys_ptrace(long request, 
wake_up_process(child);
break;
 
+   case PTRACE_SYSEMU_SINGLESTEP: /* Same as SYSEMU, but singlestep if not 
syscall */
case PTRACE_SINGLESTEP: /* set the trap flag. */
ret = -EIO;
if (!valid_signal(data))
break;
-   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
+
+   if (request == PTRACE_SYSEMU_SINGLESTEP)
+   set_tsk_thread_flag(child, TIF_SYSCALL_EMU);
+   else
+   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
+
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
set_singlestep(child);
child->exit_code = data;
@@ -686,7 +692,10 @@ void send_sigtrap(struct task_struct *ts
 __attribute__((regparm(3)))
 int do_syscall_trace(struct pt_regs *regs, int entryexit)
 {
-   int is_sysemu, is_singlestep, ret = 0;
+   int is_sysemu = test_thread_flag(TIF_SYSCALL_EMU), ret = 0;
+   /* With TIF_SYSCALL_EMU set we want to ignore TIF_SINGLESTEP */
+   int is_singlestep = !is_sysemu && test_thread_flag(TIF_SINGLESTEP);
+
/* do the secure computing check first */
secure_computing(regs->orig_eax);
 
@@ -696,8 +705,11 @@ int do_syscall_trace(struct pt_regs *reg
if (!(current->ptrace & PT_PTRACED))
goto out;
 
-   is_sysemu = test_thread_flag(TIF_SYSCALL_EMU);
-   is_singlestep = test_thread_flag(TIF_SINGLESTEP);
+   /* If a process stops on the 1st tracepoint with SYSCALL_TRACE
+* and then is resumed with SYSEMU_SINGLESTEP, it will come in
+* here. We have to check this and return */
+   if (is_sysemu && entryexit)
+   return 0;
 
/* Fake a debug trap */
if (is_singlestep)
@@ -728,6 +740,7 @@ int do_syscall_trace(struct pt_regs *reg
if (ret == 0)
return 0;
 
+   regs->orig_eax = -1; /* force skip of syscall restarting */
if (unlikely(current->audit_context))
audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), 
regs->eax);
return 1;
diff -puN include/linux/ptrace.h~sysemu-add-SYSEMU_SINGLESTEP 
include/linux/ptrace.h
--- linux-2.6.git/include/linux/ptrace.h~sysemu-add-SYSEMU_SINGLESTEP   
2005-07-26 20:27:45.0 +0200
+++ linux-2.6.git-paolo/include/linux/ptrace.h  2005-07-26 20:27:45.0 
+0200
@@ -21,6 +21,7 @@
 
 #define PTRACE_SYSCALL   24
 #define PTRACE_SYSEMU31
+#define PTRACE_SYSEMU_SINGLESTEP  32
 
 /* 0x4200-0x4300 are reserved for architecture-independent additions.  */
 #define PTRACE_SETOPTIONS  0x4200
_


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
___
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel


[uml-devel] [patch 2/4] Uml support: reorganize PTRACE_SYSEMU support

2005-07-27 Thread blaisorblade

From: Bodo Stroesser <[EMAIL PROTECTED]>

With this patch, we change the way we handle switching from PTRACE_SYSEMU to
PTRACE_{SINGLESTEP,SYSCALL}, to free TIF_SYSCALL_EMU from double use as a
preparation for PTRACE_SYSEMU_SINGLESTEP extension, without changing the
behavior of the host kernel.

Signed-off-by: Bodo Stroesser <[EMAIL PROTECTED]>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
---

 linux-2.6.git-paolo/arch/i386/kernel/entry.S  |8 
 linux-2.6.git-paolo/arch/i386/kernel/ptrace.c |   43 --
 2 files changed, 21 insertions(+), 30 deletions(-)

diff -puN arch/i386/kernel/entry.S~sysemu-reorganize arch/i386/kernel/entry.S
--- linux-2.6.git/arch/i386/kernel/entry.S~sysemu-reorganize2005-07-26 
20:25:58.0 +0200
+++ linux-2.6.git-paolo/arch/i386/kernel/entry.S2005-07-26 
20:25:58.0 +0200
@@ -339,12 +339,18 @@ syscall_trace_entry:
xorl %edx,%edx
call do_syscall_trace
cmpl $0, %eax
-   jne syscall_exit# ret != 0 -> running under 
PTRACE_SYSEMU,
+   jne syscall_skip# ret != 0 -> running under 
PTRACE_SYSEMU,
# so must skip actual syscall
movl ORIG_EAX(%esp), %eax
cmpl $(nr_syscalls), %eax
jnae syscall_call
jmp syscall_exit
+syscall_skip:
+   cli # make sure we don't miss an interrupt
+   # setting need_resched or sigpending
+   # between sampling and the iret
+   movl TI_flags(%ebp), %ecx
+   jmp work_pending
 
# perform syscall exit tracing
ALIGN
diff -puN arch/i386/kernel/ptrace.c~sysemu-reorganize arch/i386/kernel/ptrace.c
--- linux-2.6.git/arch/i386/kernel/ptrace.c~sysemu-reorganize   2005-07-26 
20:25:58.0 +0200
+++ linux-2.6.git-paolo/arch/i386/kernel/ptrace.c   2005-07-26 
20:39:57.0 +0200
@@ -515,21 +515,14 @@ asmlinkage int sys_ptrace(long request, 
ret = -EIO;
if (!valid_signal(data))
break;
-   /* If we came here with PTRACE_SYSEMU and now continue with
-* PTRACE_SYSCALL, entry.S used to intercept the syscall return.
-* But it shouldn't!
-* So we don't clear TIF_SYSCALL_EMU, which is always unused in
-* this special case, to remember, we came from SYSEMU. That
-* flag will be cleared by do_syscall_trace().
-*/
if (request == PTRACE_SYSEMU) {
set_tsk_thread_flag(child, TIF_SYSCALL_EMU);
-   } else if (request == PTRACE_CONT) {
-   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
-   }
-   if (request == PTRACE_SYSCALL) {
+   clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
+   } else if (request == PTRACE_SYSCALL) {
set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
+   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
} else {
+   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
}
child->exit_code = data;
@@ -558,8 +551,7 @@ asmlinkage int sys_ptrace(long request, 
ret = -EIO;
if (!valid_signal(data))
break;
-   /*See do_syscall_trace to know why we don't clear
-* TIF_SYSCALL_EMU.*/
+   clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
set_singlestep(child);
child->exit_code = data;
@@ -694,7 +686,7 @@ void send_sigtrap(struct task_struct *ts
 __attribute__((regparm(3)))
 int do_syscall_trace(struct pt_regs *regs, int entryexit)
 {
-   int is_sysemu, is_systrace, is_singlestep, ret = 0;
+   int is_sysemu, is_singlestep, ret = 0;
/* do the secure computing check first */
secure_computing(regs->orig_eax);
 
@@ -705,25 +697,13 @@ int do_syscall_trace(struct pt_regs *reg
goto out;
 
is_sysemu = test_thread_flag(TIF_SYSCALL_EMU);
-   is_systrace = test_thread_flag(TIF_SYSCALL_TRACE);
is_singlestep = test_thread_flag(TIF_SINGLESTEP);
 
-   /* We can detect the case of coming from PTRACE_SYSEMU and now running
-* with PTRACE_SYSCALL or PTRACE_SINGLESTEP, by TIF_SYSCALL_EMU being
-* set additionally.
-* If so let's reset the flag and return without action (no singlestep
-* nor syscall tracing, since no actual step has been executed).
-*/
-   if (is_sysemu && (is_systrace || is_singlestep)) {
-   clear_thread_flag(TIF_SYSCALL_EMU);
-   goto out;
-   }
-
/* Fake 

Re: [uml-devel] Slower system call with SMP

2005-07-27 Thread Blaisorblade
On Monday 30 May 2005 20:58, Majid Salame wrote:
> > UML uses multiple processes for it's buisness.

> With Skas UML is just one process as it appears on the Host, or do you mean
> something else.
No, it's at least two (+ possible service threads): one is the thread 
executing kernel code, which ptraces another thread which executes userspace 
code.
> >When host is
> > SMP, these can be mapped to different cpu's, and when
> > interprocess stuff is to occure, cpu's have to sync.
It's not just interprocess comunication. Those two threads could be running on 
two different processors (which will happen very likely, I fear, if UML is 
the only thing running, and can happen even without this - I don't think 
scheduler optimizations consider ptrace() as something needing to join 
threads together).

> I saw the syscall about 300% slower, it does not make sense due to
> interprocess.
> IT should not be that slow, unless missing UML implementation
I think it could, if the two threads run on different processors. Luckily, you 
can stop the host kernel from doing that: there should be a control option 
in /proc/, something like cpus_allowed.

Ok, let's assume you talk about SKAS (I'm not expert in TT implementation, 
should check a couple of things, but you said you use SKAS).

Well, it makes sense. In late days I've been studying signal delivery code, 
and for UML operations, to have a page fault in the guest, what happens is 
that the guest takes a SIGSEGV. That signal must be intercepted by the UML 
kernel thread. Sadly, this is largely suboptimal in Linux. In fact, you have, 
at signal delivery time, to wake up the guest thread (possibly via 
inter-processor comunication, which is an IPI), which will then have to wake 
up its tracer (and if that's on a different CPU, that's through an IPI), and 
then get back to wake up the thread itself.

> > Also, some few kernel things is slower on SMP, while
> > user-space things that are not related, and multithreaded
> > apps run faster.

> > Stian

-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade





___ 
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
http://mail.yahoo.it



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
___
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel


Re: [uml-devel] NEW compile errors for UMLPPC

2005-07-27 Thread Blaisorblade
On Monday 25 July 2005 20:28, ashwin tanugula wrote:
> Hi,
> I think those errors came due to the inclusion of
> include/asm/processor-i386.h. I remover that inclusion and included
> the structure arch_thread in processor-generic.h, which removed the
> previous errors.
>
> Now I am getting the following errors
> - Show quoted text -
>
>
> [EMAIL PROTECTED]:/home/ashwin/Desktop/ashwin/linux-2.6.0-test9 # make
> linux ARCH=um  CHK include/linux/version.h
>  UPD include/linux/version.h
>  SYMLINK include/asm -> include/asm-um
>  HOSTCC  scripts/genksyms/genksyms.o
>  SHIPPED scripts/genksyms/lex.c
>  SHIPPED scripts/genksyms/parse.h
>  SHIPPED scripts/genksyms/keywords.c
>  HOSTCC  scripts/genksyms/lex.o
>  SHIPPED scripts/genksyms/parse.c
>  HOSTCC  scripts/genksyms/parse.o
>  HOSTLD  scripts/genksyms/genksyms
>  HOSTCC  scripts/split-include
>  HOSTCC  scripts/conmakehash
>  HOSTCC  scripts/docproc
>  HOSTCC  scripts/kallsyms
>  CC  scripts/empty.o
>  HOSTCC  scripts/mk_elfconfig
>  MKELF   scripts/elfconfig.h
>  HOSTCC  scripts/file2alias.o
>  HOSTCC  scripts/modpost.o
>  HOSTLD  scripts/modpost
>  HOSTCC  scripts/pnmtologo
>  HOSTCC  scripts/bin2c
>  SPLIT   include/linux/autoconf.h -> include/config/*
> sed 's/ CONFIG/ UML_CONFIG/'
> /home/ashwin/Desktop/ashwin/linux-2.6.0-test9/include/linux/autoconf.h
>
> > arch/um/include/uml-config.h
>
> make -f scripts/Makefile.build obj=arch/um/util
> gcc -o arch/um/util/mk_task_user.o -c arch/um/util/mk_task_user.c
>  CC  arch/um/util/mk_task_kern.o
> In file included from include/asm/processor.h:13,
> from include/asm/thread_info.h:11,
> from include/linux/thread_info.h:21,
> from include/linux/spinlock.h:12,
> from include/linux/capability.h:45,
> from include/linux/sched.h:7,
> from arch/um/util/mk_task_kern.c:1:
> include/asm/processor-generic.h:118: warning: `struct user' declared
> inside parameter list
> include/asm/processor-generic.h:118: warning: its scope is only this
> definition or declaration, which is probably not what you want
Means that you should have "struct user;" somewhere before that:
when you have this:

void foo(struct bar * foobar);
the compiler assumes an implicit "struct bar;" declaration ending there, which 
won't match with anything else.
> In file included from include/asm/arch/semaphore.h:21,
I'm sure this (asm/arch) still points to asm-i386. Will you do a "make 
mrproper ARCH=um" first? It causes all those "regparm" errors.

For the below one, don't know, sort it out somehow. Since it's declared in 
archparam, update it, comparing with the other ones (it's the only one to 
still define irq_enter/exit).
> include/asm/arch/hardirq.h:82:1: warning: "irq_enter" redefined

> include/asm/archparam.h:34:1: warning: this is the location of the
> previous definition

> include/asm/arch/hardirq.h:91:1: warning: "irq_exit" redefined

> include/asm/archparam.h:35:1: warning: this is the location of the
> previous definition

> ignored In file included from include/linux/bootmem.h:7,
> from init/main.c:29:
> include/asm/pgtable.h: In function `pte_file':
> include/asm/pgtable.h:277: error: request for member `pte_low' in
> something not a structure or union
Means that for ppc pte_t is not a struct, which probably has to be fixed.

typedef struct { unsigned long pte; } pte_t;

> In file included from include/linux/skbuff.h:26,
> from include/linux/security.h:34,
> from init/main.c:34:

On the below one, I don't know, but I would disable HIGHMEM for now, probably 
it doesn't work for i386 either in such a old UML version. Btw, are you at  
least using Jeff DIke's patch? Also, why not updating to a more recent UML 
release? Do as you like, but surely you'll meet the bugs affecting UML itself 
(independent from arch ports) which were already fixed in later releases (for 
instance, module support and HIGHMEM, I guess).
> include/asm/arch/highmem.h: In function `kmap_atomic':
> include/asm/arch/highmem.h:89: error: `CONFIG_HIGHMEM_START'
> undeclared (first use in this function)
> include/asm/arch/highmem.h:89: error: (Each undeclared identifier is
> reported only once
> include/asm/arch/highmem.h:89: error: for each function it appears in.)
> include/asm/arch/highmem.h: In function `kunmap_atomic':
> include/asm/arch/highmem.h:106: error: `CONFIG_HIGHMEM_START'
> undeclared (first use in this function)
> include/asm/arch/highmem.h: In function `kmap_atomic_to_page':
> include/asm/arch/highmem.h:128: error: `CONFIG_HIGHMEM_START'
> undeclared (first use in this function)
> make[1]: *** [init/main.o] Error 1
> make: *** [init] Error 2

-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade



___ 
Yahoo! M

[uml-devel] Venda a 7.000.000 de consumidores sale a 7.0000 customers

2005-07-27 Thread Sell everything Venda todo




Contact 7,000,000+ e-mail addresses to expose your 
product to the retail sector!http://www.hireoffices.com/Ingles/servi-integrales/Espanol/crea-nece.asp
Contacte con + de 7.000.000 de consumidores y muestrele su productohttp://www.hireoffices.com/servi-integrales/Espanol/crea-nece.asp
remove - dar de bajahttp://www.hireoffices.com/indexcarta.asp