A Linux 7.2 kernel javítja az anon_pipe_write sebességét. Ezt a kernel függvényt használják az adatok írására a névtelen pipe-okba, például shell pipe-line-oknál vagy alkalmazások szabványos adatfolyamainál.
A Meta mérnöke, Breno Leitao a gyorsítótárazási kódjuk profilozása közben pipe és mutex közötti ütközést talált egy forró kódrészben. Ezt most megoldja az újonnan beolvasztott kód, amely a záron kívüli előfoglalással kerüli el az ütközést.
A VFS vegyes beolvasztási kérelemben a helyzetet így írják le:
„Az anon_pipe_write() minden oldalhoz egyszer meghívta az alloc_page()-et, miközben tartotta a pipe->mutexet. A foglalás alvásba mehet közvetlen visszafoglalás közben, és memcg-terhelést futtat, ami meghosszabbítja a kritikus szakaszt, és feltart minden párhuzamos olvasót ugyanazon a mutexen. Most akár 8 oldalt is előre lefoglalunk, mielőtt a mutexet felvesszük, a maradékot a per-pipe tmp_page[] gyorsítótárba tesszük vissza feloldás előtt, a fennmaradót pedig a feloldás után engedjük el. Így az allokátor mindkét oldalon kikerül a kritikus szakaszból. Írók × olvasók tesztben, 64 KB-os írásokkal egy 1 MB-os pipe ellen, az átbocsátás 6–28%-kal javul, az átlagos írási késleltetés pedig 5–22%-kal csökken; memória-nyomás alatt – amikor a mutex tartásának költsége a visszafoglalás alatt a legmagasabb – az átbocsátás 21–48%-kal javul, a késleltetés pedig 17–33%-kal csökken. A mikrobecslő teszt bekerült a selftests közé.”
Ez nagyon szép előrelépés. A részletesebb számok Breno Leitao javítócsomag-kísérő levelében olvashatók.

