Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    altg
    utente che non utiene
    il 2013-09-23 17:46:33.0 alle 2013-09-23 17:46:33.0
    Trollate totali: 11540
    Io mi c'ero imbattutto all'inizio dell'anno...
    ...e mi ero anche sentito scemo ad implementare qualcosa del genere.
    Ma voi per esempio la sapevate questa? Newbie, inesperto
    Sapevatela su rieducational FdT. A bocca storta

    http://stackoverflow.com/questions/4123609/allocat...
    http://gcc.gnu.org/onlinedocs/gccint/Stack-Checkin...

    Mi sembrava che una cosa cosi` fosse una toppa, che qualcosa non andasse nel S.O., piu` che altro, e invece... e` pratica diffusa e anche necessaria, pare. Solo che non si vede mai, se non ci si mette a scrivere compilatori & Co.

    MMMMah!
    A me me pare 'na strunzata, pero` serve. Triste
    • Avatar
      ☺
      Scritto da
      ::1
      il 2013-09-23 19:38:04.0 alle 2013-09-23 19:38:04.0
      Trollate totali: 12321
      Re: Io mi c'ero imbattutto all'inizio dell'anno...
      Scritto da: altg
      > ...e mi ero anche sentito scemo ad implementare qualcosa del genere.
      > Ma voi per esempio la sapevate questa? Newbie, inesperto
      No.

      > Sapevatela su rieducational FdT. A bocca storta
      >
      > http://stackoverflow.com/questions/4123609/allocat...
      > http://gcc.gnu.org/onlinedocs/gccint/Stack-Checkin...
      >
      > Mi sembrava che una cosa cosi` fosse una toppa, che qualcosa non andasse nel S.O., piu` che altro, e invece... e` pratica diffusa e anche necessaria, pare. Solo che non si vede mai, se non ci si mette a scrivere compilatori & Co.
      >
      > MMMMah!
      > A me me pare 'na strunzata, pero` serve. Triste

      Perché dovrei allocare in stack una cosa grossa grossa quando posso allocarla in heap?
      Young professional woman and busy mom.
      • Avatar
        ☺
        Scritto da
        altg
        utente che non utiene
        il 2013-09-23 22:00:15.0 alle 2013-09-23 22:00:15.0
        Trollate totali: 11540
        Re: Io mi c'ero imbattutto all'inizio dell'anno...
        > > ...e mi ero anche sentito scemo ad implementare qualcosa del genere.
        > > Ma voi per esempio la sapevate questa? Newbie, inesperto
        > No.
        >
        > > Sapevatela su rieducational FdT. A bocca storta
        > >
        > > http://stackoverflow.com/questions/4123609/allocat...
        > > http://gcc.gnu.org/onlinedocs/gccint/Stack-Checkin...
        > >
        > > Mi sembrava che una cosa cosi` fosse una toppa, che qualcosa non andasse nel S.O., piu` che altro, e invece... e` pratica diffusa e anche necessaria, pare. Solo che non si vede mai, se non ci si mette a scrivere compilatori & Co.
        > >
        > > MMMMah!
        > > A me me pare 'na strunzata, pero` serve. Triste
        >
        > Perché dovrei allocare in stack una cosa grossa grossa quando posso allocarla in heap?

        No no, darebbe malfunzionamenti anche con una cosa piccola (come il call frame con le locali di una subroutine). Si tratta di spostare lo stack pointer, quando si alloca il call frame. Non vai fisicamente a toccare le locazioni coinvolte, quindi il sistema, a quanto pare, non puo` rendersi conto che quella memoria va considerata allocata. E l'unico modo per evitare questo e` effettuare un "push" all'inizio di ogni nuova pagina, che su IA-32 e` lunga 4 KB. Se scavalchi il confine tra le pagine spostando lo stack pointer, ma non pushi niente, all'accesso con istruzioni che non siano push/pop tipo quelle che accedono alle locali, ti prendi un page fault. A bocca storta
        • Avatar
          ☺
          Scritto da
          ::1
          il 2013-09-23 22:12:06.0 alle 2013-09-23 22:12:06.0
          Trollate totali: 12321
          Re: Io mi c'ero imbattutto all'inizio dell'anno...
          Scritto da: altg
          > > > ...e mi ero anche sentito scemo ad implementare qualcosa del genere.
          > > > Ma voi per esempio la sapevate questa? Newbie, inesperto
          > > No.
          > >
          > > > Sapevatela su rieducational FdT. A bocca storta
          > > >
          > > > http://stackoverflow.com/questions/4123609/allocat...
          > > > http://gcc.gnu.org/onlinedocs/gccint/Stack-Checkin...
          > > >
          > > > Mi sembrava che una cosa cosi` fosse una toppa, che qualcosa non andasse nel S.O., piu` che altro, e invece... e` pratica diffusa e anche necessaria, pare. Solo che non si vede mai, se non ci si mette a scrivere compilatori & Co.
          > > >
          > > > MMMMah!
          > > > A me me pare 'na strunzata, pero` serve. Triste
          > >
          > > Perché dovrei allocare in stack una cosa grossa grossa quando posso allocarla in heap?
          >
          > No no, darebbe malfunzionamenti anche con una cosa piccola (come il call frame con le locali di una subroutine). Si tratta di spostare lo stack pointer, quando si alloca il call frame. Non vai fisicamente a toccare le locazioni coinvolte, quindi il sistema, a quanto pare, non puo` rendersi conto che quella memoria va considerata allocata. E l'unico modo per evitare questo e` effettuare un "push" all'inizio di ogni nuova pagina, che su IA-32 e` lunga 4 KB. Se scavalchi il confine tra le pagine spostando lo stack pointer, ma non pushi niente, all'accesso con istruzioni che non siano push/pop tipo quelle che accedono alle locali, ti prendi un page fault. A bocca storta

          Che cosa complicata.

          E adesso: pubblicità!
          Nelle opzioni utente puoi trovare il nuovo stile largo e fluido del fdt, leggi più post con meno spazio!* il baco della sidebar aperta dopo il salvataggio lo conosco

          **Modificato dall'autore il 23.09.2013 22:13**
          Young professional woman and busy mom.
          • Avatar
            ☺
            Scritto da
            altg
            utente che non utiene
            il 2013-09-23 23:06:11.0 alle 2013-09-23 23:06:11.0
            Trollate totali: 11540
            Re: Io mi c'ero imbattutto all'inizio dell'anno...
            > > > > ...e mi ero anche sentito scemo ad implementare qualcosa del genere.
            > > > > Ma voi per esempio la sapevate questa? Newbie, inesperto
            > > > No.
            > > >
            > > > > Sapevatela su rieducational FdT. A bocca storta
            > > > >
            > > > > http://stackoverflow.com/questions/4123609/allocat...
            > > > > http://gcc.gnu.org/onlinedocs/gccint/Stack-Checkin...
            > > > >
            > > > > Mi sembrava che una cosa cosi` fosse una toppa, che qualcosa non andasse nel S.O., piu` che altro, e invece... e` pratica diffusa e anche necessaria, pare. Solo che non si vede mai, se non ci si mette a scrivere compilatori & Co.
            > > > >
            > > > > MMMMah!
            > > > > A me me pare 'na strunzata, pero` serve. Triste
            > > >
            > > > Perché dovrei allocare in stack una cosa grossa grossa quando posso allocarla in heap?
            > >
            > > No no, darebbe malfunzionamenti anche con una cosa piccola (come il call frame con le locali di una subroutine). Si tratta di spostare lo stack pointer, quando si alloca il call frame. Non vai fisicamente a toccare le locazioni coinvolte, quindi il sistema, a quanto pare, non puo` rendersi conto che quella memoria va considerata allocata. E l'unico modo per evitare questo e` effettuare un "push" all'inizio di ogni nuova pagina, che su IA-32 e` lunga 4 KB. Se scavalchi il confine tra le pagine spostando lo stack pointer, ma non pushi niente, all'accesso con istruzioni che non siano push/pop tipo quelle che accedono alle locali, ti prendi un page fault. A bocca storta
            >
            > Che cosa complicata.

            Ne ho viste di peggio, in questi giorni in cui sto rendendo tutto thread-safe.
            Prima avevo una tasklist nella heap interface, che faceva garbage collection di 1 thread.
            Ora devo allocare una tasklist per thread.
            Prima potevo usare una globale per descrivere lo stato success/failed di una chiamata.
            Ora ho dovuto usare qualcosa di thread-safe e su IA-32 ho optato per il Direction Flag.
            Prima potevo avere puntatori globali ai contesti delle closures.
            Ora devo caricare il registro di riserva col puntatore al contesto.
            E cosi` via in una supercazzola di modifiche grandi e piccole affinche` tutto quel che puo` girare in multithreading passi dallo stack, dai registri, dalla heap, o dai flag del core in uso. E tutto il resto sia protetto da spin-locks su test-and-set atomici, oppure mutexes con parking e unparking e gestione della coda di prenotazione.
            Altro che stack probes. Triste
            Ma chi me l'ha fatto fare di metterci il multithreading? In lacrime

            Comunque, la complicazione e il brain-straining sono per me.
            Una volta fatti gli strumenti giusti, l'uso e` abbastanza semplice. Geek

            > E adesso: pubblicità!
            > Nelle opzioni utente puoi trovare il nuovo stile largo e fluido del fdt, leggi più post con meno spazio!* il baco della sidebar aperta dopo il salvataggio lo conosco

            E ai primi 50 utenti che attivano l'opzione,
            in regalo la cazzuola laser di Shpalman!
            Keroppi

            **Modificato dall'autore il 23.09.2013 23:08**
<softv>

Pagina generata in 86 millisecondi

Utenti attivi: 10 nell'ultimo minuto, 21 negli ultimi cinque minuti, 42 negli ultimi 15 minuti