- User Since
- Aug 6 2017, 12:45 AM (75 w, 3 d)
Tue, Dec 18
Nov 21 2018
I have a more complete version of a similar concept sitting in a local repo. Give me a few weeks to get it together and we can discuss.
Oct 30 2018
Thank you for taking the time to iterate and get this right.
Oct 17 2018
I like this
I still feel it would be nice to make kmem_ and malloc_ take a policy possibly with an inline that converts a number into a preferred policy. There is likely no reason that kmem_ allocations should fail if the requested domain is unavailable.
Oct 11 2018
Oct 10 2018
This is surprisingly simple. I am a little uneasy with the prospect of not doing round-robin on the keg's iterator. Can we not pass in an iterator somehow?
I would prefer to make this change by changing the semantics of malloc_domain() to mean prefer.
I'm not a fan of DSET_ but otherwise this LGTM.
Thank you for handling this.
Sep 24 2018
Can you performance test this? I was a little concerned with constantly touching the domainsets vs touching something hopefully local and in cache.
Aug 27 2018
Fix the lock leak. I would like to get this committed to 12. I have not yet had feedback on the low domain avoidance code in the iterator. How do people feel about this?
Aug 22 2018
Aug 20 2018
This uses a more correct filter for the vm_wait_severe in vm_glue.c.
Aug 19 2018
I did not do this before because I felt the ROI was low compared to the churn in ports. Have we contacted ports maintainers? The nvidia and virtualbox port are both going to need #ifdefs.
Jul 10 2018
Jul 9 2018
The basic issue is that there are a handful of places where we test for 'any domain' in min or severe and it may need to be 'every domain we try to allocate from'.
Jul 7 2018
Jul 6 2018
I would like to keep all cores set in cpuset_domain in the !NUMA case so there are no surprises. Other than that this looks good to go.
Jul 3 2018
Jul 1 2018
Some cosmetic stuff but I'm happy with this patch. If you fix those issues I approve.
Jun 30 2018
Jun 26 2018
genassm already generates these and many other offsets. It would be better to do that than manual constants. There would be a little bit of extra build work to make this happen but it should be trivial. We would also need to assert that sizes and types are correct somewhere. The generator could generate both offset and type information for required fields however.
Jun 25 2018
I think what I would like to do is commit this with the timeshare preempt delta disabled until I get more experience with it and see if I can reason out a better algorithm.
Jun 24 2018
Jun 23 2018
This has been resolved in current with a more complete fix.
Some great stuff in here. Let's peel off parts while we perfect the rest.
Jun 15 2018
kqueue and select both use fget_unlocked. If you want to propose files without references for single threaded programs you are free to do so. You should raise it on arch@ as there is no real owner in this area. This patch further reduces differences between select and poll and reduces the number of atomics used in select which I would argue is the more frequently used of the pair.
Jun 14 2018
as an aside, this is what select already does anyway. Poll was still using the big slock but select was using the lockless fd support.
Jun 11 2018
Does this not include the malloc.h changes for M_ZERO?
May 31 2018
May 30 2018
Given that there is trivially little if any entropy coming from mbufs is there a reason we're leaving this callsite at all? has anyone from secteam commented?
May 24 2018
May 17 2018
May 13 2018
My feeling is that ticks is unlikely to go any faster on general purpose kernels and some technique like this is inevitable as we continue to scale link performance. Some slight extra CPU time is a good trade-off for also eliminating weird rounding conditions and scaling factors. Overall I support this work going forward.
May 11 2018
It would be nice to implement it in other filesystems that support sparse files.
Apr 30 2018
Apr 29 2018
Apr 8 2018
We should think about what other filesystems could be trivially converted to this interface.
Apr 7 2018
Apr 4 2018
Apr 3 2018
I intend to commit this next week. I will denote that it is experimental and API may change in a man page and in comments. I think we're going to need more burn-in time with applications before 12.0 settles. I have a commitment from Netflix to sponsor that work.
Apr 1 2018
This version is much slower than the other version but still much faster than head. I think there is some bug though because after a while it started consuming space.
Mar 31 2018
For what it's worth, I did test this with my sparse file dd test and we well exceed the performance of linux at this benchmark now that we're using the same technique. Unfortunately it defeats a convenient way to create a lot of paging traffic.
Mar 30 2018
I addressed review feedback.