tech-kern archive

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

Resecting "options UVM_HOTPLUG"



Hi,

After some discussion with Jason, and re-reading the code and its
current state in code, I've come to the conclusion that it's in the
interest of brevity to remove everything in sys/kern/ and sys/uvm/ which
implement the "dynamic" part of uvm_hotplug(9).

The top two reasons for this in my mind are:

1) There are no current users of the uvm_hotplug(9) KPI - balloon(9)
   uses it, but the unplug is unstable (wasn't able to debug this) and
   is thus disabled by default.

2) In order to do unplug without a balloon(9) like mechanism (eg: on
   native), there's a lot more state management code needed within
   uvm(9) - to make sure that RAM segments being unplugged have no
   machine references (eg: pmap related, pointers from inactive page
   tables, TLB pointers, etc. etc. )

   This is a lot of per-architecture work, and there doesn't seem to be
   much demand for this feature (at least I haven't seen any comment
   related to this as a usecase).

I believe that the project has had three useful purposes:

1) Demonstrated NetBSD code discipline - such a core part of the kernel
   code was developed entirely in userspace prior to integration - and
   due to the cross-compilable toolchain - it was done on Windows by
   fox@!

2) The re-org forced better modularisation in the relevant
   uvm/uvm_*.[hc] - ensuring even cleaner interfaces.

3) Demonstrated how TDD can reduce the pain of software dev. See:
   https://www.netbsd.org/gallery/presentations/santhosh/2017_AsiaBSDCon/ABC2017-P8B-uvm_hotplug-paper.pdf


If there's no specific objection to this I'll be working with Jason to
help make this is as painless as possible.


Many Thanks!
-- 
MattC/(~cherry)



Home | Main Index | Thread Index | Old Index