- User Since
- Mar 12 2014, 1:00 AM (455 w, 3 d)
Wed, Nov 30
The patch seems ok to me, but:
- In vm_pageout_reinsert_active(), we should change the call to read if (vm_batchqueue_insert(bq, m) != 0), even though it's just a stylistic change.
- Did you observe any measurable change in CPU usage with the patch? The reduction in lock contention looks good, but lockstat doesn't really reflect the cost of failed trylocks. Even with no observed difference I think this patch is the right way to go, especially if we can also demonstrate that pagequeue lock hold times don't go up at all.
One problem I noticed is that the tests can spuriously fail with some error messages from scapy:
Tue, Nov 29
Mon, Nov 28
I'm surprised that clang didn't flag these. I've noticed it has trouble detecting uninitialized variable use in functions containing gotos, but that doesn't apply here.
Wed, Nov 23
The one in zap.c is easy to fix directly, but this is ok for now.
Mon, Nov 21
Is it a bug that tmpfs doesn't call swap_reserve_by_cred() when extending a file?
Fri, Nov 18
Add a default case for port register I/O: return 0xffffffff
for unaligned reads. Also print debug messages for unaligned
reads and writes of port registers.
Thu, Nov 17
Wed, Nov 16
So the problem is:
- vcpu1 initiates a rendezvous with some set of vcpus
- vcpu2 does not belong to the set, but observes vcpu_rendezvous_pending() (an unlocked read of vm->rendezvous_func) is true
- vcpu2 calls vm_exit_rendezvous() but now vm->rendezvous_func is NULL because the rendezvous is already over, and this triggers an assertion failure
Why does it need to be inline?
Tue, Nov 15
Mon, Nov 14
Implement the maximum structure size.
This is mainly intended to provide a fallback for TOE TLS which may need to use software decryption for an initial record at the start of a connection.
Fri, Nov 11
If I recall correctly, it wasn't always possible to interrupt the pager, so running certain ddb commands could make the debugger unusable and force a hard reset.
Should vm_set_topology() be updated to indicate that maxcpus is unimplemented? I can see why you didn't remove the parameter at least.