Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK)) by mollari.NetBSD.org (Postfix) with ESMTPS id 4D4577A16A for ; Tue, 14 Feb 2017 21:38:36 +0000 (UTC) Received: by mail.netbsd.org (Postfix, from userid 605) id E0D13855C7; Tue, 14 Feb 2017 21:38:35 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 720668557C for ; Tue, 14 Feb 2017 21:38:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id 8wEyC6ADpkOb for ; Tue, 14 Feb 2017 21:38:34 +0000 (UTC) Received: from cvs.NetBSD.org (unknown [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 7985084CBD for ; Tue, 14 Feb 2017 21:38:34 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 70597FBE3; Tue, 14 Feb 2017 21:38:34 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1487108314200620" MIME-Version: 1.0 Date: Tue, 14 Feb 2017 21:38:34 +0000 From: "Joerg Sonnenberger" Subject: CVS commit: pkgsrc/sysutils/xenkernel46 To: pkgsrc-changes@NetBSD.org Reply-To: joerg@netbsd.org X-Mailer: log_accum Message-Id: <20170214213834.70597FBE3@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: pkgsrc-changes.NetBSD.org Precedence: bulk This is a multi-part message in MIME format. --_----------=_1487108314200620 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: joerg Date: Tue Feb 14 21:38:34 UTC 2017 Modified Files: pkgsrc/sysutils/xenkernel46: Makefile distinfo Added Files: pkgsrc/sysutils/xenkernel46/patches: patch-tools_xentrace_xenalyze.c patch-xen_arch_x86_mm.c patch-xen_arch_x86_xen.lds.S patch-xen_include_asm-x86_spinlock.h Log Message: Disable a couple more warnings for the clang build and merge some patches from Git to fix another set of issues. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 pkgsrc/sysutils/xenkernel46/Makefile cvs rdiff -u -r1.5 -r1.6 pkgsrc/sysutils/xenkernel46/distinfo cvs rdiff -u -r0 -r1.1 \ pkgsrc/sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c \ pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_mm.c \ pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_xen.lds.S \ pkgsrc/sysutils/xenkernel46/patches/patch-xen_include_asm-x86_spinlock.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1487108314200620 Content-Disposition: inline Content-Length: 13758 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/sysutils/xenkernel46/Makefile diff -u pkgsrc/sysutils/xenkernel46/Makefile:1.8 pkgsrc/sysutils/xenkernel46/Makefile:1.9 --- pkgsrc/sysutils/xenkernel46/Makefile:1.8 Sun Jan 1 14:43:59 2017 +++ pkgsrc/sysutils/xenkernel46/Makefile Tue Feb 14 21:38:34 2017 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.8 2017/01/01 14:43:59 wiz Exp $ +# $NetBSD: Makefile,v 1.9 2017/02/14 21:38:34 joerg Exp $ VERSION= 4.6.3 DISTNAME= xen-${VERSION} @@ -34,7 +34,10 @@ MESSAGE_SUBST+= XENKERNELDIR=${XENKERNE EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \ -Wno-error=parentheses-equality -Wno-error=enum-conversion \ -Wno-error=unused-function -Wno-error=unused-const-variable \ - -Wno-error=ignored-attributes -Wno-error=initializer-overrides + -Wno-error=ignored-attributes -Wno-error=constant-conversion \ + -Wno-error=address-of-packed-member \ + -Wno-error=initializer-overrides \ + -Wno-error=tautological-compare .endif MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q} Index: pkgsrc/sysutils/xenkernel46/distinfo diff -u pkgsrc/sysutils/xenkernel46/distinfo:1.5 pkgsrc/sysutils/xenkernel46/distinfo:1.6 --- pkgsrc/sysutils/xenkernel46/distinfo:1.5 Wed Dec 21 15:36:39 2016 +++ pkgsrc/sysutils/xenkernel46/distinfo Tue Feb 14 21:38:34 2017 @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.5 2016/12/21 15:36:39 bouyer Exp $ +$NetBSD: distinfo,v 1.6 2017/02/14 21:38:34 joerg Exp $ SHA1 (xen-4.6.3.tar.gz) = 2aa59d0a05a6c5ac7f336f2069c66a54f95c4349 RMD160 (xen-4.6.3.tar.gz) = 2798bd888ee001a4829165e55feb705a86af4f74 @@ -20,9 +20,13 @@ SHA1 (patch-XSA-200) = 37254653e3f9016de SHA1 (patch-XSA-202) = 52cb1da3bb078f6b7574f606b8c9cacdf24f6518 SHA1 (patch-XSA-203) = 43310c4e95e0070a24e6a847502e057b9e0eefe9 SHA1 (patch-XSA-204) = 05defb8d99976a712024d35a81f4dde5627107d9 +SHA1 (patch-tools_xentrace_xenalyze.c) = ab973cb7090dc90867dcddf9ab8965f8f2f36c46 SHA1 (patch-xen_Makefile) = be3f4577a205b23187b91319f91c50720919f70b SHA1 (patch-xen_arch_x86_Rules.mk) = 7b0894ba7311edb02118a021671f304cf3872154 +SHA1 (patch-xen_arch_x86_mm.c) = 3c1435fa5db6a0f542e5efe726997f262fa04041 +SHA1 (patch-xen_arch_x86_xen.lds.S) = 58a890c404ca4f86ccfb58cf5a83b07e235034fc SHA1 (patch-xen_common_page__alloc.c) = c4d606de1cada8cf89b5abd16efada3d58c68a03 SHA1 (patch-xen_drivers_passthrough_vtd_x86_ats.c) = f72fd4bb2aeeaeb0b167031dfd5498e73666aa4e SHA1 (patch-xen_include_asm-x86_current.h) = 8a21577be06383c0c7f53c15ba828f77fb6314ad +SHA1 (patch-xen_include_asm-x86_spinlock.h) = a78fe84c87632f0524af255f173676732418a75e SHA1 (patch-xen_include_xen_lib.h) = 82a219b7d9c5deaa2b8e0adc774f60395adc4815 Added files: Index: pkgsrc/sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c diff -u /dev/null pkgsrc/sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c:1.1 --- /dev/null Tue Feb 14 21:38:34 2017 +++ pkgsrc/sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c Tue Feb 14 21:38:34 2017 @@ -0,0 +1,264 @@ +$NetBSD: patch-tools_xentrace_xenalyze.c,v 1.1 2017/02/14 21:38:34 joerg Exp $ + +Based on 28ab9f3d0e7cbb22f5ce77500af7873f6e2d3c59. + +--- tools/xentrace/xenalyze.c.orig 2016-06-20 12:08:22.000000000 +0000 ++++ tools/xentrace/xenalyze.c +@@ -509,7 +509,6 @@ struct { + #define HVM_VMX_EXIT_REASON_MAX (EXIT_REASON_XSETBV+1) + + char * hvm_vmx_exit_reason_name[HVM_VMX_EXIT_REASON_MAX] = { +- [0] = "NONE", + [EXIT_REASON_EXCEPTION_NMI]="EXCEPTION_NMI", + [EXIT_REASON_EXTERNAL_INTERRUPT]="EXTERNAL_INTERRUPT", + [EXIT_REASON_TRIPLE_FAULT]="TRIPLE_FAULT", +@@ -2262,11 +2261,6 @@ static inline void update_summary(struct + s->count++; + } + +-static inline void clear_interval_summary(struct event_cycle_summary *s) { +- s->interval.count = 0; +- s->interval.cycles = 0; +-} +- + static inline void update_cycles(struct cycle_summary *s, long long c) { + /* We don't know ahead of time how many samples there are, and working + * with dynamic stuff is a pain, and unnecessary. This algorithm will +@@ -2314,6 +2308,7 @@ static inline void clear_interval_cycles + e->instructions = 0; + } + ++#if 0 + static inline void update_cpi(struct weighted_cpi_summary *s, + unsigned long long i, + unsigned long long c) { +@@ -2359,6 +2354,7 @@ static inline void clear_interval_cpi(st + s->interval.count = 0; + s->interval.instructions = 0; + } ++#endif + + static inline void print_cpu_affinity(struct cycle_summary *s, char *p) { + if(s->count) { +@@ -2639,6 +2635,23 @@ void interval_cr3_value_check(struct cr3 + } + } + ++int cr3_time_compare(const void *_a, const void *_b) { ++ struct cr3_value_struct *a=*(typeof(&a))_a; ++ struct cr3_value_struct *b=*(typeof(&a))_b; ++ ++ if(a->total_time.interval.cycles < b->total_time.interval.cycles) ++ return 1; ++ else if(b->total_time.interval.cycles == a->total_time.interval.cycles) { ++ if(a->total_time.interval.count < b->total_time.interval.count) ++ return 1; ++ else if(a->total_time.interval.count == b->total_time.interval.count) ++ return 0; ++ else ++ return -1; ++ } else ++ return -1; ++} ++ + void interval_cr3_schedule_ordered_output(void) { + struct cr3_value_struct *p; + int i; +@@ -2646,23 +2659,6 @@ void interval_cr3_schedule_ordered_outpu + struct cr3_value_struct **qsort_array; + int N=0; + +- int cr3_time_compare(const void *_a, const void *_b) { +- struct cr3_value_struct *a=*(typeof(&a))_a; +- struct cr3_value_struct *b=*(typeof(&a))_b; +- +- if(a->total_time.interval.cycles < b->total_time.interval.cycles) +- return 1; +- else if(b->total_time.interval.cycles == a->total_time.interval.cycles) { +- if(a->total_time.interval.count < b->total_time.interval.count) +- return 1; +- else if(a->total_time.interval.count == b->total_time.interval.count) +- return 0; +- else +- return -1; +- } else +- return -1; +- } +- + for(p=P.cr3.head; p; p=p->gnext) + N++; + +@@ -2958,6 +2954,23 @@ void update_eip(struct eip_list_struct * + update_summary(&p->summary, cycles); + } + ++int eip_compare(const void *_a, const void *_b) { ++ struct eip_list_struct *a=*(typeof(&a))_a; ++ struct eip_list_struct *b=*(typeof(&a))_b; ++ ++ if(a->summary.cycles < b->summary.cycles) ++ return 1; ++ else if(b->summary.cycles == a->summary.cycles) { ++ if(a->summary.count < b->summary.count) ++ return 1; ++ else if(a->summary.count == b->summary.count) ++ return 0; ++ else ++ return -1; ++ } else ++ return -1; ++} ++ + void dump_eip(struct eip_list_struct *head) { + struct eip_list_struct *p; + int i; +@@ -2966,23 +2979,6 @@ void dump_eip(struct eip_list_struct *he + struct eip_list_struct **qsort_array; + int N=0; + +- int eip_compare(const void *_a, const void *_b) { +- struct eip_list_struct *a=*(typeof(&a))_a; +- struct eip_list_struct *b=*(typeof(&a))_b; +- +- if(a->summary.cycles < b->summary.cycles) +- return 1; +- else if(b->summary.cycles == a->summary.cycles) { +- if(a->summary.count < b->summary.count) +- return 1; +- else if(a->summary.count == b->summary.count) +- return 0; +- else +- return -1; +- } else +- return -1; +- } +- + for(p=head; p; p=p->next) + { + total += p->summary.count; +@@ -3549,6 +3545,50 @@ struct outstanding_ipi *find_vec(struct + return o; + } + ++void ipi_send(struct vcpu_data *ov, int vec) ++{ ++ struct vlapic_struct *vla; ++ struct outstanding_ipi *o = NULL; ++ ++ if(ov->runstate.state == RUNSTATE_LOST) { ++ if(opt.dump_all) ++ fprintf(warn, "%s: v%d in state RUNSTATE_LOST, not counting ipi\n", ++ __func__, ov->vid); ++ return; ++ } ++ ++ vla = &ov->vlapic; ++ ++ o = find_vec(vla, vec); ++ ++ if(!o) ++ { ++ fprintf(warn, "%s: Couldn't find an open slot!\n", ++ __func__); ++ return; ++ } ++ ++ if(!o->first_tsc) ++ o->first_tsc = P.now; ++ ++ if(opt.dump_all && o->count == 0 && o->injected) ++ printf(" [vla] Pre-injection\n"); ++ ++ o->count++; ++ ++ if((opt.dump_all) ++#if 0 ++ && (ov->runstate.state != RUNSTATE_RUNNING ++ || ov->hvm.vmexit_valid) ++#endif ++ ) ++ printf(" [vla] d%dv%d vec %d state %s (outstanding ipis %d)\n", ++ ov->d->did, ov->vid, ++ o->vec, ++ runstate_name[ov->runstate.state], ++ o->count); ++} ++ + void hvm_vlapic_icr_handler(struct hvm_data *h) + { + struct mmio_info *m = &h->inflight.mmio; +@@ -3567,50 +3607,6 @@ void hvm_vlapic_icr_handler(struct hvm_d + }; + } icr = { .val = m->data }; + +- void ipi_send(struct vcpu_data *ov, int vec) +- { +- struct vlapic_struct *vla; +- struct outstanding_ipi *o = NULL; +- +- if(ov->runstate.state == RUNSTATE_LOST) { +- if(opt.dump_all) +- fprintf(warn, "%s: v%d in state RUNSTATE_LOST, not counting ipi\n", +- __func__, ov->vid); +- return; +- } +- +- vla = &ov->vlapic; +- +- o = find_vec(vla, vec); +- +- if(!o) +- { +- fprintf(warn, "%s: Couldn't find an open slot!\n", +- __func__); +- return; +- } +- +- if(!o->first_tsc) +- o->first_tsc = P.now; +- +- if(opt.dump_all && o->count == 0 && o->injected) +- printf(" [vla] Pre-injection\n"); +- +- o->count++; +- +- if((opt.dump_all) +-#if 0 +- && (ov->runstate.state != RUNSTATE_RUNNING +- || ov->hvm.vmexit_valid) +-#endif +- ) +- printf(" [vla] d%dv%d vec %d state %s (outstanding ipis %d)\n", +- ov->d->did, ov->vid, +- o->vec, +- runstate_name[ov->runstate.state], +- o->count); +- } +- + if(m->is_write) { + if(opt.dump_all) { + printf(" [vla] d%dv%d icr vec %d %s\n", +@@ -4116,11 +4112,6 @@ void cr3_prealloc_unpin(struct vcpu_data + gmfn, cr3->prealloc_unpin.count); + } + +-void cr3_dump_list(struct cr3_value_struct *head){ +- struct cr3_value_struct *p; +- struct cr3_value_struct **qsort_array; +- int i, N=0; +- + int cr3_compare_total(const void *_a, const void *_b) { + struct cr3_value_struct *a=*(typeof(&a))_a; + struct cr3_value_struct *b=*(typeof(&a))_b; +@@ -4150,6 +4141,11 @@ void cr3_dump_list(struct cr3_value_stru + return -1; + } + ++void cr3_dump_list(struct cr3_value_struct *head){ ++ struct cr3_value_struct *p; ++ struct cr3_value_struct **qsort_array; ++ int i, N=0; ++ + if(!head) + return; + Index: pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_mm.c diff -u /dev/null pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_mm.c:1.1 --- /dev/null Tue Feb 14 21:38:34 2017 +++ pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_mm.c Tue Feb 14 21:38:34 2017 @@ -0,0 +1,15 @@ +$NetBSD: patch-xen_arch_x86_mm.c,v 1.1 2017/02/14 21:38:34 joerg Exp $ + +From e0a97098e20d8fe334b76b37dd6fb0a358a6953c. + +--- xen/arch/x86/mm.c.orig 2017-02-10 22:44:48.124078150 +0000 ++++ xen/arch/x86/mm.c +@@ -517,7 +517,7 @@ void update_cr3(struct vcpu *v) + make_cr3(v, cr3_mfn); + } + +-static const char __section(".bss.page_aligned") zero_page[PAGE_SIZE]; ++static const char __section(".bss.page_aligned.const") zero_page[PAGE_SIZE]; + + static void invalidate_shadow_ldt(struct vcpu *v, int flush) + { Index: pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_xen.lds.S diff -u /dev/null pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_xen.lds.S:1.1 --- /dev/null Tue Feb 14 21:38:34 2017 +++ pkgsrc/sysutils/xenkernel46/patches/patch-xen_arch_x86_xen.lds.S Tue Feb 14 21:38:34 2017 @@ -0,0 +1,15 @@ +$NetBSD: patch-xen_arch_x86_xen.lds.S,v 1.1 2017/02/14 21:38:34 joerg Exp $ + +From e0a97098e20d8fe334b76b37dd6fb0a358a6953c. + +--- xen/arch/x86/xen.lds.S.orig 2017-02-10 22:45:18.382878546 +0000 ++++ xen/arch/x86/xen.lds.S +@@ -166,7 +166,7 @@ SECTIONS + __bss_start = .; + *(.bss.stack_aligned) + . = ALIGN(PAGE_SIZE); +- *(.bss.page_aligned) ++ *(.bss.page_aligned*) + *(.bss) + . = ALIGN(SMP_CACHE_BYTES); + __per_cpu_start = .; Index: pkgsrc/sysutils/xenkernel46/patches/patch-xen_include_asm-x86_spinlock.h diff -u /dev/null pkgsrc/sysutils/xenkernel46/patches/patch-xen_include_asm-x86_spinlock.h:1.1 --- /dev/null Tue Feb 14 21:38:34 2017 +++ pkgsrc/sysutils/xenkernel46/patches/patch-xen_include_asm-x86_spinlock.h Tue Feb 14 21:38:34 2017 @@ -0,0 +1,16 @@ +$NetBSD: patch-xen_include_asm-x86_spinlock.h,v 1.1 2017/02/14 21:38:34 joerg Exp $ + +From c86aa9a250ca0c87760b369f295f67ae01542fa9. + +--- xen/include/asm-x86/spinlock.h.orig 2017-02-10 22:33:31.337508849 +0000 ++++ xen/include/asm-x86/spinlock.h +@@ -2,7 +2,8 @@ + #define __ASM_SPINLOCK_H + + #define _raw_read_unlock(l) \ +- asm volatile ( "lock; dec%z0 %0" : "+m" ((l)->lock) :: "memory" ) ++ BUILD_BUG_ON(sizeof((l)->lock) != 4); /* Clang doesn't support %z in asm. */ \ ++ asm volatile ( "lock; decl %0" : "+m" ((l)->lock) :: "memory" ) + + /* + * On x86 the only reordering is of reads with older writes. In the --_----------=_1487108314200620--