WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] xenpaging: remove unused spinlock in page

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xenpaging: remove unused spinlock in pager
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Tue, 28 Jun 2011 07:44:13 +0100
Delivery-date: Mon, 27 Jun 2011 23:45:42 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Olaf Hering <olaf@xxxxxxxxx>
# Date 1307695622 -7200
# Node ID 8a7f52c59d64360c6286d6c13e64be7be3cb6157
# Parent  60a174cb4f735f1d911c98f5122b026b64b72643
xenpaging: remove unused spinlock in pager

The spinlock code in the pager is a no-op because xenpaging is a single
threaded application. There is no locking when put_response() places a
response into the ringbuffer.
The only locking is inside the hypervisor, where mem_event_put_request() and
mem_event_get_response() lock the ringbuffer to protect multiple vcpus from
each other.

Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
---


diff -r 60a174cb4f73 -r 8a7f52c59d64 tools/xenpaging/mem_event.h
--- a/tools/xenpaging/mem_event.h       Tue Jun 21 16:51:43 2011 +0100
+++ b/tools/xenpaging/mem_event.h       Fri Jun 10 10:47:02 2011 +0200
@@ -25,7 +25,6 @@
 #define __XEN_MEM_EVENT_H__
 
 
-#include "spinlock.h"
 #include "xc.h"
 #include <xc_private.h>
 
@@ -33,9 +32,6 @@
 #include <xen/mem_event.h>
 
 
-#define mem_event_ring_lock_init(_m)  spin_lock_init(&(_m)->ring_lock)
-#define mem_event_ring_lock(_m)       spin_lock(&(_m)->ring_lock)
-#define mem_event_ring_unlock(_m)     spin_unlock(&(_m)->ring_lock)
 
 
 typedef struct mem_event {
@@ -45,7 +41,6 @@
     mem_event_back_ring_t back_ring;
     mem_event_shared_page_t *shared_page;
     void *ring_page;
-    spinlock_t ring_lock;
 } mem_event_t;
 
 
diff -r 60a174cb4f73 -r 8a7f52c59d64 tools/xenpaging/spinlock.h
--- a/tools/xenpaging/spinlock.h        Tue Jun 21 16:51:43 2011 +0100
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/******************************************************************************
- * tools/xenpaging/spinlock.h
- *
- * Spinlock implementation.
- *
- * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-
-#ifndef __SPINLOCK_H__
-#define __SPINLOCK_H__
-
-
-#include "bitops.h"
-
-
-#define SPIN_LOCK_UNLOCKED 0
-
-
-typedef int spinlock_t;
-
-
-static inline void spin_lock(spinlock_t *lock)
-{
-    while ( test_and_set_bit(1, lock) );
-}
-
-static inline void spin_lock_init(spinlock_t *lock)
-{
-    *lock = SPIN_LOCK_UNLOCKED;
-}
-
-static inline void spin_unlock(spinlock_t *lock)
-{
-    *lock = SPIN_LOCK_UNLOCKED;
-}
-
-static inline int spin_trylock(spinlock_t *lock)
-{
-    return !test_and_set_bit(1, lock);
-}
-
-
-#endif // __SPINLOCK_H__
-
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff -r 60a174cb4f73 -r 8a7f52c59d64 tools/xenpaging/xenpaging.c
--- a/tools/xenpaging/xenpaging.c       Tue Jun 21 16:51:43 2011 +0100
+++ b/tools/xenpaging/xenpaging.c       Fri Jun 10 10:47:02 2011 +0200
@@ -32,7 +32,6 @@
 #include <xen/mem_event.h>
 
 #include "bitops.h"
-#include "spinlock.h"
 #include "file_ops.h"
 #include "xc.h"
 
@@ -127,9 +126,6 @@
     BACK_RING_INIT(&paging->mem_event.back_ring,
                    (mem_event_sring_t *)paging->mem_event.ring_page,
                    PAGE_SIZE);
-
-    /* Initialise lock */
-    mem_event_ring_lock_init(&paging->mem_event);
     
     /* Initialise Xen */
     rc = xc_mem_event_enable(xch, paging->mem_event.domain_id,
@@ -302,8 +298,6 @@
     mem_event_back_ring_t *back_ring;
     RING_IDX req_cons;
 
-    mem_event_ring_lock(mem_event);
-
     back_ring = &mem_event->back_ring;
     req_cons = back_ring->req_cons;
 
@@ -315,8 +309,6 @@
     back_ring->req_cons = req_cons;
     back_ring->sring->req_event = req_cons + 1;
 
-    mem_event_ring_unlock(mem_event);
-
     return 0;
 }
 
@@ -325,8 +317,6 @@
     mem_event_back_ring_t *back_ring;
     RING_IDX rsp_prod;
 
-    mem_event_ring_lock(mem_event);
-
     back_ring = &mem_event->back_ring;
     rsp_prod = back_ring->rsp_prod_pvt;
 
@@ -338,8 +328,6 @@
     back_ring->rsp_prod_pvt = rsp_prod;
     RING_PUSH_RESPONSES(back_ring);
 
-    mem_event_ring_unlock(mem_event);
-
     return 0;
 }
 
diff -r 60a174cb4f73 -r 8a7f52c59d64 tools/xenpaging/xenpaging.h
--- a/tools/xenpaging/xenpaging.h       Tue Jun 21 16:51:43 2011 +0100
+++ b/tools/xenpaging/xenpaging.h       Fri Jun 10 10:47:02 2011 +0200
@@ -25,7 +25,6 @@
 #define __XEN_PAGING2_H__
 
 
-#include "spinlock.h"
 #include "xc.h"
 #include <xc_private.h>
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] xenpaging: remove unused spinlock in pager, Xen patchbot-unstable <=