All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] mini-os: some cleanups
@ 2016-08-29  6:17 Juergen Gross
  2016-08-29  6:17 ` [PATCH v2 1/3] mini-os: cleanup x86_32.S Juergen Gross
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Juergen Gross @ 2016-08-29  6:17 UTC (permalink / raw)
  To: minios-devel, xen-devel; +Cc: Juergen Gross, samuel.thibault, wei.liu2

Do some cleanups in Mini-OS.

V2: modified patch 2 as suggested by Andrew Cooper

Juergen Gross (3):
  mini-os: cleanup x86_32.S
  mini-os: cleanup x86_64.S
  mini-os: remove unused functions from sched.c

 arch/x86/x86_32.S |  7 +------
 arch/x86/x86_64.S | 43 +++++++++++++++----------------------------
 sched.c           | 48 ------------------------------------------------
 3 files changed, 16 insertions(+), 82 deletions(-)

-- 
2.6.6


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* [PATCH v2 1/3] mini-os: cleanup x86_32.S
  2016-08-29  6:17 [PATCH v2 0/3] mini-os: some cleanups Juergen Gross
@ 2016-08-29  6:17 ` Juergen Gross
  2016-08-29  6:17 ` [PATCH v2 2/3] mini-os: cleanup x86_64.S Juergen Gross
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Juergen Gross @ 2016-08-29  6:17 UTC (permalink / raw)
  To: minios-devel, xen-devel; +Cc: Juergen Gross, samuel.thibault, wei.liu2

arch/x86/x86_32.S has some superfluous instructions. Remove them.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
---
 arch/x86/x86_32.S | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/arch/x86/x86_32.S b/arch/x86/x86_32.S
index f70fc65..3de0027 100644
--- a/arch/x86/x86_32.S
+++ b/arch/x86/x86_32.S
@@ -111,7 +111,6 @@ do_exception:
     jmp ret_from_exception
     
 ret_from_exception:
-    movb CS(%esp),%cl
     addl $8,%esp
     RESTORE_ALL
 
@@ -140,11 +139,7 @@ ENTRY(hypervisor_callback)
         call do_hypervisor_callback
         add  $4,%esp
         movl HYPERVISOR_shared_info,%esi
-        xorl %eax,%eax
-        movb CS(%esp),%cl
-    	test $2,%cl          # slow return to ring 2 or 3
-        jne  safesti
-safesti:movb $0,1(%esi)     # reenable event callbacks
+        movb $0,1(%esi)     # reenable event callbacks
 scrit:  /**** START OF CRITICAL REGION ****/
         testb $0xFF,(%esi)
         jnz  14f              # process more events if necessary...
-- 
2.6.6


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* [PATCH v2 2/3] mini-os: cleanup x86_64.S
  2016-08-29  6:17 [PATCH v2 0/3] mini-os: some cleanups Juergen Gross
  2016-08-29  6:17 ` [PATCH v2 1/3] mini-os: cleanup x86_32.S Juergen Gross
@ 2016-08-29  6:17 ` Juergen Gross
  2016-08-29  8:51   ` Wei Liu
  2016-08-29  6:17 ` [PATCH v2 3/3] mini-os: remove unused functions from sched.c Juergen Gross
  2016-08-29 10:13 ` [PATCH v2 0/3] mini-os: some cleanups Wei Liu
  3 siblings, 1 reply; 7+ messages in thread
From: Juergen Gross @ 2016-08-29  6:17 UTC (permalink / raw)
  To: minios-devel, xen-devel; +Cc: Juergen Gross, samuel.thibault, wei.liu2

arch/x86/x86_64.S contains some unnecessary macros. Remove them.

Add a SAVE_PARAVIRT macro for saving %rcx and %r11 on the stack in
case of CONFIG_PARAVIRT defined.

Remove the parameter from HYPERVISOR_IRET macro as it is used with
0 only.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2: modify SAVE_PARAVIRT as suggested by Andrew Cooper
---
 arch/x86/x86_64.S | 43 +++++++++++++++----------------------------
 1 file changed, 15 insertions(+), 28 deletions(-)

diff --git a/arch/x86/x86_64.S b/arch/x86/x86_64.S
index 2046187..7529c02 100644
--- a/arch/x86/x86_64.S
+++ b/arch/x86/x86_64.S
@@ -45,21 +45,10 @@ hypercall_page:
 
 
 #define XEN_GET_VCPU_INFO(reg)	movq HYPERVISOR_shared_info,reg
-#define XEN_PUT_VCPU_INFO(reg)
-#define XEN_PUT_VCPU_INFO_fixup
 #define XEN_LOCKED_BLOCK_EVENTS(reg)	movb $1,evtchn_upcall_mask(reg)
 #define XEN_LOCKED_UNBLOCK_EVENTS(reg)	movb $0,evtchn_upcall_mask(reg)
 #define XEN_TEST_PENDING(reg)	testb $0xFF,evtchn_upcall_pending(reg)
 
-#define XEN_BLOCK_EVENTS(reg)	XEN_GET_VCPU_INFO(reg)			; \
-                    			XEN_LOCKED_BLOCK_EVENTS(reg)	; \
-    				            XEN_PUT_VCPU_INFO(reg)
-
-#define XEN_UNBLOCK_EVENTS(reg)	XEN_GET_VCPU_INFO(reg)			; \
-                				XEN_LOCKED_UNBLOCK_EVENTS(reg)	; \
-    			            	XEN_PUT_VCPU_INFO(reg)
-
-
 /* Offsets into shared_info_t. */                
 #define evtchn_upcall_pending		/* 0 */
 #define evtchn_upcall_mask		1
@@ -77,12 +66,15 @@ KERNEL_CS_MASK = 0xfc
 
 
 /* Macros */
+.macro SAVE_PARAVIRT
+#ifdef CONFIG_PARAVIRT
+	pop %rcx
+	pop %r11 /* rsp points to the error code */
+#endif
+.endm
+
 .macro zeroentry sym
-#ifdef CONFIG_PARAVIRT
-	movq (%rsp),%rcx
-	movq 8(%rsp),%r11
-	addq $0x10,%rsp /* skip rcx and r11 */
-#endif
+	SAVE_PARAVIRT
 	pushq $0	/* push error code/oldrax */
 	pushq %rax	/* push real oldrax to the rdi slot */
 	leaq  \sym(%rip),%rax
@@ -90,11 +82,7 @@ KERNEL_CS_MASK = 0xfc
 .endm
 
 .macro errorentry sym
-#ifdef CONFIG_PARAVIRT
-	movq (%rsp),%rcx
-	movq 8(%rsp),%r11
-	addq $0x10,%rsp /* rsp points to the error code */
-#endif
+	SAVE_PARAVIRT
 	pushq %rax
 	leaq  \sym(%rip),%rax
 	jmp error_entry
@@ -141,7 +129,7 @@ KERNEL_CS_MASK = 0xfc
 	movq %rdi, RDI(%rsp)	/* put rdi into the slot */
 .endm
 
-.macro HYPERVISOR_IRET flag
+.macro HYPERVISOR_IRET
 #ifdef CONFIG_PARAVIRT
 	testl $NMI_MASK,2*8(%rsp)
 	jnz   2f
@@ -155,7 +143,7 @@ KERNEL_CS_MASK = 0xfc
 #ifdef CONFIG_PARAVIRT
 2:	/* Slow iret via hypervisor. */
 	andl  $~NMI_MASK, 16(%rsp)
-	pushq $\flag
+	pushq $0
 	jmp  hypercall_page + (__HYPERVISOR_iret * 32)
 #endif
 .endm
@@ -207,17 +195,16 @@ error_exit:
 	andb evtchn_upcall_mask(%rsi),%al
 	andb $1,%al			# EAX[0] == IRET_RFLAGS.IF & event_mask
 	jnz restore_all_enable_events	#        != 0 => enable event delivery
-	XEN_PUT_VCPU_INFO(%rsi)
 
 	RESTORE_ALL
-	HYPERVISOR_IRET 0
+	HYPERVISOR_IRET
 
 restore_all_enable_events:
 	RESTORE_ALL
 	pushq %rax                      # save rax for it will be clobbered later
 	RSP_OFFSET=8                    # record the stack frame layout changes
 	XEN_GET_VCPU_INFO(%rax)         # safe to use rax since it is saved
-	XEN_UNBLOCK_EVENTS(%rax)
+	XEN_LOCKED_UNBLOCK_EVENTS(%rax)
 
 scrit:	/**** START OF CRITICAL REGION ****/
 	XEN_TEST_PENDING(%rax)
@@ -229,7 +216,7 @@ scrit:	/**** START OF CRITICAL REGION ****/
 restore_end:
 	jnz hypervisor_prologue         # safe to jump out of critical region
 	                                # because events are masked if ZF = 0
-	HYPERVISOR_IRET 0
+	HYPERVISOR_IRET
 ecrit:  /**** END OF CRITICAL REGION ****/
 
 # Set up the stack as Xen does before calling event callback
@@ -278,7 +265,7 @@ critical_region_fixup:
 #else
 error_exit:
 	RESTORE_ALL
-	HYPERVISOR_IRET 0
+	HYPERVISOR_IRET
 
 /*
  * Xen event (virtual interrupt) entry point.
-- 
2.6.6


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* [PATCH v2 3/3] mini-os: remove unused functions from sched.c
  2016-08-29  6:17 [PATCH v2 0/3] mini-os: some cleanups Juergen Gross
  2016-08-29  6:17 ` [PATCH v2 1/3] mini-os: cleanup x86_32.S Juergen Gross
  2016-08-29  6:17 ` [PATCH v2 2/3] mini-os: cleanup x86_64.S Juergen Gross
@ 2016-08-29  6:17 ` Juergen Gross
  2016-08-29 10:13 ` [PATCH v2 0/3] mini-os: some cleanups Wei Liu
  3 siblings, 0 replies; 7+ messages in thread
From: Juergen Gross @ 2016-08-29  6:17 UTC (permalink / raw)
  To: minios-devel, xen-devel; +Cc: Juergen Gross, samuel.thibault, wei.liu2

sched.c contains some functions nobody is using. Remove them.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
---
 sched.c | 48 ------------------------------------------------
 1 file changed, 48 deletions(-)

diff --git a/sched.c b/sched.c
index 1e843d9..6f89ea4 100644
--- a/sched.c
+++ b/sched.c
@@ -63,16 +63,6 @@ static int threads_started;
 
 struct thread *main_thread;
 
-void inline print_runqueue(void)
-{
-    struct thread *th;
-    MINIOS_TAILQ_FOREACH(th, &thread_list, thread_list)
-    {
-        printk("   Thread \"%s\", runnable=%d\n", th->name, is_runnable(th));
-    }
-    printk("\n");
-}
-
 void schedule(void)
 {
     struct thread *prev, *next, *thread, *tmp;
@@ -245,44 +235,6 @@ void idle_thread_fn(void *unused)
     }
 }
 
-DECLARE_MUTEX(mutex);
-
-void th_f1(void *data)
-{
-    struct timeval tv1, tv2;
-
-    for(;;)
-    {
-        down(&mutex);
-        printk("Thread \"%s\" got semaphore, runnable %d\n", current->name, is_runnable(current));
-        schedule();
-        printk("Thread \"%s\" releases the semaphore\n", current->name);
-        up(&mutex);
-        
-        
-        gettimeofday(&tv1, NULL);
-        for(;;)
-        {
-            gettimeofday(&tv2, NULL);
-            if(tv2.tv_sec - tv1.tv_sec > 2) break;
-        }
-                
-        
-        schedule(); 
-    }
-}
-
-void th_f2(void *data)
-{
-    for(;;)
-    {
-        printk("Thread OTHER executing, data 0x%p\n", data);
-        schedule();
-    }
-}
-
-
-
 void init_sched(void)
 {
     printk("Initialising scheduler\n");
-- 
2.6.6


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* Re: [PATCH v2 2/3] mini-os: cleanup x86_64.S
  2016-08-29  6:17 ` [PATCH v2 2/3] mini-os: cleanup x86_64.S Juergen Gross
@ 2016-08-29  8:51   ` Wei Liu
  2016-08-29  9:24     ` Samuel Thibault
  0 siblings, 1 reply; 7+ messages in thread
From: Wei Liu @ 2016-08-29  8:51 UTC (permalink / raw)
  To: Juergen Gross; +Cc: minios-devel, xen-devel, wei.liu2, samuel.thibault

On Mon, Aug 29, 2016 at 08:17:21AM +0200, Juergen Gross wrote:
> arch/x86/x86_64.S contains some unnecessary macros. Remove them.
> 
> Add a SAVE_PARAVIRT macro for saving %rcx and %r11 on the stack in
> case of CONFIG_PARAVIRT defined.
> 
> Remove the parameter from HYPERVISOR_IRET macro as it is used with
> 0 only.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Wei Liu <wei.liu2@citrix.com>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* Re: [PATCH v2 2/3] mini-os: cleanup x86_64.S
  2016-08-29  8:51   ` Wei Liu
@ 2016-08-29  9:24     ` Samuel Thibault
  0 siblings, 0 replies; 7+ messages in thread
From: Samuel Thibault @ 2016-08-29  9:24 UTC (permalink / raw)
  To: Wei Liu; +Cc: Juergen Gross, minios-devel, xen-devel

Wei Liu, on Mon 29 Aug 2016 09:51:52 +0100, wrote:
> On Mon, Aug 29, 2016 at 08:17:21AM +0200, Juergen Gross wrote:
> > arch/x86/x86_64.S contains some unnecessary macros. Remove them.
> > 
> > Add a SAVE_PARAVIRT macro for saving %rcx and %r11 on the stack in
> > case of CONFIG_PARAVIRT defined.
> > 
> > Remove the parameter from HYPERVISOR_IRET macro as it is used with
> > 0 only.
> > 
> > Signed-off-by: Juergen Gross <jgross@suse.com>
> 
> Reviewed-by: Wei Liu <wei.liu2@citrix.com>

Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

* Re: [PATCH v2 0/3] mini-os: some cleanups
  2016-08-29  6:17 [PATCH v2 0/3] mini-os: some cleanups Juergen Gross
                   ` (2 preceding siblings ...)
  2016-08-29  6:17 ` [PATCH v2 3/3] mini-os: remove unused functions from sched.c Juergen Gross
@ 2016-08-29 10:13 ` Wei Liu
  3 siblings, 0 replies; 7+ messages in thread
From: Wei Liu @ 2016-08-29 10:13 UTC (permalink / raw)
  To: Juergen Gross; +Cc: minios-devel, xen-devel, wei.liu2, samuel.thibault

On Mon, Aug 29, 2016 at 08:17:19AM +0200, Juergen Gross wrote:
> Do some cleanups in Mini-OS.
> 
> V2: modified patch 2 as suggested by Andrew Cooper
> 
> Juergen Gross (3):
>   mini-os: cleanup x86_32.S
>   mini-os: cleanup x86_64.S
>   mini-os: remove unused functions from sched.c
> 
>  arch/x86/x86_32.S |  7 +------
>  arch/x86/x86_64.S | 43 +++++++++++++++----------------------------
>  sched.c           | 48 ------------------------------------------------
>  3 files changed, 16 insertions(+), 82 deletions(-)
> 

Pushed.

> -- 
> 2.6.6
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

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

end of thread, other threads:[~2016-08-29 10:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-29  6:17 [PATCH v2 0/3] mini-os: some cleanups Juergen Gross
2016-08-29  6:17 ` [PATCH v2 1/3] mini-os: cleanup x86_32.S Juergen Gross
2016-08-29  6:17 ` [PATCH v2 2/3] mini-os: cleanup x86_64.S Juergen Gross
2016-08-29  8:51   ` Wei Liu
2016-08-29  9:24     ` Samuel Thibault
2016-08-29  6:17 ` [PATCH v2 3/3] mini-os: remove unused functions from sched.c Juergen Gross
2016-08-29 10:13 ` [PATCH v2 0/3] mini-os: some cleanups Wei Liu

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.