- User Since
- May 16 2014, 7:35 PM (287 w, 6 d)
Where is this optimization actually used ? Almost all calls to vm_pager_has_page() pass NULLs for behind/ahead.
Wed, Nov 20
shadow_count > 0 implies OBJ_ANON.
Tue, Nov 19
Kind of obvious idea is to switch to periodic scans for collapses, and make the scan to walk the whole shadow chain for each map entry that has anon object on top. I.e. instead of trying to do collapses at precise points, we would have yet another daemon.
This should be fine IMO.
I am somewhat curious how much does the upgrade succeed. Did you measured it ? E.g. the counters of total vm_pager_page_unswapped calls during buildworld vs. the number of times the lock needs to be upgraded vs. the number of successfull upgrades.
Mon, Nov 18
Make execution submode numeric.
Add MSR_OP_RENDEZVOUS. Assert that exactly one command mode flag is passed.
Rename to x86_msr_op().
Restore sched_bind() mode of broadcast to keep the ssb toggle algorithm unchanged. I do think that my switch to smp_rendezvous for ssb is actually fine because our use of mwait does not re-enable interrupts, but let do that as separate change.
There are two requirements for the call to bus_dma_dmar_set_buswide():
- the call must occur before the first busdma tag allocation for anything on this bus
- the call must not occur before you are certain that the device identified has the bus-wide property.
Sun, Nov 17
Weaken asserts when pages are unbusy in context of io completion handlers.
Alexander, I obviously cannot test this, I only ensured that machine with DMAR enabled still boots.
Sat, Nov 16
Fri, Nov 15
Only use imgp after it is initialized, and use p later.
You also need to reset the taa state after resume, at least if it was set to disable TSX. See how ibrs and sbb are reset in acpi_sleep_machdep(). Or you need to re-apply TSX disabling command after resume.
Thu, Nov 14
That said, would be it more straightforward to add logic to hw_mds_recalculate() instead, to enable the workaround if either of mds_disable or tsx_disable is forced. I mean, get rid of hw_tsx_recalculate(), check TAA in hw_mds_recalculate.
If you want to disable ASLR, it is enough to issue procctl(), checking global system settings gives no value and is in fact racy.
Wed, Nov 13
Tue, Nov 12
Handle avg' suggestions.
Mon, Nov 11
Ok, I think I am convinced enough. As result, I do not like this code even more.
Sun, Nov 10
The rest of the change, now I limit MFENCE only to non-Intel vendors.