summaryrefslogtreecommitdiffstats
path: root/lib/libc++/libc++.ldscript
diff options
context:
space:
mode:
authortrociny <trociny@FreeBSD.org>2013-09-19 20:19:08 +0000
committertrociny <trociny@FreeBSD.org>2013-09-19 20:19:08 +0000
commit5ea0541321e9ba54c56acd578c1c2fd41c7d0b1d (patch)
tree56a55b257e774aee88aed60e9617231dbc8b0b1c /lib/libc++/libc++.ldscript
parent05645a7435d5a6d7e001722be923a1b45c190afc (diff)
downloadFreeBSD-src-5ea0541321e9ba54c56acd578c1c2fd41c7d0b1d.zip
FreeBSD-src-5ea0541321e9ba54c56acd578c1c2fd41c7d0b1d.tar.gz
When updating the map of dirty extents, most recently used extents are
kept dirty to reduce the number of on-disk metadata updates. The sequence of operations is: 1) acquire the activemap lock; 2) update in-memory map; 3) if the list of keepdirty extents is changed, update on-disk metadata; 4) release the lock. On-disk updates are not frequent in comparison with in-memory updates, while require much more time. So situations are possible when one thread is updating on-disk metadata and another one is waiting for the activemap lock just to update the in-memory map. Improve this by introducing additional, on-disk map lock: when in-memory map is updated and it is detected that the on-disk map needs update too, the on-disk map lock is acquired and the on-memory lock is released before flushing the map. Reported by: Yamagi Burmeister yamagi.org Tested by: Yamagi Burmeister yamagi.org Reviewed by: pjd Approved by: re (marius) MFC after: 2 weeks
Diffstat (limited to 'lib/libc++/libc++.ldscript')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud