jo...@bec.de (Joerg Sonnenberger) writes:

>What about having a passive unmap as fourth option? I.e. when unmapping
>in the transfer map, just add them to a FIFO. Process the FIFO on each
>CPU when there is time or the transfer map runs out of space. Context
>switching for example would be a natural place to do any such
>invalidation.

The mapping is so temporary that it is almost only used on a single CPU.
Basically it's:

win = ubc_alloc();
if (!uiomove(win, ...))
        memset(win, 0, ...);
ubc_release(win, ...);

For this to be even visible on multiple CPUs, the thread would need
to migrate to another CPU. Locking down the LWP on a single CPU
might be the cheapest solution.

-- 
-- 
                                Michael van Elst
Internet: mlel...@serpens.de
                                "A potential Snark may lurk in every tree."

Reply via email to