debuggers.hg

changeset 22723:7932a9452b4f

x86 asid: Do not check for per-cpu asid state being already initialised.

It cannot be, since per-cpu data is re-allocated and zeroed across CPU
hotplug. Th ecomment about resetting teh per-cpu generation counter is
incorrect, since all vcpus must have been migrated to other cpus while
this cpu was offline, and that resets the per-vcpu generation stamp.

Signed-off-by: Keir Fraser <keir@xen.org>
author Keir Fraser <keir@xen.org>
date Fri Jan 07 16:59:53 2011 +0000 (2011-01-07)
parents 82c205df4406
children 52b57a4781b4
files xen/arch/x86/hvm/asid.c
line diff
     1.1 --- a/xen/arch/x86/hvm/asid.c	Fri Jan 07 14:13:15 2011 +0000
     1.2 +++ b/xen/arch/x86/hvm/asid.c	Fri Jan 07 16:59:53 2011 +0000
     1.3 @@ -52,7 +52,6 @@ struct hvm_asid_data {
     1.4     u32 next_asid;
     1.5     u32 max_asid;
     1.6     bool_t disabled;
     1.7 -   bool_t initialised;
     1.8  };
     1.9  
    1.10  static DEFINE_PER_CPU(struct hvm_asid_data, hvm_asid_data);
    1.11 @@ -62,14 +61,6 @@ void hvm_asid_init(int nasids)
    1.12      static s8 g_disabled = -1;
    1.13      struct hvm_asid_data *data = &this_cpu(hvm_asid_data);
    1.14  
    1.15 -    /*
    1.16 -     * If already initialised, we just bump the generation to force a TLB
    1.17 -     * flush. Resetting the generation could be dangerous, if VCPUs still
    1.18 -     * exist that reference earlier generations on this CPU.
    1.19 -     */
    1.20 -    if ( test_and_set_bool(data->initialised) )
    1.21 -        return hvm_asid_flush_core();
    1.22 -
    1.23      data->max_asid = nasids - 1;
    1.24      data->disabled = (nasids <= 1);
    1.25