» »

Kdo je konec tedna posredoval luknjasto kodo v Linuxovo jedro?

1
2
»

LightBit ::

Ali ne bi moral biti "to" volatile? Drugače lahko compiler malo preveč optimizira (takrat verjetno ni).

Zgodovina sprememb…

  • spremenil: LightBit ()

Zimonem ::

Gagatronix je izjavil:

@zavajon: Ti nimas nobenega razumevanja kako Kitajski sistem deluje. Ce noces gniti v Foxconnu po 12 ur na dan kot suzenj bos delal tocno tisto, kar ti Partija govori. Nekateri smo pac delali s Kitajci in vemo da so laznjive, goljufive pizde.

Ti očitno ne ločiš niti Tajvana od Kitajske. Lažnivi so pa toliko kot vsi. Pohlepnim pizdam obljubijo poceni in dober proizvod. Dobavijo pa takega kot plačaš.

Randomness ::

Ali ne bi moral biti "to" volatile? Drugače lahko compiler malo preveč optimizira (takrat verjetno ni).

Seveda, ta koda je stara kot zemlja, ko so bili prevajalniki še zelo preprosti. In procesorji zelo počasni. Danes narediš s tako "ročno optimizirano" kodo več škode kot koristi.

LightBit ::

Ja, danes taka koda zagotovo ne bi smela priti čez review. Ker to že prevajalniki delajo.

Zgodovina sprememb…

  • spremenil: LightBit ()

MrStein ::

Randomness je izjavil:

Koda je pravilna.
Veš mogoče, v katerih primerih in zakaj je pravilna?

Na linku piše vse. Celotno zgodovino.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Mr.B ::

Gagatronix je izjavil:

@zavajon: Ti nimas nobenega razumevanja kako Kitajski sistem deluje. Ce noces gniti v Foxconnu po 12 ur na dan kot suzenj bos delal tocno tisto, kar ti Partija govori. Nekateri smo pac delali s Kitajci in vemo da so laznjive, goljufive pizde.

Sej ti ni potrebno v kitajski gnit. Poceni delovne sile je polno, delajo se za manj, in so cisto zraven kitajske.... Poizkusi ponovno z argumentom.
France Rejects Genocide Accusations Against Israel in Gaza,
To accuse the Jewish state of genocide is to cross a moral threshold

johnnyyy ::

Randomness je izjavil:

*to bi verjetno moral biti *to++.
Jup
Ni nujno.
Razloži


Periferija CPUja je velikokrat implementirana tako, da imaš en register/IO, ki ga polniš oz. spreminjaš. Zgornja implementacija bi ti dandanes lahko prav prišla na kakšnem ARM Cortex M0 procesorju, če bi hotel paralelno pošiljati podatke prek GPIO registra. Torej imaš en register, kjer se vrednost preslika na izhod. Ker je načeloma pri teh procesorjih clock GPIO periferije enak kot procesorski, ti med polnjenjem registra ni potrebno čakati in kolikor hitro si zmožen spremnijati register, tako hitro se bo spreminjal izhod. Pri navadni for zanki precej izgubiš na preverjanju pogojev in inkrementaciji, zato je lahko ta koda precej hitrejša.

Ampak pri boljših procesorjih je frekvenca jedra precej večja od periferne, zato takšno pisanje ni najboljše saj periferija ni dovolj hitra, da bi se spremembe izrazile na izhodu. Poleg tega imajo boljši procesorji DMA enoto, v kateri se takšne zadeve načeloma implementirajo. Torej drugi periferiji (DMA) poveš, naj ti kopira "count" podatkov iz "from" v "to" in ko konča procesor pade v irq.

Če programiraš nek mikrokrmilnik, ki stane pod $1, ti bi lahko prišla takšna koda prav za kar koli dražjega pa je takšno čaranje neefektivno.

LightBit ::

Danes prevajalniki sami delajo "loop unrolling".
Če programiraš mikrokrmilnik, ki stane pod $1 te bo bolj skrbela velikost kot hitrost.

BigWhale ::

drysmoke je izjavil:

Spura je izjavil:

Kaj to pocne in ali je nevarno je povsem nerelevantno. Ko vidim tak zmazek v PR stisnem reject in to je konec. Jst ne rabim pogruntat vseh trikov kako skrit neke hacke, ce v osnovni rejectam vsako kodo, ki ni povsem preprosta in razumljiva.


U ja, take imamo najraje, egoisticno fiksirane birokrate, ki so prepricani, da so najbolj pametni, ce je pa koda njim razumljiva, bo pa vse uredu. Ampak, kaj, ce je koda tebi razumljiva, ampak je ne razumes pravilno?


To kar je Spura napisal je dejansko edina prava odlocitev. Taksnen zmazek kode mora biti resno dokumentiran in precej dobro utemeljen zakaj je tam in kak je benefit taksnega zmazka. Koda mora biti vedno taksna, da jo lahko razumes pri povrsnem branju, ravno zaradi razvoja.

Ampak ja, saj vemo, eni ste super humans in take zmazke razumete tud, ce jih iz aviona gledate. Uredu je.

BigWhale ::

LightBit je izjavil:

Danes prevajalniki sami delajo "loop unrolling".
Če programiraš mikrokrmilnik, ki stane pod $1 te bo bolj skrbela velikost kot hitrost.


Velikost in uporaba RAMa. Ko se enkrat zavedas, da delas v okviru 512 bytov, ki so ti na voljo, ful bolj razmisljas kaj bos pocel in kako :>

blay44 ::

Sicer se ne bi prerekal z bolj izkušenimi, se mi pa zdi, da "umazano" kodo precej uporabljajo za app, ki delujejo v ozadju, razne interpreterje, driverje in kakor je že en rekel, za kernel. Da se lahk pol prepucavamo kdo je hitrejši.:D
Sam da pa napišeš "prosinec" namesto januar je pa res preveč.
1
2
»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kdo je konec tedna posredoval luknjasto kodo v Linuxovo jedro? (strani: 1 2 )

Oddelek: Novice / Operacijski sistemi
6011612 (8953) blay44
»

Google želi poenotiti jedri Linuxa in Androida

Oddelek: Novice / Operacijski sistemi
4313523 (9688) c3p0
»

Windows 10 bo dobil podsistem s pravim Linuxovim jedrom (strani: 1 2 )

Oddelek: Novice / Operacijski sistemi
8121596 (17524) techfreak :)
»

Linux 4.16 je tu

Oddelek: Novice / Operacijski sistemi
2512632 (8902) poweroff
»

Vse najboljše, Linux!

Oddelek: Novice / Operacijski sistemi
4919039 (15858) Kenpachi

Več podobnih tem