Hello,
My name is Anup. I'd like to participate in the project at
https://wiki.netbsd.org/projects/project/swap-auto/. I'm not a student but I think I'm eligible as I've never participated in GSoC or other project based FOSS internships. I'm interested in the FOSS industry and I'd like to contribute and build experience around the same to transition into being an active member of the FOSS industry. I'm currently a mentee in ACM's Sigplan-M program and am learning Agda out of interest in its domains. I also practice almost daily on Leetcode - you can check my profile at
https://leetcode.com/u/parikhanupk/. Please let me know if you want to know anything else or offer some pointers to me in the context of this project.
I've answered some questions from
https://wiki.netbsd.org/projects/application/ as follows:
Goal:
Auto create swap on memory pressure
Deliverables:
Code and documentation
Overview:
1. Study/Research the swapping behavior of NetBSD kernel
2. Identify files/functions where modifications need to be made
3. Write code along with documentation
Similar software availability:
Not that I know of
Is the project a port or a rewrite:
No. This will be new code added into NetBSD code and it will be licensed under a NetBSD compatible license.
NetBSD experience:
Not yet. I am an absolute newcomer to NetBSD. I'm sending this first email as an _expression_ of interest in this project. I'll do this by the next weekend (March 16 2025) - all of it like installing, configuration, building kernel and userland. I haven't worked on pkgsrc and this project, I think, wouldn't require working on pkgsrc, however, I typically use a custom Linux based system built natively from sources (it's heavily based on LFS and BLFS projects, except that it's a naive but near complete automation).
Prior experience:
I've done this in userspace when some of my builds failed due to memory pressure (for example LLVM, Libreoffice, Firefox, etc.) where I added swap file creation in specific build scripts. Please note that this was just a few additional lines in shell scripts. Also around 2010/2011 when I was working on a chess related program, I did this sort of thing in userspace - this was a custom allocator that programs could use to allocate as much memory as one wanted by specifying physical RAM limits. For example, one could allocate a billion 32-byte objects (32 GiB) with a RAM limit of 256 MiB and my library handled everything else (the user accessed their objects by index). It worked well for its purpose (sequential access). I wrote this in C# and I do not have the code but I'm mentioning this as it's something that relates to this project. Perhaps usage specific behavior could be added to the swapping mechanism.
Thanks and regards,
Anup K Parikh.