Category: Open Source
#! code: DrupalCon Prague 2022
Last week I visited the city of Prague to attend the European DrupalCon 2022. The even was held between September 20th and 23rd, and was attended by over 1,200 people.
This was my first physical conference since DrupalCamp London 2020, and the first DrupalCon I have attended since DrupalCon Dublin 2016. Despite the worries about covid I was still pretty exited to attend the event. I arrived on Monday night and as the event didn’t start properly until Tuesday afternoon it gave me a small chance to explore the city of Prague before the conference started.
There were so many talks, sessions, meetings, and events during DrupalCon that I could write for pages and pages about the conference. I am quite sure, however, that no one would actually read all of that I’ll just post a couple of highlights from each day and provide a sum up at the end.
Tuesday
After the initial welcoming talk the conference started with an introduction to some of the initiatives that are being worked on at the moment, each one introduced by a member of the initiative team. The initiatives discussed where CKEditor 5, project browser, project update bot, GitLab integration, localize.drupal.org, distributions and recipes, and automatic updates.
Andy Wingo: on “correct and efficient work-stealing for weak memory models”
Hello all, a quick post today. Inspired by Rust as a Language for High Performance GC Implementation by Yi Lin et al, a few months ago I had a look to see how the basic Rust concurrency facilities that they used were implemented.
One of the key components that Lin et al used was a Chase-Lev work-stealing double-ended queue (deque). The 2005 article Dynamic Circular Work-Stealing Deque by David Chase and Yossi Lev is a nice read defining this data structure. It’s used when you have a single producer of values, but multiple threads competing to claim those values. This is useful when implementing per-CPU schedulers or work queues; each CPU pushes on any items that it has to its own deque, and pops them also, but when it runs out of work, it goes to see if it can steal work from other CPUs.
The 2013 paper Correct and Efficient Work-Stealing for Weak Memory Models by Nhat Min Lê et al updates the Chase-Lev paper by relaxing the concurrency primitives from the original big-hammer sequential-consistency operations used in the Chase-Lev paper to an appropriate mix of C11 relaxed, acquire/release, and sequentially-consistent operations. The paper therefore has a C11 translation of the original algorithm, and a proof of correctness. It’s quite pleasant. Here’s the a version in Rust’s crossbeam crate, and here’s the same thing in C.
I had been using this updated C11 Chase-Lev deque implementation for a while with no complaints in a parallel garbage collector. Each worker thread would keep a local unsynchronized work queue, which when it grew too large would donate half of its work to a per-worker Chase-Lev deque. Then if it ran out of work, it would go through all the workers, seeing if it could steal some work.
My use of the deque was thus limited to only the push and steal primitives, but not take (using the language of the Lê et al paper). take is like steal, except that it takes values from the producer end of the deque, and it can’t run concurrently with push. In practice take only used by the the thread that also calls push. Cool.
Well I thought, you know, before a worker thread goes to steal from some other thread, it might as well see if it can do a cheap take on its own deque to see if it could take back some work that it had previously offloaded there. But here I ran into a bug. A brief internet search didn’t turn up anything, so here we are to mention it.
Specifically, there is a bug in the Lê et al paper that is not in the Chase-Lev paper. The original paper is in Java, and the C11 version is in, well, C11. The issue is…. integer overflow! In brief, push will increment bottom, and steal increments top. take, on the other hand, can decrement bottom. It uses size_t to represent bottom. I think you see where this is going; if you take on an empty deque in the initial state, you create a situation that looks just like a deque with (size_t)-1 elements, causing garbage reads and all kinds of delightful behavior.
The funny thing is that I looked at the proof and I looked at the industrial applications of the deque and I thought well, I just have to transcribe the algorithm exactly and I’ll be golden. But it just goes to show that proving one property of an algorithm doesn’t necessarily imply that the algorithm is correct.
New Character Tatsuya Skills Test | Tatsuya Best Skill Combination | Garena Free Fire | GR SONS
Video by via Dailymotion Source Tatsuya’s the name, and speed is his game ⚡ Check out Tatsuya’s skills and get ready to utilize them when he arrives to #freefire ! ☘️ Please Comment, Like, N Subscribe Thx u 🙂 FREE FIRE UID||2358223342FREE FIRE ID NAME||CH᭄USMAN Youtube || https://www.youtube.com/c/GRSONSGamer Pinterest || https://pin.it/49xLj9A Twitter || https://twitter.com/SonsGr?s=09 Facebook…
L’insécurité est-elle de plus en plus présente en France ?
Video by via Dailymotion Source ABONNEZ-VOUS pour plus de vidéos : http://www.dailymotion.com/Europe1fr Retrouvez “Europe Midi – Week-end” sur : http://www.europe1.fr/emissions/europe-1-midiLE DIRECT : http://www.europe1.fr/direct-video Retrouvez-nous sur : | Notre site : http://www.europe1.fr | Facebook : https://www.facebook.com/Europe1 | Twitter : https://twitter.com/europe1 | Google + : https://plus.google.com/+Europe1/posts | Pinterest : http://www.pinterest.com/europe1/ Go to Source
Public Rush At Bhadrakali Temple Eve Of Sharan Navaratri Celebrations 2022 _ Warangal _ V6 News
Video by via Dailymotion Source భద్రకాళి ఆలయంలో దేవీ శరన్నవరాత్రి ఉత్సవాలు | V6 News సారు టూర్ల ఏమైందంటే.. | డీజే పాట..దాండియా ఆటhttps://youtu.be/kBEKiKTn-z8 కొత్త రూల్స్..ఫైన్లే ఫైన్లుhttps://youtu.be/bIDuKSB6gFQ డీజే పాట..దాండియా ఆటhttps://youtu.be/OtRqfK9tCkE 5 జీ షురూ.. https://youtu.be/VSYQEaLTbZM దంచుడు..గర్విచ్చుడుhttps://youtu.be/ydhZS737yek ► Subscribe to V6 News : https://www.youtube.com/c/V6NewsTelugu► Subscribe to V6 Life : https://www.youtube.com/c/V6Life► Follow Us On Dailymotion : https://www.dailymotion.com/v6newstelugu► Like us on Facebook :…
The Walking Dead Game Walkthrough PART 11
If you like this then please – Like & Share & Don’t forget to Follow us for more video.
Follow us on dailymotion – https://www.dailymotion.com/vintage-era