• Henrik Austad's avatar
    tile: ns2cycles should use __raw_get_cpu_var · 39e8202b
    Henrik Austad authored
    ns2cycles use per_cpu variables, and will, eventually, find its way into
    smp_processor_id(). This is not safe in a preemptible kernel;
    preemption should ideally be disabled.
    
    BUG: using smp_processor_id() in preemptible [00000000] code:
    systemd-modules/367
    caller is ns2cycles+0x40/0xb8
    
    Starting stack dump of tid 367, pid 367 (systemd-modules) on cpu 2 at
    cycle 20969956421
     frame 0: 0xfffffff70004b860 dump_stack+0x0/0x20 (sp 0xfffffe407993fa90)
     frame 1: 0xfffffff7006abc28 debug_smp_processor_id+0x1a8/0x1e0 (sp
    0xfffffe407993fa90)
     frame 2: 0xfffffff7004d7b40 ns2cycles+0x40/0xb8 (sp 0xfffffe407993fab8)
     frame 3: 0xfffffff7004dc578 __ndelay+0x38/0x80 (sp 0xfffffe407993fae0)
    
    However, in this case:
    
    - the frequency is the same accross all cores
    - we use the data read-only
    - we do not scale the frequency
    
    Which means that we can use the __raw_get_cpu_var instead.
    Signed-off-by: default avatarHenrik Austad <haustad@cisco.com>
    Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
    39e8202b
time.c 6.36 KB