On Mon, 31 Aug 2020 13:22:35 +0200 SeongJae Park <sjpark@xxxxxxxxxx> wrote: > On Thu, 20 Aug 2020 09:27:38 +0200 SeongJae Park <sjpark@xxxxxxxxxx> wrote: > > > On Mon, 17 Aug 2020 12:51:22 +0200 SeongJae Park <sjpark@xxxxxxxxxx> wrote: > > > > > From: SeongJae Park <sjpark@xxxxxxxxx> > > > [...] > > > Introduction > > > ============ > > > > > > DAMON is a data access monitoring framework subsystem for the Linux kernel. > > > The core mechanisms of DAMON called 'region based sampling' and 'adaptive > > > regions adjustment' (refer to 'mechanisms.rst' in the 11th patch of this > > > patchset for the detail) make it > > > > > > - accurate (The monitored information is useful for DRAM level memory > > > management. It might not appropriate for Cache-level accuracy, though.), > > > - light-weight (The monitoring overhead is low enough to be applied online > > > while making no impact on the performance of the target workloads.), and > > > - scalable (the upper-bound of the instrumentation overhead is controllable > > > regardless of the size of target workloads.). > > > > > > Using this framework, therefore, the kernel's core memory management mechanisms > > > such as reclamation and THP can be optimized for better memory management. The > > > experimental memory management optimization works that incurring high > > > instrumentation overhead will be able to have another try. In user space, > > > meanwhile, users who have some special workloads will be able to write > > > personalized tools or applications for deeper understanding and specialized > > > optimizations of their systems. > > > > DAMON will be presented in the next week LPC[1]. To be prepared for a screen > > sharing error (if I get no such error, I will do a live-demo), I recorded a > > simple demo video. I would like to share it here to help your easier > > understanding of DAMON. > > > > https://youtu.be/l63eqbVBZRY > > > > [1] https://linuxplumbersconf.org/event/7/contributions/659/ > > During the session, I introduced the list of future works and asked the > audiences to vote for the priority of the tasks: > https://youtu.be/jOBkKMA0uF0?t=13253 I also promised to make my automated tests for DAMON available as open source. I'm happy to announce that it is not available at Github[1] under GPL v2 license. Using that, you can easily test how well DAMON works on your machine. Hopefully, it could be used as a getting started guide for both users and developers of DAMON. [1] https://github.com/awslabs/damon-tests Thanks, SeongJae Park > > To summarize here, the tasks are (highest priority first): > > 1. Make current DAMON patchset series merged in the mainline (6 votes) > 2. User space interface improvement (4 votes) > - Multiple monitoring contexts > - Charging of the monitoring threads' CPU usage > 3. Support more address spaces (2 votes) > - Cgroups, cached pages, specific file-backed pages, swap slots, ... > 3. DAMON-based MM optimizations (2 votes) > - Page reclaim, THP, compaction, NUMA balancing, ... > 4. Optimize for special use-cases (1 vote) > - Page granularity monitoring, accessed-or-not monitoring, ... > > So, I'd like to focus on polishing current patchset so that it could be merged > in. For that, I'd like to ask your more reviews. > > While waiting for the reviews, I will start implementing other future features > that received many votes. The support of multiple monitoring contexts for the > user space would be the first one. Once the implementation is finished, I will > post it as separated RFC patchset (the user space interface will be compatible > with current one). > > Any comment is welcome. > > > Thanks, > SeongJae Park