On Wed, 27 Feb 2008, Andrew Morton wrote:local_t requires the disabling of preempt to work right. The real solution here is cpu_alloc / cpu_ops. Per cpu operations work on an offset relative to the start of the per process cpu data area in some register. An increment can then be atomic vs. interrupt because it does the calculation of the address and the inc in one instruction. F.e. gs: inc [percpu_offset] Processor may change before and after without ill effects. So no preempt since the instruction will always reference the %%gs register that points to the percpu area of the currently executing processor. --
| Andrew Morton | -mm merge plans for 2.6.23 |
| Rafael J. Wysocki | [Bug #11207] VolanoMark regression with 2.6.27-rc1 |
| Zhang, Yanmin | AIM7 40% regression with 2.6.26-rc1 |
| Con Kolivas | [PATCH][RSDL-mm 0/7] RSDL cpu scheduler for 2.6.21-rc3-mm2 |
git: | |
| Gregory Haskins | [RFC PATCH 03/17] vbus: add connection-client helper infrastructure |
| David Woodhouse | [PATCH 03/30] solos: FPGA and firmware update support. |
| Natalie Protasevich | [BUG] New Kernel Bugs |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
