All of lore.kernel.org
 help / color / mirror / Atom feed
From: "roland" <for_spam@gmx.de>
To: Laurent Vivier <LaurentVivier@wanadoo.fr>
Cc: user-mode-linux-devel@lists.sourceforge.net,
	Jeff Dike <jdike@addtoit.com>,
	blaisorblade_spam@yahoo.it, uml@hno.marasystems.com
Subject: [uml-devel] [PATCH] commandline switch for sysemu patch
Date: Sun, 23 May 2004 02:42:14 +0200	[thread overview]
Message-ID: <05e201c4405e$cebf6610$2000000a@schlepptopp> (raw)
In-Reply-To: 1085057350.1197.2.camel@chartreuse

[-- Attachment #1: Type: text/plain, Size: 2615 bytes --]

hi !
I have enhanced laurents sysemu patch a little bit.

the attached patch adds an additional commandline-switch to uml.
if you specify "sysemu" on the commandline, it makes uml use sysemu, if
the host has the sysemu patch,too.
if you don`t specify it, uml doesn`t use sysemu at all.
this makes it easier to compare uml behaviour with and without sysemu (you
don`t need 2 different kernels for that purpose)

Laurent - if you like it, perhaps you could publish that on your website or
include it in your sysemu patch?

regards
roland

ps:
sorry - i have only done it for 2.6.6

pps:
since this is my first patch, maybe this is far from being perfect. feel free
to comment. :)


>Hi,
>
>I put all related information at this URL:
>
>http://perso.wanadoo.fr/laurent.vivier/UML
>
>I have modified the 2.4.24 patches to set PTRACE_SYSEMU to 31 too.
>This modification allows to use 2.4.24 UML on 2.6.6 host, and 2.6.6 UML
>on 2.4.24 host.
>
>Regards,
>Laurent
>
>Le jeu 20/05/2004 à 04:30, roland a écrit :
> Hi Laurent,
> i wondered about:
> "Checking syscall emulation patch for ptrace...missing"
>
> so  - i dig into this:
>
> the uml-patch needs to be adjusted to the fix you gave for the host patch:
> in arch/um/kernel/skas/include/ptrace-skas.h
> i changed :
> #define PTRACE_SYSEMU 25
> to
> #define PTRACE_SYSEMU 31
>
> whoha - now sysemu patch is running with 2.6.6  :)
>
> same positive effect: the getpid loop runs MUCH faster.
> i have tested some other commands and if i run a "vmstat 1" on the HOST,
> i can see the context-swap-rate drop down significantly.
>
> great!
>
> laurent, can you post the sysemu uml and host patch again in ONE mail,
> containing the corrected defines?
> others will probably have it easier this way!
> (maybe some notes about how it works and what it does would be helpful, too)
>
> thanks a lot!
>
> now we need some real-world performance tests/comparisons :)
> regards
> roland
>
> ps:
> i will do some more tests. maybe blaisorblade already wants to mention that
> patch in his 2.6 documentation at: http://www.user-mode-linux.org/~blaisorblade/ ?
>
>
>
>
>
>
> >in include/linux/ptrace.h ,
> >change
> >#define PTRACE_SCEMU            25
> >by
> >#define PTRACE_SCEMU            31
>
>
>
>
>
> ----- Original Message ----- 
> From: "Laurent Vivier" <LaurentVivier@wanadoo.fr>
> To: "roland" <for_spam@gmx.de>
> Cc: <user-mode-linux-devel@lists.sourceforge.net>
> Sent: Wednesday, May 19, 2004 9:49 PM
> Subject: Re: [uml-devel] [PATCH] host context switch reduction
>



[-- Attachment #2: sysemu_cmdline.patch --]
[-- Type: application/octet-stream, Size: 2294 bytes --]

--- linux-2.6.6/arch/um/kernel/process.c	2004-07-07 06:21:19.144801856 +0200
+++ linux-2.6.6/arch/um/kernel/process.c.sysemu	2004-07-07 06:21:09.136323376 +0200
@@ -41,6 +41,8 @@
 #include "skas_ptrace.h"
 #endif
 
+int sysemu_active=0;
+
 void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int))
 {
 	int flags = 0, pages;
@@ -230,12 +232,12 @@
 	printk("OK\n");
 
 #ifdef PTRACE_SYSEMU
-	printk("Checking syscall emulation patch for ptrace...");
+       printk("Checking syscall emulation patch for ptrace on HOST...");
 	use_sysemu = 0;
 	pid = start_ptraced_child(&stack);
 	if(ptrace(PTRACE_SYSEMU, pid, 0, 0) >= 0) {
-		struct user_regs_struct regs;
-
+  	 	struct user_regs_struct regs;
+ 
 		if (waitpid(pid, &status, WUNTRACED) < 0)
 			panic("check_ptrace : wait failed, errno = %d", errno);
 		if(!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP))
@@ -252,18 +254,44 @@
 
 		stop_ptraced_child(pid, stack, 0);
 
-		printk("OK\n");
-		use_sysemu = 1;
-	}
-	else
-	{
-		printk("missing\n");
+		printk("Found!\n");
+                printk("Syscall emulation is...");
+                if(sysemu_active) {
+         	 use_sysemu = 1;
+                 printk("On!\n"); 
+                }           
+                else {
+                 use_sysemu = 0;
+                 printk("Off!\n");  
+                }          
+     
+	 }
+	 else
+	 {
+	 	printk("Missing!\n");
+                if(sysemu_active) {
+                 printk("Notice: You cannot use syscall emulation on this host!\n");
+                }
 		stop_ptraced_child(pid, stack, 1);
-	}
-
+	 }
+        
+        
 # endif /* PTRACE_SYSEMU */
 }
 
+
+static void sysemufnc(char *str)
+{
+ sysemu_active=1;
+}
+
+__uml_setup("sysemu",sysemufnc,
+"sysemu\n    Turn syscall emulation patch for ptrace (SYSEMU) on.\n"
+"    SYSEMU is a performance-patch introduced by Laurent Vivier. It changes\n"
+"    behaviour of ptrace() and helps reducing host context switch rate.\n"
+"    To make it working, you need a kernel patch for your host, too.\n"
+"    See http://perso.wanadoo.fr/laurent.vivier/UML/ for further information.\n\n");
+
 int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr)
 {
 	jmp_buf buf;

  reply	other threads:[~2004-05-23  0:35 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-29  4:35 [uml-devel] [PATCH] host context switch reduction Jeff Dike
2004-02-29 16:48 ` BlaisorBlade
2004-03-15 11:42 ` Sven 'Darkman' Michels
2004-03-15 19:13   ` Jeff Dike
2004-05-17 20:08 ` roland
2004-05-17 22:00   ` Laurent Vivier
2004-05-17 22:22     ` roland
2004-05-18 17:59       ` Jeff Dike
2004-05-19 17:27         ` Laurent Vivier
2004-05-19 18:01           ` roland
2004-05-19 18:17             ` Laurent Vivier
2004-05-19 19:39               ` roland
2004-05-19 19:49                 ` Laurent Vivier
2004-05-20  2:30                   ` roland
2004-05-20 12:49                     ` Laurent Vivier
2004-05-23  0:42                       ` roland [this message]
2004-05-23 13:31                       ` roland
2004-05-19 23:54               ` Jeff Dike
2004-05-20  1:01               ` roland
2004-05-20 14:12                 ` Henrik Nordstrom
2004-05-20 15:27                   ` roland
2004-05-20 15:35                     ` Henrik Nordstrom
2004-05-19 22:40           ` Nuno Silva
2004-05-20 18:28           ` roland
2004-05-20 18:47             ` Henrik Nordstrom
2004-05-27  6:16           ` Christopher S. Aker
2004-05-27  8:22             ` Laurent Vivier
2004-05-27  9:25               ` Christopher S. Aker
2004-05-27 11:50                 ` Laurent Vivier
2004-05-28  4:53                   ` [uml-devel] [PATCH] host context switch reduction Benchmarks Christopher S. Aker

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='05e201c4405e$cebf6610$2000000a@schlepptopp' \
    --to=for_spam@gmx.de \
    --cc=LaurentVivier@wanadoo.fr \
    --cc=blaisorblade_spam@yahoo.it \
    --cc=jdike@addtoit.com \
    --cc=uml@hno.marasystems.com \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /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.