Martin Roukala (né Peres)

313 Followers
191 Following
365 Posts

Linux Graphics CI engineer and HW lover attempting to provide production-ready upstream drivers for Linux! Ex-Nouveau, ex-member of the X.Org board of directors.

Working on boot2container, CI-tron, Mesa, the Steam Deck, and other gaming-related projects.

searchable

Websitehttps://www.mupuf.org
Twitterhttps://twitter.com/GfxMupuf
Freedesktop Gitlabhttps://gitlab.freedesktop.org/mupuf

@whitequark I'll keep it in mind :)

As for Debian, you mean it would be your host OS, running the action runner that uses Libvirt for jobs?

@whitequark Do you mean exposing a docker-compatible socket inside the container to enable docker-in-docker mode?

The answer is not yet, but it is being developed by a contributor.

@whitequark We use it in Mesa CI to boot real machines, and the libinput people's kernel and userspace CI use it with qemu.

@whitequark I'm just curious about how long it takes to boot your VM.

By the way, if you want to boot the VM straight into a container, I have developed an initramfs to do just that: https://gitlab.freedesktop.org/gfx-ci/boot2container

It is configured purely through the kernel cmdline.

gfx-ci / Boot2container · GitLab

A tiny initramfs that sets your machine up, and runs one or more containers specified in the kernel command line. Optional features: caching the container images, NTP, overriding...

GitLab
@whitequark Run time?

What a lot of people do not understand is the fragility of supply chains.

Setup

Let us assume there is a part X that is used by a large number of other companies. It is not glamorous, it is not expensive, and nobody outside a small circle of specialists ever thinks about it. But it is needed. Without it, other products cannot be finished.

Everything is fine

Part X is made by a small company with a few dozen employees and a machine that is several decades old.

Everything runs smoothly. The company knows how to maintain the machine. They know how to operate it. They know its strange noises, its moods, its undocumented rituals. They know which lever needs a bit of persuasion on cold mornings and which replacement part must be machined by hand because nobody has made the original since 1987. They also know how to train new employees, because the knowledge still exists inside the company.

Crisis

Then, suddenly, a few large customers run into a crisis.

Orders slow down. The warehouses fill up with part X. Prices fall.

The company downsizes. Then it downsizes again. But nobody really notices, because stocks are still full. Customers are not yet affected. Purchasing departments can still get part X from inventory. Balance sheets still look fine. The problem has not yet reached the spreadsheet.

If this goes on for long enough, the company goes broke.

Again, nobody really notices. Stocks are still full. Some people may worry, but as long as no current production line is stopping and no quarterly number is visibly bleeding, nothing urgent is done.

The employees move on. They retire, change industries, start new careers. The old machine is sold for scrap. The building is repurposed. The knowledge evaporates.

Recovery

A few years later, demand picks up again.

The warehouses slowly empty. Stocks run low. People start ordering part X again, only to discover that nobody is offering it anymore.

Now someone decides to restart production.

The first thing they discover is that there is no machine. Building a new one would be prohibitively expensive, assuming anyone still knows how to build it properly. So they desperately search for an old one.

They get lucky. In a scrapyard, they find a machine that used to produce part X. It is rusted, incomplete, and dysfunctional. Naturally, they buy it.

Now they try to get it working again.

But there is another problem. There are no people left who know how to maintain it. So they hire someone who understands industrial maintenance in general, but has never worked on this specific machine. That person does their best. They improvise. They read old manuals. They reverse-engineer undocumented fixes. They keep the machine alive with skill, patience, and increasing amounts of despair.

But it breaks down every few hours. Output is abysmal.

Bottlenecks

And now that one poor maintenance person is overworked. They need help. But training help requires time, and the only person who can train others is the same person needed to keep the machine barely running. Every hour spent teaching is an hour not spent preventing the next failure.

Very few businesses survive this phase.

There is no institutional knowledge anymore. New people are hired, begin training, look at the state of the machine, the chaos of the process, and the constant emergency mode, and conclude that the business is doomed anyway. Then they quit.

Churn becomes terrible. Even if the company survives financially, it remains fragile. It is always just one or two people quitting away from disaster.

At the end the world decides it needs to get rid of part X as the supply is too fragile.

Summary

This is still very much simplified. The reality is more complex, more ugly.

And that is the part many people miss: a supply chain is not just warehouses, contracts, prices, and transport routes. It is also people, habits, obsolete machines, informal knowledge, and boring little skills that nobody values until they are gone.

@Logical_Error @elly @domi Welcome to countries close to the Arctic circle where the sun doesn't set or rise for a couple of months each year for some towns ;)

Check out my timelapse from just around the Arctic circle: https://m.youtube.com/watch?v=E738uBAdBEQ

I live around Helsinki, so it isn't that bad, expect something more like this, where the sun sets but it never gets dark: https://m.youtube.com/watch?v=Lq_d5esMICs

In both cases, it is a continuous timelapse, save a minute or so when I repositioned the camera to face where the sun would rise (always a guess on my part).

2017-06-17 - Timelapse of the midnight sun in Finnish Lapland (Pikku-syöte)

YouTube

@elly @domi Tin foil FTW! I did that to my bedroom window when I moved to Finland to be able to sleep despite the midnight sun (in conjunction of blinds and blackout curtains).

I couldn't reproduce it at my new house, the wife-acceptance factor was too negative 🤣 We did find a great solution in the end, but it took time.

Every summer I repost this article on how to spot drowning. Please read it and pass on. In the last few years I’ve had SIX messages from people who saved a kid’s life after clicking on the link from my feed. slate.com/technology/2...

Drowning Doesn’t Look Like Dro...
Drowning Doesn’t Look Like Drowning

Drowning is not the violent, splashing call for help that most people expect.

Slate

Hey peanut gallery! systemd-appd explained in a few sentences: https://blog.sebastianwick.net/posts/so-peerpidfd-gets-more-useful/

I will not take questions.

SO_PEERPIDFD Gets More Useful

A while ago I wrote about the limited usefulness of SO_PEERPIDFD. for authenticating sandboxed applications. The core problem was simple: while pidfds gave us a race-free way to identify a process, we still had no standardized way to figure out what that process actually was - which sandbox it ran in, what application it represented, or what permissions it should have. The situation has improved considerably since then. cgroup xattrs Cgroups now support user extended attributes. This feature allows arbitrary metadata to be attached to cgroup inodes using standard xattr calls.

swick's blog