pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/sysutils/xenkernel46 Disable a couple more warnings fo...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/b8e9792e3ba4
branches:  trunk
changeset: 358567:b8e9792e3ba4
user:      joerg <joerg%pkgsrc.org@localhost>
date:      Tue Feb 14 21:38:34 2017 +0000

description:
Disable a couple more warnings for the clang build and merge some
patches from Git to fix another set of issues.

diffstat:

 sysutils/xenkernel46/Makefile                                     |    7 +-
 sysutils/xenkernel46/distinfo                                     |    6 +-
 sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c      |  264 ++++++++++
 sysutils/xenkernel46/patches/patch-xen_arch_x86_mm.c              |   15 +
 sysutils/xenkernel46/patches/patch-xen_arch_x86_xen.lds.S         |   15 +
 sysutils/xenkernel46/patches/patch-xen_include_asm-x86_spinlock.h |   16 +
 6 files changed, 320 insertions(+), 3 deletions(-)

diffs (truncated from 370 to 300 lines):

diff -r ae08bda26672 -r b8e9792e3ba4 sysutils/xenkernel46/Makefile
--- a/sysutils/xenkernel46/Makefile     Tue Feb 14 21:36:15 2017 +0000
+++ b/sysutils/xenkernel46/Makefile     Tue Feb 14 21:38:34 2017 +0000
@@ -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 @@
 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}
diff -r ae08bda26672 -r b8e9792e3ba4 sysutils/xenkernel46/distinfo
--- a/sysutils/xenkernel46/distinfo     Tue Feb 14 21:36:15 2017 +0000
+++ b/sysutils/xenkernel46/distinfo     Tue Feb 14 21:38:34 2017 +0000
@@ -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-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
diff -r ae08bda26672 -r b8e9792e3ba4 sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/xenkernel46/patches/patch-tools_xentrace_xenalyze.c      Tue Feb 14 21:38:34 2017 +0000
@@ -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;



Home | Main Index | Thread Index | Old Index