Σελ. 2 από 5 ΠρώτηΠρώτη 1234 ... ΤελευταίαΤελευταία
Εμφάνιση 16-30 από 75
  1. #16
    Το avatar του μέλους eyw
    eyw Guest
    zardoz ευχαριστούμε για την ανάλυση.

    Τώρα, τόσο φοβερό είναι αυτό το branch prediction και μαντεύει συνέχεια σωστά και τρέμουν όλοι από το φόβο τους μην χάσουν σε ταχύτητα?
    Γιατί δεν το υποχρεώσουν να τσεκάρει tables κλπ για το ποιά περιοχή επιτρέπεται να κανει predict και ποια όχι? αν δεν γίνεται ας το καταργήσουν η ας βρουν άλλο κόλπο.
    Αμα έκανε και predict στο τζόκερ...

    Και μεις τάχουμε πάρει, θα παρακαλάμε τους βέντορες να βγάλουν BIOS με φρέσκο microcode. Σιγά μην το κάνουν.

    Ναι, αν δεν γίνεται αλλιώς και προκειμένου να σπαταλιέται χρόνος με πίσω μπρος και stack καλύτερα να έχουν κώδικες για παλιές και για πατσαρισμένες CPU.

  2. #17
    Εγγραφή
    30-04-2008
    Μηνύματα
    6.629
    Downloads
    0
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από eyw Εμφάνιση μηνυμάτων
    zardoz ευχαριστούμε για την ανάλυση.
    Ο ανθρωπος ειναι προγραμματιστης και καποιοι τρολλαρουν...

    Παράθεση Αρχικό μήνυμα από eyw Εμφάνιση μηνυμάτων
    Τώρα, τόσο φοβερό είναι αυτό το branch prediction και μαντεύει συνέχεια σωστά και τρέμουν όλοι από το φόβο τους μην χάσουν σε ταχύτητα?
    Γιατί δεν το υποχρεώσουν να τσεκάρει tables κλπ για το ποιά περιοχή επιτρέπεται να κανει predict και ποια όχι? αν δεν γίνεται ας το καταργήσουν η ας βρουν άλλο κόλπο.
    Αμα έκανε και predict στο τζόκερ...
    Τρολλαρεις κι εσυ βλεπω.

    Σου εχω εναν 286 μουρλια αφου σνομπαρεις το branch prediction. Για εξτρα δοσεις μαζοχισμου, υπαρχει και το real mode.

    Ειναι σαν να λεμε αφου η βενζινη μολυνει, να ξαναγυρισουμε στα γαιδουρια. Τα σκεφτεστε αυτα που λετε?

  3. #18
    Εγγραφή
    29-06-2005
    Μηνύματα
    15.303
    Downloads
    4
    Uploads
    0
    ISP
    .
    Παράθεση Αρχικό μήνυμα από zardoz Εμφάνιση μηνυμάτων
    Εγώ, όσο το διαβάζω, τόσο πιο πολύ θυμώνω...
    ...
    Για κάθε JMP, JNZ, JZ, JEQ κλπ κλπ θα φλομώσουμε σε ανόητο κώδικα, είτε τον χρειαζεται το σύστημα
    μας είτε όχι. Άσχετα με το performance hit, πείτε πως είναι ΜΗΔΕΝ. Όλοι οι μελλοντικοί "καθαροί" CPU
    θα υποστούν αυτή την ανοησία, επειδή θα κυκλοφορούν εκατομύρια παλιές CPU που δεν έκατσαν να
    διορθώσουν (αν γίνεται) το branch prediction speculation με microcode.

    Τα έχω πάρει...
    Μη τρελενεσαι... απ'οσο εχω καταλαβει το concept ειναι οτι compile με μουφα branch target θα παιρνεις μονο εφοσον κανεις compile εσκεμμενα με καποιο "safe" flag, για εφαρμογες που το χρειαζονται ή ακομα και το kernel. Για μια εφαρμογη που κανει ενα συγκεκριμενο task και δεν εχει λογο να φοβαται οτι θα αλλοιωθει το εσωτερικο της εφαρμογης για να αρχισει να διαβαζει παραδιπλα μεσω branching, δεν υπαρχει και λογος να τη κανεις compile με τραμπολινα. Λογικα η συντριπτικη πλειοψηφια των εφαρμογων δεν εχει λογο να θεωρει οτι θα τρεξει εσωτερικα καποιος απροβλεπτος κωδικας για να γινει compile με safe flags.

    Το microcode solution ακουγεται καλο αλλα η παραδοση λεει οτι οταν πανε να φτιαξουν κατι με μικροκωδικα, τα cycle penalties ειναι τελικα μεγαλυτερα ακομα και απ'τα software fixes.

  4. #19
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    45
    Μηνύματα
    8.406
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    70 Mbps down/6 Mbps up
    ISP
    Spectrum
    Παράθεση Αρχικό μήνυμα από markusboy2009 Εμφάνιση μηνυμάτων
    Η intel θέλει να πουλήσει νέα γενιά επεξεργαστών αλλά το +10-15% δε τραβάει, οπότε λέει ας μειώσω τις επιδόσεις των παλιών (δημοσιεύοντας τα και καλά bug. Αμφιβάλλει κανείς ότι μας παρακολουθούν μυστικές υπηρεσίες για το καλό μας πάντα; μεγάλη κουβέντα όμως και off topic) για να αναγκαστούν να αγοράσουν καινούργια.

    Η google πάλι, βρήκε τρόπο να κάνει αποκλειστική χρήση των "bug" meltdown και spectre για να μας παρέχει καλύτερες διαφημίσεις ... τουλάχιστον αυτή ξέρουμε ότι μας παρακολουθεί το παραδέχεται, και μέσα σε όλα έμενα με amd δε το παίρνει το update.

    Τελικά κινδυνεύω όπως πριν; λιγότερο; περισσότερο; τι να πεις! Αν δε τα έλεγα θα έσκαγα συγνώμη για το off topic καλή Κυριακή σε όλους.
    Οι θεωρίες συνωμοσίας σε νέο επίπεδο. Level up, και κανονάκι.

  5. #20
    Εγγραφή
    16-07-2004
    Περιοχή
    Θεσσαλονίκη
    Ηλικία
    51
    Μηνύματα
    1.704
    Downloads
    0
    Uploads
    0
    Τύπος
    PSTN
    Ταχύτητα
    20480/1024
    ISP
    ΟΤΕ Conn-x
    Router
    ZTE w300i
    Path Level
    Interleaved
    Παράθεση Αρχικό μήνυμα από Mirmidon Εμφάνιση μηνυμάτων
    Ακόμα να δούμε όμως που και πως εσύ το εφάρμοσες και τι διαφορές στις εποδόσεις διαπίστωσες με τη δικιά σου λύση έναντι non patched συστημάτων και έναντι της λύσης της Google. Εν όλίγης πρακτικά η θεωρία σου που είναι εφαρμoσμένη;
    Προσπαθώ πραγματικά να σε καταλάβω.. μια και είναι η δεύτερη φορά που το αναφέρεις

    Δεν έχω ούτε κάποια ΔΙΚΗ μου λύση αλλά ΛΕΩ ΟΤΙ ΠΡΕΠΕΙ να το λύσουν in-microcode
    ή απλά να πουν πότε θα το λύσουν in-microcode.

    Αν το κάνουν: θα λυθεί "σωστά" και πιθανώς ανα-cpu.
    Αν δε το κάνουν: Σας δείχνω ΜΕ ΚΩΔΙΚΑ ότι αν το λύσουν με τον εύκολο τρόπο, θα "αναβάλουν" την σωστή λύση
    και θα γεμίσουμε σκουπίδια.

    Όσο για το flag...

    α) Μια εφαρμογή, έχει απίστευτο αριθμό branches/conditional branches. Αν ήταν να κοιτάζει κάποιο flag πριν, το κλείσαμε το μαγαζί.
    Αν είναι να κατεβάσεις εφαρμογή "ανάλογα" με το ποιά cpu έχεις, πάλι το κλείσαμε το μαγαζί.

    β) Και εντάξει, άντε με τις εφαρμογές. Οι βιβλιοθήκες? Τα DLLs? Όταν περνάς από user mode σε kernel mode κλήσεις, στη μια θα
    χρειάζεσαι το "software" fix και στην άλλη όχι. Θα δίνει η microsoft διπλά DLL ανάλογα με το ποιά CPU έχεις? Θα έχουν flag
    για να καθυστερούν ακόμα περίσσοτερο ?
    (βλ α))

    Συγκεκριμένα:
    - Όλα τα user mode DLLs (πχ printer drivers) θα πρέπει να είναι διπλά. Ένα με το fix, ένα χωρίς (ή μήπως με... flag)
    - Όλα τα kernel mode DLLs εφόσον διόθρωσαν το KPTI θα είναι εντάξει - άντε εδώ το σώσαμε

    Μπορώ να το εξηγήσω και πιό αναλυτικά, αλλά δεν έχει νόημα. I rest my case.
    Όλα τα παιχνίδια android που έχω φτιάξει περιγράφονται και
    κατεβαίνουν από εδώ: https://sites.google.com/site/carbonpeoplegames/

  6. #21
    Το avatar του μέλους turboirc
    turboirc Guest
    Παράθεση Αρχικό μήνυμα από zardoz Εμφάνιση μηνυμάτων
    Προσπαθώ πραγματικά να σε καταλάβω.. μια και είναι η δεύτερη φορά που το αναφέρεις

    Δεν έχω ούτε κάποια ΔΙΚΗ μου λύση αλλά ΛΕΩ ΟΤΙ ΠΡΕΠΕΙ να το λύσουν in-microcode
    ή απλά να πουν πότε θα το λύσουν in-microcode.

    Αν το κάνουν: θα λυθεί "σωστά" και πιθανώς ανα-cpu.
    Αν δε το κάνουν: Σας δείχνω ΜΕ ΚΩΔΙΚΑ ότι αν το λύσουν με τον εύκολο τρόπο, θα "αναβάλουν" την σωστή λύση
    και θα γεμίσουμε σκουπίδια.

    Όσο για το flag...

    α) Μια εφαρμογή, έχει απίστευτο αριθμό branches/conditional branches. Αν ήταν να κοιτάζει κάποιο flag πριν, το κλείσαμε το μαγαζί.
    Αν είναι να κατεβάσεις εφαρμογή "ανάλογα" με το ποιά cpu έχεις, πάλι το κλείσαμε το μαγαζί.

    β) Και εντάξει, άντε με τις εφαρμογές. Οι βιβλιοθήκες? Τα DLLs? Όταν περνάς από user mode σε kernel mode κλήσεις, στη μια θα
    χρειάζεσαι το "software" fix και στην άλλη όχι. Θα δίνει η microsoft διπλά DLL ανάλογα με το ποιά CPU έχεις? Θα έχουν flag
    για να καθυστερούν ακόμα περίσσοτερο ?
    (βλ α))

    Συγκεκριμένα:
    - Όλα τα user mode DLLs (πχ printer drivers) θα πρέπει να είναι διπλά. Ένα με το fix, ένα χωρίς (ή μήπως με... flag)
    - Όλα τα kernel mode DLLs εφόσον διόθρωσαν το KPTI θα είναι εντάξει - άντε εδώ το σώσαμε

    Μπορώ να το εξηγήσω και πιό αναλυτικά, αλλά δεν έχει νόημα. I rest my case.
    Η αξία εδώ μέσα είναι να *λες* ότι είσαι υπερ του ανοικτού κώδικα. Αν αρχίσεις και γράφεις ή δείχνεις κώδικα τότε όλοι φεύγουν σαν τους λαγούς.
    Φυσικά η λύση δεν θα είναι με κάποιο extra compiler flag, διότι τότε όλοι μα όλοι θα το έχουμε ενεργοποιημένο.
    Θα είναι by default ενεργοποιημένο μη σου πώ.

  7. #22
    Εγγραφή
    16-07-2004
    Περιοχή
    Θεσσαλονίκη
    Ηλικία
    51
    Μηνύματα
    1.704
    Downloads
    0
    Uploads
    0
    Τύπος
    PSTN
    Ταχύτητα
    20480/1024
    ISP
    ΟΤΕ Conn-x
    Router
    ZTE w300i
    Path Level
    Interleaved
    Παράθεση Αρχικό μήνυμα από turboirc Εμφάνιση μηνυμάτων
    Φυσικά η λύση δεν θα είναι με κάποιο extra compiler flag, διότι τότε όλοι μα όλοι θα το έχουμε ενεργοποιημένο.
    Θα είναι by default ενεργοποιημένο μη σου πώ.
    Αυτό φοβάμαι και γι αυτό φωνάζω. Όλοι διαφημίζουν το εύκολο και άνετο fix.
    To ποιά κληρονομιά αφήνει, νομίζω οι μισοί εδώ μέσα δεν την καταλαβαίνουν.
    Στο τέλος θα "φτιαχτεί" (άντε χωρίς speed impact) αλλά χωρίς ουσιαστικά να
    διορθωθεί (στους παρελθοντικούς processors), και θα κουβαλάμε σκουπίδια
    για καμια 5ετία (και βάλε)
    Όλα τα παιχνίδια android που έχω φτιάξει περιγράφονται και
    κατεβαίνουν από εδώ: https://sites.google.com/site/carbonpeoplegames/

  8. #23
    Εγγραφή
    01-07-2003
    Περιοχή
    Θεσσαλλλλονίκη
    Μηνύματα
    68.577
    Downloads
    39
    Uploads
    14
    Τύπος
    Cable
    Ταχύτητα
    120000/120000
    ISP
    HCN - OTE
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    asus,vigor
    SNR / Attn
    11.5(dB) / 30.5(dB)
    Path Level
    Interleaved
    Παράθεση Αρχικό μήνυμα από zardoz Εμφάνιση μηνυμάτων
    Αυτό φοβάμαι και γι αυτό φωνάζω. Όλοι διαφημίζουν το εύκολο και άνετο fix.
    To ποιά κληρονομιά αφήνει, νομίζω οι μισοί εδώ μέσα δεν την καταλαβαίνουν.
    Στο τέλος θα "φτιαχτεί" (άντε χωρίς speed impact) αλλά χωρίς ουσιαστικά να
    διορθωθεί (στους παρελθοντικούς processors), και θα κουβαλάμε σκουπίδια
    για καμια 5ετία (και βάλε)
    Αυτή την στιγμή όμως οι λύσεις που υπάρχουν είναι ή θέμα με το Performance σε συνδυασμό ενημέρωσης cpu microcode + software patch ή την λύση που δίνει η Google.
    Αυτό που πρέπει να εφαρμόσει το patch εχθές γιατί έχει θέμα ασφαλείας τι λες να επιλέξει;

    Ναι πρέπει να δοθεί λύση στο υλικό που να μην έχει επιπτώσεις, άλλα μέχρι να δοθεί τι κάνουμε;

    Οπότε πέρα απο το τι έδωσες εσύ, τι έδωσε ο άλλος, το θέμα είναι οτι αυτή την στιγμή το πρόβλημα υπάρχει και οι λύσεις του είναι συγκεκριμένες.
    How to get to /dev/null quick
    Πατήστε
    2. είσαι με χρώμα
    3. είσαι πνεύμα αντιλογίας
    4. είσαι εργαζόμενος στην "χ" εταιρία
    Αλλιώς περιμένετε να συνδεθεί η κλήση σας

  9. #24
    Εγγραφή
    29-06-2005
    Μηνύματα
    15.303
    Downloads
    4
    Uploads
    0
    ISP
    .
    Παράθεση Αρχικό μήνυμα από zardoz Εμφάνιση μηνυμάτων
    Προσπαθώ πραγματικά να σε καταλάβω.. μια και είναι η δεύτερη φορά που το αναφέρεις Δεν έχω ούτε κάποια ΔΙΚΗ μου λύση αλλά ΛΕΩ ΟΤΙ ΠΡΕΠΕΙ να το λύσουν in-microcode ή απλά να πουν πότε θα το λύσουν in-microcode. Αν το κάνουν: θα λυθεί "σωστά" και πιθανώς ανα-cpu. Αν δε το κάνουν: Σας δείχνω ΜΕ ΚΩΔΙΚΑ ότι αν το λύσουν με τον εύκολο τρόπο, θα "αναβάλουν" την σωστή λύση και θα γεμίσουμε σκουπίδια.
    Ισχυει αλλα το θεμα ειναι ποσο ειναι το microcode penalty. Δλδ αν το microcode update μπορει να κανει το ιδιο με 10-15 cycles αντι 5 (εναντι 1 του αρχικου), τοτε ολες οι cpu που εχουν βγει μεχρι σημερα (και θα βγαινουν για κανα χρονο) θα φανε τρελη επιβραδυνση. Η επικληση του microcode συνηθως εισαγει μεγαλο delay. Το θεμα ειναι ποσο μεγαλο και αν αξιζει ή οχι. Αυτη τη κρισιμη λεπτομερεια αγνοουμε.
    Όσο για το flag... α) Μια εφαρμογή, έχει απίστευτο αριθμό branches/conditional branches. Αν ήταν να κοιτάζει κάποιο flag πριν, το κλείσαμε το μαγαζί. Αν είναι να κατεβάσεις εφαρμογή "ανάλογα" με το ποιά cpu έχεις, πάλι το κλείσαμε το μαγαζί.
    Μιλαω για compiler flag. Εστω οτι εχεις μια εφαρμογη οπως ενας browser που δε θες να γινεται speculative execution... την κανεις compile με gcc -Ο2 -safefrombranchpredictionήκατιτετοιο και τελος. Απ'την αλλη εχεις πχ ενα 3d rendering software το οποιο δε χρειαζεται να το κανεις compile ετσι γιατι δεν περιμενεις οτι θα εκτελεστει (εσωτερικα του) καποιος περιεργος speculative κωδικας απο τριτο μερος το οποιο θα στειλει στοιχεια αλλου. Αρα gcc -O2 σκετο και τελος. Στη πρωτη περιπτωση τα jmp/jne/jnz κτλ θα μεταφραζονται σε τραμπολινα στο binary και στη δευτερη περιπτωση θα αφηνονται κανονικα ως εχει.
    β) Και εντάξει, άντε με τις εφαρμογές. Οι βιβλιοθήκες? Τα DLLs? Όταν περνάς από user mode σε kernel mode κλήσεις, στη μια θα χρειάζεσαι το "software" fix και στην άλλη όχι. Θα δίνει η microsoft διπλά DLL ανάλογα με το ποιά CPU έχεις? Θα έχουν flag για να καθυστερούν ακόμα περίσσοτερο ? (βλ α)) Συγκεκριμένα: - Όλα τα user mode DLLs (πχ printer drivers) θα πρέπει να είναι διπλά. Ένα με το fix, ένα χωρίς (ή μήπως με... flag) - Όλα τα kernel mode DLLs εφόσον διόθρωσαν το KPTI θα είναι εντάξει - άντε εδώ το σώσαμε
    Το function multiversioning ηδη ισχυει στα system libraries (τα καλα) - ειδικα στο linux. Πχ αλλη memcpy ή memcmp εκτελει ενα sse2 cpu, αλλη ενα sse4.1 cpu, αλλη ενα avx2 cpu και αλλη ενα avx512 cpu. Το ταραζει στο cpuid και feature flags για να βρει τι να κανει και μετα το κανει. Δλδ ο ελεγχος και το branching στο καταλληλο function γινεται ηδη - δεν υπαρχει θεμα overhead. Το μονο που υπαρχει ειναι θεμα μεγεθους του compiled library γιατι αυξανονται τα functions υπο εκτελεση. Βασικα δεν υπαρχει ευκολη λυση εδω που φθασαμε. Μακαρι να μπορουσε να γινει με ενα microcode update με μικρο perf penalty και τελος, αλλα δε νομιζω οτι το microcode μπορει να το κανει.
    Τελευταία επεξεργασία από το μέλος MNP-10 : 15-01-18 στις 17:06.

  10. #25
    Εγγραφή
    09-09-2006
    Περιοχή
    Αθηνα
    Ηλικία
    46
    Μηνύματα
    2.486
    Downloads
    3
    Uploads
    0
    Τύπος
    Other / Άλλο
    ISP
    Γείτονας
    Παράθεση Αρχικό μήνυμα από sdikr Εμφάνιση μηνυμάτων
    Αυτή την στιγμή όμως οι λύσεις που υπάρχουν είναι ή θέμα με το Performance σε συνδυασμό ενημέρωσης cpu microcode + software patch ή την λύση που δίνει η Google.
    Αυτό που πρέπει να εφαρμόσει το patch εχθές γιατί έχει θέμα ασφαλείας τι λες να επιλέξει;

    Ναι πρέπει να δοθεί λύση στο υλικό που να μην έχει επιπτώσεις, άλλα μέχρι να δοθεί τι κάνουμε;

    Οπότε πέρα απο το τι έδωσες εσύ, τι έδωσε ο άλλος, το θέμα είναι οτι αυτή την στιγμή το πρόβλημα υπάρχει και οι λύσεις του είναι συγκεκριμένες.
    Όχι μόνο αυτό, αλλά πιστεύω επίσης ότι οι μηχανικοί της Google που δούλεψαν πάνω στο Retpoline για 6 μήνες περίπου, θα δοκίμασαν και άλλους τρόπους επίλυσης του προβλήματος και σίγουρα αυτή είναι και η μοναδική software ταχύτατη λύση.Όλα τα άλλα λοιπόν είναι φιλολογίες για μένα γιατί το πρόβλημα θέλει πρακτική και δοκιμασμένη λύση και όχι θεωρίες. Δεν εκπλήσομαι μιας και σίγουρα το να έχεις γράψει και να συντηρείς κώδικα για cloud εφαρμογές στο μέγεθος των εφαρμογών πχ της Google, σίγουρα δεν είναι για τον καθένα. Επίσης πιστεύω ότι στο μέλλον θα δούμε και άλλες ανάλογες πρακτικές λύσεις, πιθανόν μάλιστα εναρμονισμένες με το σκεπτικό της λύσης του Retpoline και γιατί όχι, ποιο βελτιωμένες.
    "If you pay peanuts you get monkeys"
    ------------------------------------------------------------------------------------
    Άλλοι καταλαβαίνουν ότι διαβάζουν και άλλοι διαβάζουν ότι καταλαβαίνουν
    ------------------------------------------------------------------------------------
    Η αλήθεια που δεν σας λένε, i7 2600K vs i7 8700K σημειώσατε Χ

  11. #26
    Εγγραφή
    29-06-2005
    Μηνύματα
    15.303
    Downloads
    4
    Uploads
    0
    ISP
    .
    Εγραψα νωριτερα:
    Παράθεση Αρχικό μήνυμα από MNP-10 Εμφάνιση μηνυμάτων
    Μιλαω για compiler flag. Εστω οτι εχεις μια εφαρμογη οπως ενας browser που δε θες να γινεται speculative execution... την κανεις compile με gcc -Ο2 -safefrombranchpredictionήκατιτετοιο και τελος. Απ'την αλλη εχεις πχ ενα 3d rendering software το οποιο δε χρειαζεται να το κανεις compile ετσι γιατι δεν περιμενεις οτι θα εκτελεστει (εσωτερικα του) καποιος περιεργος speculative κωδικας απο τριτο μερος το οποιο θα στειλει στοιχεια αλλου. Αρα gcc -O2 σκετο και τελος. Στη πρωτη περιπτωση τα jmp/jne/jnz κτλ θα μεταφραζονται σε τραμπολινα στο binary και στη δευτερη περιπτωση θα αφηνονται κανονικα ως εχει.
    Τελικα κατι τετοιο θα γινει απ'οτι φαινεται: https://www.phoronix.com/scan.php?pa...4.14-Retpoline
    This X86_FEATURE_RETPOLINE is enabled for all AMD/Intel CPUs. For full support you also need to be building the kernel with a newer GCC compiler containing -mindirect-branch=thunk-extern support. The GCC changes landed in GCC 8.0 yesterday and is in the process of potentially being back-ported to GCC 7.3.
    Οπότε το default compiler behavior ειναι κλασικα jumps, ενω για να παρεις τα suboptimal (+safe) binaries, πρεπει να το ζητησεις ο ιδιος με flag.

  12. #27
    Εγγραφή
    03-05-2007
    Περιοχή
    127.0.0.1
    Μηνύματα
    3.137
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    30720/2560
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΓΗΡΟΚΟΜΕΙΟΥ
    Router
    ZXDSL 931VII
    SNR / Attn
    12.7(dB) / 0(dB)
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από zardoz Εμφάνιση μηνυμάτων
    Εγώ, όσο το διαβάζω, τόσο πιο πολύ θυμώνω...

    Μπράβο στη Google που βρήκε μια "κομψή" λύση, για όσους βαριούνται να τη διαβάσουν έκανα περίληψη στο #400
    αλλά, όπως γράφω στο #408, αυτή η λύση "βολεύει" τους vendors για να μη το φτιάξουν in-chip ουσιαστικά ποτέ.

    Όπως έδειξα, και λέει και η ίδια η google, όλα τα method calls σε οποιαδήποτε αντικειμενοστρεφή γλώσσα προγραμματισμού,
    όλα τα switch/case statements, όλα τα table jumps, όλες οι κλήσεις σε relocatable βιβλιοθήκες (DLLs κλπ κλπ) θα παιρνούν
    από το τραμπολίνο, (extra cpu cycles, no prediction, μεγάλο data caching failure), και εμείς αυτό θα το φεσωθούμε για ΠΑΝΤΑ,
    ακόμα και αν βγεί η μεθεπόμενη γενιά!!!!


    Φανταστείτε λοιπόν, η Google να κάνει compilation το νέο chrome αντικαθιστώντας τα

    JMP [xxx]

    με

    πάνω1: CALL FixXXX
    NOP
    JMP πάνω1;
    FixXXX: MOV [xxx],[SP] // αλλάζει το stack
    RET // οπότε αυτό το RET θα πάει JMP στο [xxx]

    Τί έγινε ???

    • Κάποιος που η CPU του έχει το spectre ζήτημα, θα πάρει αυτή την έκδοση του chrome.
    • Κάποιος που έχει αύριο Intel 9th generation που δεν έχει ζήτημα, ποιά έκδοση θα πάρει? σιγά μην αλλάζουν εκδόσεις ανά CPU era


    Για κάθε JMP, JNZ, JZ, JEQ κλπ κλπ θα φλομώσουμε σε ανόητο κώδικα, είτε τον χρειαζεται το σύστημα
    μας είτε όχι. Άσχετα με το performance hit, πείτε πως είναι ΜΗΔΕΝ. Όλοι οι μελλοντικοί "καθαροί" CPU
    θα υποστούν αυτή την ανοησία, επειδή θα κυκλοφορούν εκατομύρια παλιές CPU που δεν έκατσαν να
    διορθώσουν (αν γίνεται) το branch prediction speculation με microcode.

    Τα έχω πάρει...


    δε γινεται χωρις branch prediction να εχεις ιδιες αποδοσεις με το να εχεις. δεν ξερω πως γινεται η google να λεει τετοια πραγματα αν ισχυουν οτι λες.


    https://2.bp.blogspot.com/-wWkQMzEg5...hart_1+(1).png
    Ουκ επ’ άρτω μόνω ζήσεται άνθρωπος

  13. #28
    Εγγραφή
    16-07-2004
    Περιοχή
    Θεσσαλονίκη
    Ηλικία
    51
    Μηνύματα
    1.704
    Downloads
    0
    Uploads
    0
    Τύπος
    PSTN
    Ταχύτητα
    20480/1024
    ISP
    ΟΤΕ Conn-x
    Router
    ZTE w300i
    Path Level
    Interleaved
    Η google δεν ακυρώνει το Branch prediction, κλείνει τη διεύθυνση του Branch σε τέτοιο κώδικα που δε γίνεται speculation. Γι αυτό δεν έχει impact σε χρόνους.

    Απλά, όλα πρέπει να γίνουν compile από... την αρχή (τα δικά τους cloud services τα έκαναν οι πονηρουληδες ήδη), και φυσικά, όπως προείπα.. σκουπίδι παντού.
    Όλα τα παιχνίδια android που έχω φτιάξει περιγράφονται και
    κατεβαίνουν από εδώ: https://sites.google.com/site/carbonpeoplegames/

  14. #29
    Εγγραφή
    03-05-2007
    Περιοχή
    127.0.0.1
    Μηνύματα
    3.137
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    30720/2560
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΓΗΡΟΚΟΜΕΙΟΥ
    Router
    ZXDSL 931VII
    SNR / Attn
    12.7(dB) / 0(dB)
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από zardoz Εμφάνιση μηνυμάτων
    Η google δεν ακυρώνει το Branch prediction, κλείνει τη διεύθυνση του Branch σε τέτοιο κώδικα που δε γίνεται speculation. Γι αυτό δεν έχει impact σε χρόνους.

    Απλά, όλα πρέπει να γίνουν compile από... την αρχή (τα δικά τους cloud services τα έκαναν οι πονηρουληδες ήδη), και φυσικά, όπως προείπα.. σκουπίδι παντού.

    μα χωρις speculation δε γινεται prediction οποτε ακυρωνει το branch prediction. δε το επιασα. καταλαβα πως γραφεις τον κωδικα ωστε να μη χρειαζεται να κανει prediction ο επεξεργαστης. αυτο δεν ακυρωνει το branch prediction?

    - - - Updated - - -

    The objective is to provide more concurrency if extra resources are available. This approach is employed in a variety of areas, including branch prediction in pipelined processors, value prediction for exploiting value locality,[1] prefetching memory and files, and optimistic concurrency control in database systems.[2][3][4]

    https://en.wikipedia.org/wiki/Speculative_execution
    - - - Updated - - -

    It turns out Skylake CPUs and newer require additional patches to fully mitigate against the Spectre Variant Two vulnerability. These newer CPUs can fallback to a potentially poisoned indirect branch predictor when a return buffer underflows. Andi Kleen of Intel has sent out a new patch series dubbed "RETPOLINE_UNDERFLOW" that gets enabled by default for Skylake CPUs and newer.


    No benchmark results of the impact of this latest addition to Retpoline are yet available. David Woodhouse of Amazon responded that they are looking at using the alternative IBRS (Indirect Branch Restricted Speculation) support on Skylake and use it by default rather than Retpoline.

    https://www.phoronix.com/scan.php?pa...LINE_UNDERFLOW


    The x86 IBRS feature requires corresponding microcode support.

    If IBRS is set, near returns and near indirect jumps/calls will not
    allow their predicted target address to be controlled by code that
    executed in a less privileged prediction mode before the IBRS mode was
    last written with a value of 1 or on another logical processor so long
    as all RSB entries from the previous less privileged prediction mode
    are overwritten.

    Setting of IBPB ensures that earlier code's behavior does not control later
    indirect branch predictions
    . It is used when context switching to new
    untrusted address space. Unlike IBRS, IBPB is a command MSR
    and does not retain its state.


    https://lkml.org/lkml/2018/1/4/615
    - - - Updated - - -

    Fixing the bounds bypass check attack requires analysis and recompilation of vulnerable code; addressing the branch target injection attack can be dealt with via a CPU microcode update, such as Intel's IBRS microcode, or through a software patch like "retpoline" to the operating system kernel, the hypervisor, and applications.


    https://www.theregister.co.uk/2018/0...aws_explained/
    Τελευταία επεξεργασία από το μέλος farcry : 16-01-18 στις 02:00.
    Ουκ επ’ άρτω μόνω ζήσεται άνθρωπος

  15. #30
    Εγγραφή
    30-09-2005
    Ηλικία
    43
    Μηνύματα
    6.213
    Downloads
    6
    Uploads
    0
    Είδα αυτή την ανακοίνωση πριν μερικές μέρες. Είναι πολύ καλό το οτι έχουν κάνει διαθέσιμη την έρευνα τους σε όλους. Τώρα αν η MS αποφασίσει να χρησιμοποιήσει fix της google είναι ενα θέμα...
    If the facts don't fit the theory, change the facts.
    Albert Einstein


Σελ. 2 από 5 ΠρώτηΠρώτη 1234 ... ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Αναβάθμιση RAM και ερώτηση για τα slots και το maximum memory capacity
    Από elvenpath στο φόρουμ Motherboards, CPU και memory
    Μηνύματα: 13
    Τελευταίο Μήνυμα: 20-07-17, 11:11
  2. Μηνύματα: 5
    Τελευταίο Μήνυμα: 19-03-17, 18:00

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας