This doesn't appear to be a quirk of the test systems log generation,
the patch appears to have ended up in the changelog. There is some stuff
actually applied too so perhaps it is ok but someone who knows what was
supposed to be in there should probably double check!
On Mon, 2011-10-24 at 20:40 +0100, xen.org wrote:
>
>
> changeset: 23987:2682094bc243
> user: Jan Beulich <jbeulich@xxxxxxxx>
> date: Fri Oct 21 09:42:47 2011 +0200
>
> x86/p2m: allocate CPU masks dynamically
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> Acked-by: Tim Deegan <tim@xxxxxxx>
> Acked-by: Keir Fraser <keir@xxxxxxx>
>
> --- 2011-10-18.orig/xen/arch/x86/hvm/nestedhvm.c 2011-10-11
> 17:24:46.000000000 +0200
> +++ 2011-10-18/xen/arch/x86/hvm/nestedhvm.c 2011-10-18
> 16:45:02.000000000 +0200
> @@ -114,9 +114,9 @@ nestedhvm_flushtlb_ipi(void *info)
> void
> nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
> {
> - on_selected_cpus(&p2m->p2m_dirty_cpumask,
> nestedhvm_flushtlb_ipi,
> + on_selected_cpus(p2m->dirty_cpumask, nestedhvm_flushtlb_ipi,
> p2m->domain, 1);
> - cpumask_clear(&p2m->p2m_dirty_cpumask);
> + cpumask_clear(p2m->dirty_cpumask);
> }
>
> bool_t
> --- 2011-10-18.orig/xen/arch/x86/mm/hap/nested_hap.c
> 2011-10-21 09:24:51.000000000 +0200
> +++ 2011-10-18/xen/arch/x86/mm/hap/nested_hap.c 2011-10-18
> 16:44:35.000000000 +0200
> @@ -88,7 +88,7 @@ nestedp2m_write_p2m_entry(struct p2m_dom
> safe_write_pte(p, new);
>
> if (old_flags & _PAGE_PRESENT)
> - flush_tlb_mask(&p2m->p2m_dirty_cpumask);
> + flush_tlb_mask(p2m->dirty_cpumask);
>
> paging_unlock(d);
> }
> --- 2011-10-18.orig/xen/arch/x86/mm/p2m.c 2011-10-14
> 09:47:46.000000000 +0200
> +++ 2011-10-18/xen/arch/x86/mm/p2m.c 2011-10-21
> 09:28:33.000000000 +0200
> @@ -81,7 +81,6 @@ static void p2m_initialise(struct domain
> p2m->default_access = p2m_access_rwx;
>
> p2m->cr3 = CR3_EADDR;
> - cpumask_clear(&p2m->p2m_dirty_cpumask);
>
> if ( hap_enabled(d) && (boot_cpu_data.x86_vendor ==
> X86_VENDOR_INTEL) )
> ept_p2m_init(p2m);
> @@ -102,6 +101,8 @@ p2m_init_nestedp2m(struct domain *d)
> d->arch.nested_p2m[i] = p2m = xzalloc(struct p2m_domain);
> if (p2m == NULL)
> return -ENOMEM;
> + if ( !zalloc_cpumask_var(&p2m->dirty_cpumask) )
> + return -ENOMEM;
> p2m_initialise(d, p2m);
> p2m->write_p2m_entry = nestedp2m_write_p2m_entry;
> list_add(&p2m->np2m_list,
> &p2m_get_hostp2m(d)->np2m_list);
> @@ -118,6 +119,11 @@ int p2m_init(struct domain *d)
> p2m_get_hostp2m(d) = p2m = xzalloc(struct p2m_domain);
> if ( p2m == NULL )
> return -ENOMEM;
> + if ( !zalloc_cpumask_var(&p2m->dirty_cpumask) )
> + {
> + xfree(p2m);
> + return -ENOMEM;
> + }
> p2m_initialise(d, p2m);
>
> /* Must initialise nestedp2m unconditionally
> @@ -333,6 +339,9 @@ static void p2m_teardown_nestedp2m(struc
> uint8_t i;
>
> for (i = 0; i < MAX_NESTEDP2M; i++) {
> + if ( !d->arch.nested_p2m[i] )
> + continue;
> + free_cpumask_var(d->arch.nested_p2m[i]->dirty_cpumask);
> xfree(d->arch.nested_p2m[i]);
> d->arch.nested_p2m[i] = NULL;
> }
> @@ -341,8 +350,12 @@ static void p2m_teardown_nestedp2m(struc
> void p2m_final_teardown(struct domain *d)
> {
> /* Iterate over all p2m tables per domain */
> - xfree(d->arch.p2m);
> - d->arch.p2m = NULL;
> + if ( d->arch.p2m )
> + {
> + free_cpumask_var(d->arch.p2m->dirty_cpumask);
> + xfree(d->arch.p2m);
> + d->arch.p2m = NULL;
> + }
>
> /* We must teardown unconditionally because
> * we initialise them unconditionally.
> @@ -1200,7 +1213,7 @@ p2m_get_nestedp2m(struct vcpu *v, uint64
> if (p2m->cr3 == CR3_EADDR)
> hvm_asid_flush_vcpu(v);
> p2m->cr3 = cr3;
> - cpu_set(v->processor, p2m->p2m_dirty_cpumask);
> + cpumask_set_cpu(v->processor, p2m->dirty_cpumask);
> p2m_unlock(p2m);
> nestedp2m_unlock(d);
> return p2m;
> @@ -1217,7 +1230,7 @@ p2m_get_nestedp2m(struct vcpu *v, uint64
> p2m->cr3 = cr3;
> nv->nv_flushp2m = 0;
> hvm_asid_flush_vcpu(v);
> - cpu_set(v->processor, p2m->p2m_dirty_cpumask);
> + cpumask_set_cpu(v->processor, p2m->dirty_cpumask);
> p2m_unlock(p2m);
> nestedp2m_unlock(d);
>
> --- 2011-10-18.orig/xen/include/asm-x86/p2m.h 2011-10-21
> 09:24:51.000000000 +0200
> +++ 2011-10-18/xen/include/asm-x86/p2m.h 2011-10-18
> 16:39:34.000000000 +0200
> @@ -198,7 +198,7 @@ struct p2m_domain {
> * this p2m and those physical cpus whose vcpu's are in
> * guestmode.
> */
> - cpumask_t p2m_dirty_cpumask;
> + cpumask_var_t dirty_cpumask;
>
> struct domain *domain; /* back pointer to domain */
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|