Posts
469
Following
90
Followers
94
n00b Kernel Hacker
- Intern @ NVIDIA Korea (Security System Software) (2024.06 ~)
- Ex-Intern @ Panmneisa (CXL emulation stuff) (~2023.12)
- Undergraduate majoring CSE (estimated graduation: Feb. 2025)
- Working as reviewer at Linux Slab subsystem
- Born in August 6, 2000

Opinions are my own.

My interests are:
Memory Management,
Computer Architecture,
Circuit Design,
Virtualization
Edited 1 year ago
watching a tutorial on Oppenheimer before going to the cinema
0
0
1
Edited 1 year ago
Making a small progress on one of my TODOs: run automatic builds & tests using CI tools for MM development kernels

This is a jenkins configuration matrix specially targeting SLUB to cover various SLUB configurations. Only boot test is done atm.

There are many milestones on this project, which demands more time :P
0
0
2
Edited 1 year ago
TIL1 - There are three types of scheduling tick reduction mechanism (NO_HZ_FULL, NO_HZ_IDLE, HZ_PERIODIC).

NO_HZ_IDLE reduces scheduling ticks only when a CPU is idle (for energy efficiency). This is the default.

NO_HZ_FULL reduces scheduling ticks when there is only one runnable task per CPU. (used on HPC workloads or realtime applications)

HZ_PERIODIC never reduces scheduling ticks.

TIL2 - The mechnism of the Linux buddy allocator's PCP (per cpu pages) draining was recently changed from interprocessor interrupts, to workqueue, and then remote draining from the CPU that invokes draining. I knew that this exists - but took a closer look during this week's my local kernel study session.

The latest change is quite useful because it does not need to wait for other CPUs to drain their PCP locally, and nohz full CPUs does not need to stop what they were doing and drain their local PCPs.
1
1
2
Edited 1 year ago
TIL:
While modern programming languages are specified in context-free or context-sensitive grammars, regular languages are still used for tokenizing the source code because regular language is limited but powerful.

The lexical specification of a typical programming language is written in regular language.

The computational unit that understands regular languages are finite automata. To implement an automaton, a nondeterministic automata that processes a regular expression is created first, and then it is converted to deterministic finite automata for fast processing.
0
0
0
Edited 1 year ago
For quite some time now, I've had two concerns on my career:

The first one is to find a position that allows me to work on (public or internal) kernel stuff, and possibly contribute to the upstream kernel. This is important because I want to work on what I want to.

The other one is to find a position that allows me to observe functional/performance issues on production workloads, fix them and do performance engineering. This is important too because a huge gain on a workload that does not occur in the real world is useless.

I'm not sure if such positions are common and not even sure if they are compatible :/
0
0
0
Edited 1 year ago
Lessons learned today:

- Your theoretical expectation on something is very prone to error and do not believe it even when you are very sure. Prove it by data.

- Do not measure the outcome of multiple changes at once.

- Do not create an account with a very simple password on a publicly available computer, someone will log into it and eat your CPUs.
1
0
1
Me with my friends
0
0
1
Edited 1 year ago
When there are no free pages in free list of the requested order, buddy allocator splits a larger page into smaller ones, and allocates a one of the split pages.

TIL: The way buddy splits large pages (and allocating first or last part of a large page) during the expand() function significantly impacts the mergability of the scatter-gather list for IO. The likeliness that pages are allocated in PFN order is important for mergability. This is so subtle and I didn't realize this :(

Consider a scenario where there is only an order 2 block, and four order 0 requests are served. In the diagram above, they are allocated in PFN order, while in the other diagram, they are allocated in the reverse order.

https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/?id=c75b81a5da09be94099cf7b46bdb32fedc8ce71a

And in the history this thing has introduced a regression because the order was not preserved (by mistake) when pages are allocated from PCP lists with __GFP_COLD ;)

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e084b2d95e48b31aa45f9c49ffc6cdae8bdb21d4
0
0
1
Edited 1 year ago
DAMON user-space tool (damo) has released[1] its 100th version. A mail[2] for the news, release stats, and appreciation to the DAMON community has also posted. From the mail:

"Looking forward to 200th, and 1,000th release of damo :D We, the community,
will make it together."

[1] https://github.com/awslabs/damo/releases/tag/v1.9.3
[2] https://lore.kernel.org/damon/20230807202044.98700-1-sj@kernel.org/

#linux #kernel #damon #damo
0
2
3
something big is coming
1
0
1
Edited 1 year ago
damn it's too hot
0
0
1
Beef tartare
3
0
2
Edited 1 year ago
I've just built my first 2 socket server (36C/72T, DDR4 256GB ECC/REG RAM) for experimenting with NUMA.
It's an old xeon server (Broadwell), but enough to play with!
1
0
1
Sometimes my schedule goes out of control, and I find myself buried in the work I started. It can be overwhelming, and this is one of those moments.

However, there is some good news: it's likely that I will be participating in a field exercise program next semester at a startup that designs CXL devices.

It's a very nice opportunity, but at the same time, it's a pity that I'll be missing some classes!
1
0
3
How am I supposed to take it out
2
1
3
poor photographer
0
0
1
Since when has kernel compilation required this much RAM? My laptop with 16GiB of RAM uses tens of GBs of swap space during linkage step
1
0
0
I was removing the CPU cooler when the CPU became stuck to it and came off together.

ahh why this happened to me :(

tried to straighten bent pins but
not sure if it will work again.
2
0
0
someone took a bite out of my slipper.
1
0
1
Show older