tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fixing excessive shootdowns during FFS read (kern/53124) on x86



jaromir.dolecek%gmail.com@localhost (=?UTF-8?B?SmFyb23DrXIgRG9sZcSNZWs=?=) writes:

>The problem there is that FFS triggers a pathologic case. I/O transfer maps
>and then unmaps each block into kernel pmap, so that the data could be
>copied into user memory.

For some reason it's not per block. There is a mechanism that moves
an 8kbyte window, independent of the block size. You can easily change
the window size (I'm currently experimenting with 128kbyte) by building
a kernel with e.g. options UBC_WINSHIFT=17.

Independent of how the scaling problem will be handled, I suggest to
increase that window to at least MAXPHYS.


>3. change UVM code to not do this mapping via kernel map, so pmap_update()
>and the IPIs are not triggered in first place

What I currently don't understand is that we only see one TLB shootdown
per window and that happens when it is _unmapped_. Mapping the pages
(with the exception of overwriting) is done by the regular fault handler
and apparently this does not flush the TLB. This makes me think that it might
not be required at all and is just an unwanted side-effect of pmap_update.

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


Home | Main Index | Thread Index | Old Index