[lkml]   [2006]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: broken local_t on i386
    On Mon, 12 Jun 2006, Andi Kleen wrote:

    > > #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset()))
    > It is also affected by your race. The inc would only be atomic if the counter
    > was in the PDA, but standard per cpu data isn't. So it has to follow
    > a pointer and then it could already have switched.

    I thought the above would refer to a PDA memory area that is specially
    mapped by each processor? That is the only thing that would get this
    working right because we would map to a different PDA if the process
    would be mapped to a different processor.

    > Fix would be to disable preemption. I don't think it needs cli/sti
    > on non preemptible kernels.

    Yuck. The advantage of local.t was that it does not need any of these
    tricks. What is the point of local.t if one needs to disable preemption?
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-06-12 18:57    [W:0.020 / U:6.356 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site