[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Merge with latest xen-unstable
# HG changeset patch # User djm@xxxxxxxxxxxxxxx # Node ID 1efe6f4163ee6c7740719da717a2bd8006a679ca # Parent 24dd9a53dd95c062f9f4a68489e00a2c3d7bab56 # Parent 0db6a59abb955be772d94ba32fe1a34a26db86da Merge with latest xen-unstable diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.4-xen-sparse/arch/xen/Makefile --- a/linux-2.4-xen-sparse/arch/xen/Makefile Mon Aug 1 19:11:00 2005 +++ b/linux-2.4-xen-sparse/arch/xen/Makefile Mon Aug 1 19:19:36 2005 @@ -61,7 +61,7 @@ SUBDIRS += arch/xen/drivers/evtchn SUBDIRS += arch/xen/drivers/blkif SUBDIRS += arch/xen/drivers/netif -SUBDIRS += arch/xen/drivers/usbif +#SUBDIRS += arch/xen/drivers/usbif SUBDIRS += arch/xen/drivers/balloon ifdef CONFIG_XEN_PRIVILEGED_GUEST SUBDIRS += arch/xen/drivers/dom0 diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.4-xen-sparse/arch/xen/kernel/time.c --- a/linux-2.4-xen-sparse/arch/xen/kernel/time.c Mon Aug 1 19:11:00 2005 +++ b/linux-2.4-xen-sparse/arch/xen/kernel/time.c Mon Aug 1 19:19:36 2005 @@ -225,21 +225,30 @@ */ static void __get_time_values_from_xen(void) { - do { - shadow_time_version = HYPERVISOR_shared_info->time_version2; - rmb(); - shadow_tv.tv_sec = HYPERVISOR_shared_info->wc_sec; - shadow_tv.tv_usec = HYPERVISOR_shared_info->wc_usec; - shadow_tsc_stamp = - (u32)(HYPERVISOR_shared_info->tsc_timestamp >> rdtsc_bitshift); - shadow_system_time = HYPERVISOR_shared_info->system_time; - rmb(); - } - while ( shadow_time_version != HYPERVISOR_shared_info->time_version1 ); -} - -#define TIME_VALUES_UP_TO_DATE \ - ({ rmb(); (shadow_time_version == HYPERVISOR_shared_info->time_version2); }) + shared_info_t *s = HYPERVISOR_shared_info; + struct vcpu_time_info *src; + struct shadow_time_info *dst; + + src = &s->vcpu_time[smp_processor_id()]; + dst = &per_cpu(shadow_time, smp_processor_id()); + + do { + dst->version = src->time_version2; + rmb(); + dst->tsc_timestamp = src->tsc_timestamp; + dst->system_timestamp = src->system_time; + dst->tsc_to_nsec_mul = src->tsc_to_system_mul; + dst->tsc_shift = src->tsc_shift; + rmb(); + } + while (dst->version != src->time_version1); + + dst->tsc_to_usec_mul = dst->tsc_to_nsec_mul / 1000; + + if ((shadow_tv.tv_sec != s->wc_sec) || + (shadow_tv.tv_usec != s->wc_usec)) + update_wallclock(); +} /* @@ -263,6 +272,17 @@ return (unsigned long)delta; } +static inline int time_values_up_to_date() +{ + struct vcpu_time_info *src; + struct shadow_time_info *dst; + + src = &HYPERVISOR_shared_info->vcpu_time[smp_processor_id()]; + dst = &per_cpu(shadow_time, smp_processor_id()); + + return (dst->version == src->time_version2); +} + /* * Returns the current time-of-day in UTC timeval format. @@ -286,7 +306,7 @@ __normalize_time(&_tv.tv_sec, &nsec); _tv.tv_usec += (long)nsec / 1000L; - if ( unlikely(!TIME_VALUES_UP_TO_DATE) ) + if ( unlikely(!time_values_up_to_date()) ) { /* * We may have blocked for a long time, rendering our calculations diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.4-xen-sparse/mkbuildtree --- a/linux-2.4-xen-sparse/mkbuildtree Mon Aug 1 19:11:00 2005 +++ b/linux-2.4-xen-sparse/mkbuildtree Mon Aug 1 19:19:36 2005 @@ -102,8 +102,8 @@ relative_lndir ${RS} rm -f mkbuildtree -set ${RS}/../linux-2.6.*-xen-sparse -[ "$1" == "${RS}/../linux-2.6.*-xen-parse" ] && { echo "no Linux 2.6 sparse tree at ${RS}/../linux-2.6.*-xen-sparse"; exit 1; } +set ${RS}/../linux-2.6-xen-sparse +[ "$1" == "${RS}/../linux-2.6-xen-parse" ] && { echo "no Linux 2.6 sparse tree at ${RS}/../linux-2.6-xen-sparse"; exit 1; } LINUX_26="$1" diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 --- a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 Mon Aug 1 19:19:36 2005 @@ -18,8 +18,8 @@ CONFIG_XEN_NETDEV_BACKEND=y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y -# CONFIG_XEN_NETDEV_GRANT_TX is not set -# CONFIG_XEN_NETDEV_GRANT_RX is not set +CONFIG_XEN_NETDEV_GRANT_TX=y + CONFIG_XEN_NETDEV_GRANT_RX=y # CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_SHADOW_MODE is not set diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 --- a/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32 Mon Aug 1 19:19:36 2005 @@ -15,8 +15,8 @@ CONFIG_XEN_BLKDEV_GRANT=y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y -# CONFIG_XEN_NETDEV_GRANT_TX is not set -# CONFIG_XEN_NETDEV_GRANT_RX is not set +CONFIG_XEN_NETDEV_GRANT_TX=y +CONFIG_XEN_NETDEV_GRANT_RX=y # CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_SHADOW_MODE is not set diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c Mon Aug 1 19:19:36 2005 @@ -295,14 +295,11 @@ struct vcpu_time_info *src; struct shadow_time_info *dst; - src = &HYPERVISOR_shared_info->vcpu_time[smp_processor_id()]; - dst = &per_cpu(shadow_time, smp_processor_id()); + src = &HYPERVISOR_shared_info->vcpu_time[cpu]; + dst = &per_cpu(shadow_time, cpu); return (dst->version == src->time_version2); } - -#define TIME_VALUES_UP_TO_DATE \ - ({ rmb(); (shadow_time_version == HYPERVISOR_shared_info->time_version2); }) /* * This is a special lock that is owned by the CPU and holds the index diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/arch/xen/i386/kernel/traps.c --- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/traps.c Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/traps.c Mon Aug 1 19:19:36 2005 @@ -90,9 +90,7 @@ static int kstack_depth_to_print = 24; struct notifier_block *i386die_chain; -DEFINE_SPINLOCK(die_notifier_lock); -EXPORT_SYMBOL(die_notifier_lock); -EXPORT_SYMBOL(i386die_chain); +static DEFINE_SPINLOCK(die_notifier_lock); int register_die_notifier(struct notifier_block *nb) { diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c Mon Aug 1 19:19:36 2005 @@ -329,11 +329,11 @@ buffer_ma >> PAGE_SHIFT; ring_req->frame_and_sects[ring_req->nr_segments++] = - (((u32) ref) << 16) | (fsect << 3) | lsect; + blkif_fas_from_gref(ref, fsect, lsect); #else ring_req->frame_and_sects[ring_req->nr_segments++] = - buffer_ma | (fsect << 3) | lsect; + blkif_fas(buffer_ma, fsect, lsect); #endif } } @@ -832,10 +832,10 @@ buffer_ma >> PAGE_SHIFT; req->frame_and_sects[req->nr_segments] = - (((u32) ref ) << 16) | (fsect << 3) | lsect; + blkif_fas_from_gref(ref, fsect, lsect); #else req->frame_and_sects[req->nr_segments] = - buffer_ma | (fsect << 3) | lsect; + blkif_fas(buffer_ma, fsect, lsect); #endif if ( ++req->nr_segments < BLKIF_MAX_SEGMENTS_PER_REQUEST ) sg_next_sect += nr_sectors; @@ -887,9 +887,9 @@ blk_shadow[xid].frame[0] = buffer_ma >> PAGE_SHIFT; - req->frame_and_sects[0] = (((u32) ref)<<16) | (fsect<<3) | lsect; + req->frame_and_sects[0] = blkif_fas_from_gref(ref, fsect, lsect); #else - req->frame_and_sects[0] = buffer_ma | (fsect<<3) | lsect; + req->frame_and_sects[0] = blkif_fas(buffer_ma, fsect, lsect); #endif /* Keep a private copy so we can reissue requests when recovering. */ @@ -1057,7 +1057,7 @@ gnttab_grant_foreign_access_ref( ref, rdomid, address >> PAGE_SHIFT, 0 ); - req->frame_and_sects[0] = (((u32) ref) << 16) | 7; + req->frame_and_sects[0] = blkif_fas_from_gref(ref, 0, (PAGE_SIZE/512)-1); blkif_control_send(req, rsp); } diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c --- a/linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c Mon Aug 1 19:19:36 2005 @@ -137,7 +137,7 @@ blkif_control_probe_send(&req, &rsp, (unsigned long)(virt_to_machine(buf))); #else - req.frame_and_sects[0] = virt_to_machine(buf) | 7; + req.frame_and_sects[0] = blkif_fas(virt_to_machine(buf), 0, ((PAGE_SIZE/512)-1); blkif_control_send(&req, &rsp); #endif diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.6-xen-sparse/include/asm-xen/hypervisor.h --- a/linux-2.6-xen-sparse/include/asm-xen/hypervisor.h Mon Aug 1 19:11:00 2005 +++ b/linux-2.6-xen-sparse/include/asm-xen/hypervisor.h Mon Aug 1 19:19:36 2005 @@ -46,6 +46,8 @@ # else # include <asm-generic/pgtable-nopmd.h> # endif +# else +# define pud_t pgd_t # endif #endif diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/Makefile --- a/tools/debugger/pdb/Makefile Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/Makefile Mon Aug 1 19:19:36 2005 @@ -33,7 +33,7 @@ LIBS += unix str # bc = byte-code, dc = debug byte-code -all : dc +all : patches dc SOURCES += pdb_caml_xc.c SOURCES += pdb_caml_domain.c pdb_caml_process.c @@ -50,3 +50,6 @@ include $(OCAMLMAKEFILE) +PATCHDIR = ./linux-2.6-patches +patches : + make -C $(PATCHDIR) patches diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-module/module.c --- a/tools/debugger/pdb/linux-2.6-module/module.c Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-module/module.c Mon Aug 1 19:19:36 2005 @@ -278,14 +278,10 @@ return err; } -extern struct notifier_block *i386die_chain; -extern spinlock_t die_notifier_lock; - static void __exit pdb_terminate(void) { int err = 0; - unsigned long flags; printk("pdb cleanup\n"); @@ -305,9 +301,8 @@ pdb_send_connection_status(PDB_CONNECTION_STATUS_DOWN, 0); - spin_lock_irqsave(&die_notifier_lock, flags); - err = notifier_chain_unregister(&i386die_chain, &pdb_exceptions_nb); - spin_unlock_irqrestore(&die_notifier_lock, flags); + /* handler for int1 & int3 */ + err = unregister_die_notifier(&pdb_exceptions_nb); return; } diff -r 24dd9a53dd95 -r 1efe6f4163ee xen/arch/x86/vmx_intercept.c --- a/xen/arch/x86/vmx_intercept.c Mon Aug 1 19:11:00 2005 +++ b/xen/arch/x86/vmx_intercept.c Mon Aug 1 19:19:36 2005 @@ -197,8 +197,7 @@ static void pit_timer_fn(void *data) { struct vmx_virpit_t *vpit = data; - s_time_t next; - int missed_ticks; + int missed_ticks; missed_ticks = (NOW() - vpit->scheduled) / MILLISECS(vpit->period); @@ -208,12 +207,11 @@ /* pick up missed timer tick */ if ( missed_ticks > 0 ) { - vpit->pending_intr_nr+= missed_ticks; + vpit->pending_intr_nr += missed_ticks; vpit->scheduled += missed_ticks * MILLISECS(vpit->period); } - next = vpit->scheduled + MILLISECS(vpit->period); - set_ac_timer(&vpit->pit_timer, next); - vpit->scheduled = next; + vpit->scheduled += MILLISECS(vpit->period); + set_ac_timer(&vpit->pit_timer, vpit->scheduled); } diff -r 24dd9a53dd95 -r 1efe6f4163ee xen/include/public/io/blkif.h --- a/xen/include/public/io/blkif.h Mon Aug 1 19:11:00 2005 +++ b/xen/include/public/io/blkif.h Mon Aug 1 19:19:36 2005 @@ -36,7 +36,7 @@ blkif_vdev_t device; /* only for read/write requests */ unsigned long id; /* private guest value, echoed in resp */ blkif_sector_t sector_number;/* start sector idx on disk (r/w only) */ - /* @f_a_s[2:0]=last_sect ; @f_a_s[5:3]=first_sect */ + /* @f_a_s[4:0]=last_sect ; @f_a_s[9:5]=first_sect */ #ifdef CONFIG_XEN_BLKDEV_GRANT /* @f_a_s[:16]= grant reference (16 bits) */ #else @@ -47,10 +47,12 @@ unsigned long frame_and_sects[BLKIF_MAX_SEGMENTS_PER_REQUEST]; } blkif_request_t; -#define blkif_first_sect(_fas) (((_fas)>>3)&7) -#define blkif_last_sect(_fas) ((_fas)&7) +#define blkif_fas(_addr, _fs, _ls) ((addr)|((_fs)<<5)|(_ls)) +#define blkif_first_sect(_fas) (((_fas)>>5)&31) +#define blkif_last_sect(_fas) ((_fas)&31) #ifdef CONFIG_XEN_BLKDEV_GRANT +#define blkif_fas_from_gref(_gref, _fs, _ls) (((_gref)<<16)|((_fs)<<5)|(_ls)) #define blkif_gref_from_fas(_fas) ((_fas)>>16) #endif diff -r 24dd9a53dd95 -r 1efe6f4163ee xen/include/xen/time.h --- a/xen/include/xen/time.h Mon Aug 1 19:11:00 2005 +++ b/xen/include/xen/time.h Mon Aug 1 19:19:36 2005 @@ -51,9 +51,9 @@ s_time_t get_s_time(void); #define NOW() ((s_time_t)get_s_time()) -#define SECONDS(_s) (((s_time_t)(_s)) * 1000000000ULL ) -#define MILLISECS(_ms) (((s_time_t)(_ms)) * 1000000ULL ) -#define MICROSECS(_us) (((s_time_t)(_us)) * 1000ULL ) +#define SECONDS(_s) ((s_time_t)((_s) * 1000000000ULL)) +#define MILLISECS(_ms) ((s_time_t)((_ms) * 1000000ULL)) +#define MICROSECS(_us) ((s_time_t)((_us) * 1000ULL)) extern void update_dom_time(struct vcpu *v); extern void do_settime( diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-patches/Makefile --- /dev/null Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-patches/Makefile Mon Aug 1 19:19:36 2005 @@ -0,0 +1,10 @@ +XEN_ROOT = ../../../.. +LINUX_DIR = linux-2.6.12-xenU +KDIR = $(XEN_ROOT)/$(LINUX_DIR) +PATCH_DIR = $(CURDIR) + +patches : patches-done + +patches-done : + ( for i in *.patch ; do ( cd $(KDIR) ; patch -p1 < $(PATCH_DIR)/$$i || exit 1 ) ; done ) + touch $@ diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-patches/i386_ksyms.patch --- /dev/null Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-patches/i386_ksyms.patch Mon Aug 1 19:19:36 2005 @@ -0,0 +1,11 @@ +diff -u linux-2.6.12/arch/xen/i386/kernel/i386_ksyms.c linux-2.6.12-pdb/arch/xen/i386/kernel/i386_ksyms.c +--- linux-2.6.12/arch/xen/i386/kernel/i386_ksyms.c 2005-07-31 22:36:50.000000000 +0100 ++++ linux-2.6.12-pdb/arch/xen/i386/kernel/i386_ksyms.c 2005-08-01 10:57:31.000000000 +0100 +@@ -172,6 +172,7 @@ + EXPORT_SYMBOL_GPL(unset_nmi_callback); + + EXPORT_SYMBOL(register_die_notifier); ++EXPORT_SYMBOL(unregister_die_notifier); + #ifdef CONFIG_HAVE_DEC_LOCK + EXPORT_SYMBOL(_atomic_dec_and_lock); + #endif diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-patches/kdebug.patch --- /dev/null Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-patches/kdebug.patch Mon Aug 1 19:19:36 2005 @@ -0,0 +1,11 @@ +diff -u linux-2.6.12/include/asm-i386/kdebug.h linux-2.6.12-pdb/include/asm-i386/kdebug.h +--- linux-2.6.12/include/asm-i386/kdebug.h 2005-06-17 20:48:29.000000000 +0100 ++++ linux-2.6.12-pdb/include/asm-i386/kdebug.h 2005-08-01 11:11:53.000000000 +0100 +@@ -21,6 +21,7 @@ + If you really want to do it first unregister - then synchronize_kernel - then free. + */ + int register_die_notifier(struct notifier_block *nb); ++int unregister_die_notifier(struct notifier_block *nb); + extern struct notifier_block *i386die_chain; + + diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-patches/makefile.patch --- /dev/null Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-patches/makefile.patch Mon Aug 1 19:19:36 2005 @@ -0,0 +1,12 @@ +diff -Naur linux-2.6.12/Makefile linux-2.6.12-pdb/Makefile +--- linux-2.6.12/Makefile 2005-08-01 01:21:21.000000000 +0100 ++++ linux-2.6.12-pdb/Makefile 2005-08-01 10:28:10.000000000 +0100 +@@ -508,7 +508,7 @@ + ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE + CFLAGS += -Os + else +-CFLAGS += -O2 ++CFLAGS += -O + endif + + #Add align options if CONFIG_CC_* is not equal to 0 diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-patches/ptrace.patch --- /dev/null Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-patches/ptrace.patch Mon Aug 1 19:19:36 2005 @@ -0,0 +1,11 @@ +diff -u linux-2.6.12/kernel/ptrace.c linux-2.6.12-pdb/kernel/ptrace.c +--- linux-2.6.12/kernel/ptrace.c 2005-06-17 20:48:29.000000000 +0100 ++++ linux-2.6.12-pdb/kernel/ptrace.c 2005-07-22 13:23:16.000000000 +0100 +@@ -239,6 +239,7 @@ + + return buf - old_buf; + } ++EXPORT_SYMBOL(access_process_vm); + + int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len) + { diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/linux-2.6-patches/traps.patch --- /dev/null Mon Aug 1 19:11:00 2005 +++ b/tools/debugger/pdb/linux-2.6-patches/traps.patch Mon Aug 1 19:19:36 2005 @@ -0,0 +1,20 @@ +diff -u linux-2.6.12/arch/xen/i386/kernel/traps.c linux-2.6.12-pdb/arch/xen/i386/kernel/traps.c +--- linux-2.6.12/arch/xen/i386/kernel/traps.c 2005-07-31 22:47:00.000000000 +0100 ++++ linux-2.6.12-pdb/arch/xen/i386/kernel/traps.c 2005-07-31 22:47:32.000000000 +0100 +@@ -102,6 +102,16 @@ + return err; + } + ++int unregister_die_notifier(struct notifier_block *nb) ++{ ++ int err = 0; ++ unsigned long flags; ++ spin_lock_irqsave(&die_notifier_lock, flags); ++ err = notifier_chain_unregister(&i386die_chain, nb); ++ spin_unlock_irqrestore(&die_notifier_lock, flags); ++ return err; ++} ++ + static inline int valid_stack_ptr(struct thread_info *tinfo, void *p) + { + return p > (void *)tinfo && _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |