tech-kern archive

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

Re: Resecting "options UVM_HOTPLUG"



>>>>> Santhosh Raju <fox%netbsd.org@localhost> writes:

    > On Fri, Dec 1, 2023 at 6:42 AM Mathew Cherry G. <c%bow.st@localhost> wrote:
    >> 
    >> 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 agree with these points and if the "dynamic" part is not being
    > used.  I am assuming we are not completely removing the
    > UVM_HOTPLUG option?

That's right - the static code is required for normal functioning of
uvm(9)

    >> 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.
    >> 

    > I am happy to offer any assistance needed to remove the related
    > code if needed since I did work on the tests part of it.

That would be great - in fact, this is probably a great opportunity to
rig the tests (src/tests/sys/uvm/) into the build system.

Many Thanks,
-- 
MattC/(~cherry)



Home | Main Index | Thread Index | Old Index