Linux Conf Au 2015 Debrief
- Eben's Keynote
- Using FOI to get source code
Either of Paul McKenny's talks
- Checking Your Privilege
Documentation mini conf
Documentation and community management by Dr Maia Sauren
- a short talk
- what to document in the community
- "There's a lot of stuff that you shouldn't document" - culture and community should be practiced
Open Radio Miniconf
Codec 2 at very low bit rates
- digital voice over high frequency radio
- just voice
- HF is hard, everything else has already gone digital, analogue HF is still better
- HF fading drops everynow and again, multipath drop out
Insights from data mining the kernel patchwork by Jerremy Kerr
- patch workflow
- made and used by ozlabs
- this talk is about lesser known features
- cli client, pw, just talks rpc to the backend
- public status of patches
Kernel network stack challenges at increasing speeds by Jesper Dangaard Brouer
- out of tree, kernel bypass network drivers are faster
- benchmarks of all the locks, syscalls, irq handling parts of sending packets
- batching many packets per call to amortize overhead costs
- lots on unmiced comments...
- xmit API is the result.
SLUB allocator - Christoph Lameter
- Kernel allocator, bulk mode
- SLAB: two free linked lists, one local one remote
- SLAB: local list needs no locks
- SLUB uses table instea of list
- Fastpaths - lockless, no interrupt disable, no prempt
- all done with atomic commit and rollback
- Page fragmentation - lots of idea, little consensus
- slabinfo tool
Supporting machines for friends & family by Francois Marier
A full hardware/software stack setup of how to setup a Debian machine to limit the amount of maintenance required.
A bunch of packages that could help with maintaining a Debian machine:
- debfoster, deborphan, debian-sercurity-support, logcheck, mcelog, sysstat, mollyguard, debsums, fcheck, duplicity, kerneloops, apt-listbugs
Panel - Getting stuff into Debian
Clinton didn't take any notes, but there was a strong empahisis on `you don't have to be a Debian Developer'
- Russell go a call out.
Keynote - Eben Moglen
- Ten years since last LCA keynote.
- Enemies of OSS are fewer and weaker.
- New way of buiding things: transparent, non hierachial, collaborative.
- Snowden leak basically confirms totalitarianism.
- It's all politics, even basic engineering decisions.
- A must watch, chock a block full of insights and quotes.
The Best Test Data is Random Test Data by Fraser Tweedale
- An introduction to property based testing
- invariants, pre and post conditions
- test cases are generated from properties
Community Leadership Summit
Based on the NICAI workshop. Separate notes at https://linux.conf.au/wiki/Community_Leadership_Summit_X
Clinton was note taker for both morning and afternoon sessions. Found the day to be very worthwhile.
Making code run fast on all the things (with OpenCL) by Beau Johnston
- Use Python, seems to be the take away
- This talk doesn't cover data (de)serialisation to/from Python, which in my experience is quite large
Kernel Report by Jon Corbett
- I swear Jon has a timing HUD
- tendering for a zero length release schedule around 2020
- Less companies doing regression testing
- Not much in built testing
- Performance regressions, you can be hit by ten %1 regressions and get hit hard
- Real time patches have stalled
- 2038 time_t
- IOT memory pressues
- tiny.wiki.kernel.org - aiming for a stupid small kernel memory footprint, but is it still linux?
- sealed files ( read only memory segments, basically)
- virtual machines in the kernel, eventually things will converge on (e)BPF
- Page fault handling in userspace, used for migrating vm image
- live kernel patching in the mainline
Using FOI to get source code: the EasyCount experience by Michael Cordover
- Senate elections software
- FOI legislation has a very broad definition of what a document is.
- Right to Know, Open Australia website to ease FOI attempts
- Initial request rebuffed, gone to external review
- Crowd funding for legal fees
- AEC applied to have Michael listed as a vexations applicant
- Senate orders the software release, basically ignored
- Appeals process has started
- General FOI response is "No by default" but improving
- Canberra election code is released, bugs have been found.
- Facebook does open source
- Lots of mercurial work
- Open compute
- Treating your switch as a server
- Google SoC
- Ten year old program
- 8+k students
- 50+M LoC
- Not just CS students, arts and others
- Community bonding period, before coding begins
- LCA AV volunters funded through GSoC
- Telco data centres, Network Functions, going virtual
- Using open source to implement them.
The Democratisation of Radio by David Rowe
- Involved in the Mesh Potato project
- Echo cancellation is a hard problem
- FreeDU digital voice, high freqency (demoed a couple of LCA's ago Clinton thinks)
- $8-10k commercial rates
- Big Sally, WWII equivalent
- Signal processing evolution
- Spectrum Safari
AirJaldi - 30+k wifi internet setup in rural India
AirChat, Ip over walky talky
- Standards - don't confused with physics
- Software Defined Radio
- Filters and Amps are still missing in the open radio world.
Reducing GLSL Compiler Memory Usage by Ian Romanick
- Compiles all the shaders for a program, especially games
- ralloc, their version of talloc
- shader db, corpus of shaders, both public and private
- pahole, points out holes in structs
- bloom filter vs hashing
A methodical makeover for CTDB by Martin Schwenke
Clustered Trivial DataBase, LDAP replacement for SAMBA
- makeover for performance issues with scaling
- Code base is seven years old, in need of a redesign and refactor
- logging - rfc 3164 / 5424
- Started to get into meaty bits with the logging subsection
- Didn't really get to the meat of the db, quite dissapointed in the talk.
OpenPOWER: building an open-source software stack from bare metal by Jeremy Kerr
- Machine state register
- Firmware to get the machine booting
Checking Your Privilege by Leslie Hawthorn
- meritocracy is an unattainable ideal
- diverse teams produce a wider customer base
- "the system defaults work for us out of the box"
- five experiments
Bare-Metal Multicore Performance in a General-Purpose Operating System by Paul McKenney
- No Hz Build
- RCU is basically procrastination
- No Hz Full designed for high performance computing, not general workloads
- offloading rcu callbacks causing high load
- RCU is used very early on in boot, surprise to Paul!
- Partial solution: gradual wakeup, have leaders wake up a bunch of followers
- 1 fix in 6 introduces another problem...
hang -> run callbacks on the initial span of RCU callback threads
many RCU threads -> dynamic creation of threads, the BIOS lied about the number of CPUS...
- race condition on module unload, rcu_barrier fixes it
- out of order cpu online bug, if a follower wakes before a leader it drops out of the followers set..
IPMI - because ACPI and UEFI weren't terrifying enough by Matthew Garrett
- Based on work by Dan Farmer
- Can be thought of as Serial over lan
- Cipher Zero - No encryption whatsoever
How to get one of those Open Source jobs by Mark Atwood
- Communication skills, both writing and speaking
- Coding, Python and JS ("It's everywhere")
- GIT, SO
- CI, TDD
- don't be a jerk, the world is small
- pair programming
- don't overwork
- junk food - just say no
- Don't work for jerks "fire your boss"
- keep learning
Pettycoin, towards 1.0 by Rusty Russell
- bitcoin is too expensive in terms of mining
- gatway to bitboin, transfer only
- altcoins: 2M impls...
- good technical summary of bitcoins
High-Performance and Scalable Updates: The Issaquah Challenge by Paul McKenney
- Challenge is to transfer a leaf node from tree A to tree B, and another from B to A. Atomically.
- Easy to do with transactional memory, not known to be easy or fast with other techniques.
- Issaquah is a suburb of Seattle, where the conference this challenge was laid down.
- hazzard pointers are roughly equivalent to rcu, and can be used instead of rcu in this solution
- split counters, per CPU counter to do local locking without having to touch other CPUS
- RCU is "Sycnchronisation via social engineering"
- Mixed locking primitives in trees, RCU for root and branches, existence pointers for leaves.
- An extra level of indirection for nodes in the tree, do all the setup work in non-existence mode, then flip that bit.
- Very much a way of doing STM without STM.
- Quite a bit of performance gain by playing tricks with memory allocators (i.e. glib malloc vs jemalloc)
When Everything Falls Apart: Stories of Version Control System Scaling by Ben Kero
- Admin for mozilla
- mozilla have lots of different VCs
- Git defaults don't scale
- HG, bug where many heads slow things down to a crawl
- RSS planet release engineering
SD Cards and filesystems for Embedded Systems by Peter Chubb
- Embedded systems often have all filesystems on an SD card
- Describes flash memory layout, emphasises the abundant amount of ECC
- Have to write a 4Meg block at a time, not just a page.
- Read disturb! possible to flip adjacent bits when reading.
- Wear management algorithsm.
- flashbench, postmark, dbench: different benchmarks for filesystems.
Grace - an educational programming language by Michael Homer
- transfer of learning (picking up generic concepts from language A and transferring them to language B )
- humans are apparently very bad at this, we have to learn language A very deeply first
- Problem of large amount of boilerplace/incantations in languages like Java
- Grace looks quite smalltalky in Clinton's opinion, passing blocks of code around.
- Grace has the concept of dialects, which can change the semantics of the language based on need.
- Grace has pattern matching, based on strings, types, instantiation calls
- Minigrace, web based version, can switch between scratch gui type view and code view.
Botching up IOCTLs by Daniel Vetter
- Daniel does graphics drivers
- "we have a lot of best practices when it comes to user space apis because we have so much experience getting it wrong"
- when do we actually need an ioctl, lots of other interfaces available (sysfs, proc, perf, struct-over-fd)
- patch the kernel first, a release or tow later, do the userspace
- have test cases for everything
- use fixed size types for everything in the structs
- align everything on something
- a comment from Swenke, use pa_hole to check the structure
- input validate everything
- have a flags parameter, reject invalid flags
- "it's only a regression when somebody notices"
- think about endiness
- attach everything to a file struct, open that file with O_CLOEXEC so that everything is cleaned up nicely
- signals, ugh