ia64/xen-unstable

changeset 1587:909193d7ebaa

bitkeeper revision 1.1017 (40dc9f96OFB_jzTG5iFkMtwRXGZoLw)

Merge labyrinth.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk
into labyrinth.cl.cam.ac.uk:/auto/anfs/scratch/labyrinth/iap10/xeno-clone/xeno.bk
author iap10@labyrinth.cl.cam.ac.uk
date Fri Jun 25 21:56:38 2004 +0000 (2004-06-25)
parents e87e1ca75a41 9bf7f06d7614
children bed9d3625f2e
files linux-2.4.26-xen-sparse/arch/xen/drivers/evtchn/evtchn.c linux-2.4.26-xen-sparse/include/asm-xen/evtchn.h xen/common/event_channel.c xen/include/hypervisor-ifs/hypervisor-if.h xen/include/xen/event.h
line diff
     1.1 --- a/linux-2.4.26-xen-sparse/arch/xen/drivers/evtchn/evtchn.c	Fri Jun 25 13:31:47 2004 +0000
     1.2 +++ b/linux-2.4.26-xen-sparse/arch/xen/drivers/evtchn/evtchn.c	Fri Jun 25 21:56:38 2004 +0000
     1.3 @@ -47,7 +47,6 @@ static spinlock_t lock;
     1.4  
     1.5  void evtchn_device_upcall(int port)
     1.6  {
     1.7 -    u16 port_subtype;
     1.8      shared_info_t *s = HYPERVISOR_shared_info;
     1.9  
    1.10      spin_lock(&lock);
    1.11 @@ -55,16 +54,11 @@ void evtchn_device_upcall(int port)
    1.12      mask_evtchn(port);
    1.13      clear_evtchn(port);
    1.14  
    1.15 -    if ( likely(!synch_test_and_clear_bit(port, &s->evtchn_exception[0])) )
    1.16 -        port_subtype = PORT_NORMAL;
    1.17 -    else
    1.18 -        port_subtype = PORT_EXCEPTION;
    1.19 -
    1.20      if ( ring != NULL )
    1.21      {
    1.22          if ( (ring_prod - ring_cons) < RING_SIZE )
    1.23          {
    1.24 -            ring[RING_MASK(ring_prod)] = (u16)port | port_subtype;
    1.25 +            ring[RING_MASK(ring_prod)] = (u16)port;
    1.26              if ( ring_cons == ring_prod++ )
    1.27              {
    1.28                  wake_up_interruptible(&evtchn_wait);
     2.1 --- a/linux-2.4.26-xen-sparse/include/asm-xen/evtchn.h	Fri Jun 25 13:31:47 2004 +0000
     2.2 +++ b/linux-2.4.26-xen-sparse/include/asm-xen/evtchn.h	Fri Jun 25 21:56:38 2004 +0000
     2.3 @@ -57,12 +57,6 @@ static inline void clear_evtchn(int port
     2.4      synch_clear_bit(port, &s->evtchn_pending[0]);
     2.5  }
     2.6  
     2.7 -static inline void clear_evtchn_exception(int port)
     2.8 -{
     2.9 -    shared_info_t *s = HYPERVISOR_shared_info;
    2.10 -    synch_clear_bit(port, &s->evtchn_exception[0]);
    2.11 -}
    2.12 -
    2.13  static inline void notify_via_evtchn(int port)
    2.14  {
    2.15      evtchn_op_t op;
    2.16 @@ -75,10 +69,6 @@ static inline void notify_via_evtchn(int
    2.17   * CHARACTER-DEVICE DEFINITIONS
    2.18   */
    2.19  
    2.20 -#define PORT_NORMAL    0x0000
    2.21 -#define PORT_EXCEPTION 0x8000
    2.22 -#define PORTIDX_MASK   0x7fff
    2.23 -
    2.24  /* /dev/xen/evtchn resides at device number major=10, minor=200 */
    2.25  #define EVTCHN_MINOR 200
    2.26  
     3.1 --- a/xen/common/event_channel.c	Fri Jun 25 13:31:47 2004 +0000
     3.2 +++ b/xen/common/event_channel.c	Fri Jun 25 21:56:38 2004 +0000
     3.3 @@ -126,9 +126,6 @@ static long evtchn_bind_interdomain(evtc
     3.4      d2->event_channel[port2].u.remote.port = (u16)port1;
     3.5      d2->event_channel[port2].state         = ECS_INTERDOMAIN;
     3.6  
     3.7 -    evtchn_set_pending(d1, port1);
     3.8 -    evtchn_set_pending(d2, port2);
     3.9 -    
    3.10   out:
    3.11      spin_unlock(&d1->event_channel_lock);
    3.12      if ( d1 != d2 )
    3.13 @@ -299,8 +296,6 @@ static long __evtchn_close(struct domain
    3.14              BUG();
    3.15  
    3.16          chn2[port2].state = ECS_UNBOUND;
    3.17 -        evtchn_set_exception(d2, port2);
    3.18 -
    3.19          break;
    3.20  
    3.21      default:
    3.22 @@ -308,7 +303,6 @@ static long __evtchn_close(struct domain
    3.23      }
    3.24  
    3.25      chn1[port1].state = ECS_FREE;
    3.26 -    evtchn_set_exception(d1, port1);
    3.27  
    3.28   out:
    3.29      if ( d2 != NULL )
     4.1 --- a/xen/include/hypervisor-ifs/hypervisor-if.h	Fri Jun 25 13:31:47 2004 +0000
     4.2 +++ b/xen/include/hypervisor-ifs/hypervisor-if.h	Fri Jun 25 21:56:38 2004 +0000
     4.3 @@ -268,14 +268,10 @@ typedef struct shared_info_st
     4.4       *     device or the emergency console.
     4.5       * 
     4.6       * Event channels are addressed by a "port index" between 0 and 1023.
     4.7 -     * Each channel is associated with three bits of information:
     4.8 +     * Each channel is associated with two bits of information:
     4.9       *  1. PENDING -- notifies the domain that there is a pending notification
    4.10       *     to be processed. This bit is cleared by the guest.
    4.11 -     *  2. EXCEPTION -- notifies the domain that there has been some
    4.12 -     *     exceptional event associated with this channel (e.g. remote
    4.13 -     *     disconnect, physical IRQ error). This bit is cleared by the guest.
    4.14 -     *     A 0->1 transition of this bit will cause the PENDING bit to be set.
    4.15 -     *  3. MASK -- if this bit is clear then a 0->1 transition of PENDING
    4.16 +     *  2. MASK -- if this bit is clear then a 0->1 transition of PENDING
    4.17       *     will cause an asynchronous upcall to be scheduled. This bit is only
    4.18       *     updated by the guest. It is read-only within Xen. If a channel
    4.19       *     becomes pending while the channel is masked then the 'edge' is lost
    4.20 @@ -289,14 +285,13 @@ typedef struct shared_info_st
    4.21       */
    4.22      u32 evtchn_pending[32];             /*   4 */
    4.23      u32 evtchn_pending_sel;             /* 132 */
    4.24 -    u32 evtchn_exception[32];           /* 136 */
    4.25 -    u32 evtchn_mask[32];                /* 264 */
    4.26 +    u32 evtchn_mask[32];                /* 136 */
    4.27  
    4.28      /*
    4.29       * Time: The following abstractions are exposed: System Time, Clock Time,
    4.30       * Domain Virtual Time. Domains can access Cycle counter time directly.
    4.31       */
    4.32 -    u64                cpu_freq;        /* 392: CPU frequency (Hz).          */
    4.33 +    u64                cpu_freq;        /* 264: CPU frequency (Hz).          */
    4.34  
    4.35      /*
    4.36       * The following values are updated periodically (and not necessarily
    4.37 @@ -305,8 +300,8 @@ typedef struct shared_info_st
    4.38       * incremented immediately after. See the Xen-specific Linux code for an
    4.39       * example of how to read these values safely (arch/xen/kernel/time.c).
    4.40       */
    4.41 -    u32                time_version1;   /* 400 */
    4.42 -    u32                time_version2;   /* 404 */
    4.43 +    u32                time_version1;   /* 272 */
    4.44 +    u32                time_version2;   /* 276 */
    4.45      tsc_timestamp_t    tsc_timestamp;   /* TSC at last update of time vals.  */
    4.46      u64                system_time;     /* Time, in nanosecs, since boot.    */
    4.47      u32                wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
    4.48 @@ -318,10 +313,10 @@ typedef struct shared_info_st
    4.49       * Allow a domain to specify a timeout value in system time and 
    4.50       * domain virtual time.
    4.51       */
    4.52 -    u64                wall_timeout;    /* 440 */
    4.53 -    u64                domain_timeout;  /* 448 */
    4.54 +    u64                wall_timeout;    /* 312 */
    4.55 +    u64                domain_timeout;  /* 320 */
    4.56  
    4.57 -    execution_context_t execution_context; /* 456 */
    4.58 +    execution_context_t execution_context; /* 328 */
    4.59  
    4.60  } PACKED shared_info_t;
    4.61  
     5.1 --- a/xen/include/xen/event.h	Fri Jun 25 13:31:47 2004 +0000
     5.2 +++ b/xen/include/xen/event.h	Fri Jun 25 21:56:38 2004 +0000
     5.3 @@ -46,12 +46,6 @@ static inline void evtchn_set_pending(st
     5.4      }
     5.5  }
     5.6  
     5.7 -static inline void evtchn_set_exception(struct domain *d, int port)
     5.8 -{
     5.9 -    if ( !test_and_set_bit(port, &d->shared_info->evtchn_exception[0]) )
    5.10 -        evtchn_set_pending(d, port);
    5.11 -}
    5.12 -
    5.13  /*
    5.14   * send_guest_virq:
    5.15   *  @d:        Domain to which virtual IRQ should be sent