Modifiche con il kernel 4.17
[gapil.git] / fileadv.tex
index 8ac1a734b907f0d6d6ca001e211079069d231024..3b560d7b57802ca53131e2c3515f2716eed08729 100644 (file)
@@ -1,6 +1,6 @@
 %% fileadv.tex
 %%
-%% Copyright (C) 2000-2016 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -912,6 +912,9 @@ può presentare anche con l'uso di file mappati in memoria; pertanto allo stato
 attuale delle cose è sconsigliabile fare affidamento sul \textit{mandatory
   locking}.
 
+% TODO il supporto è stato reso opzionale nel 4.5, verrà eliminato nel futuro
+% (vedi http://lwn.net/Articles/667210/)
+
 \itindend{file~locking}
 
 \itindend{mandatory~locking}
@@ -1834,6 +1837,9 @@ modificano le modalità di notifica.
   ed è utile per riconoscere la chiusura di una connessione dall'altro capo di
   un socket quando si lavora in modalità \textit{edge triggered}.}
 
+% TODO aggiunto con il kernel 4.5  EPOLLEXCLUSIVE, vedi
+% http://lwn.net/Articles/633422/#excl 
+
 Il secondo campo, \var{data}, è una \dirct{union} che serve a identificare il
 file descriptor a cui si intende fare riferimento, ed in astratto può
 contenere un valore qualsiasi (specificabile in diverse forme) che ne permetta
@@ -3854,6 +3860,7 @@ per il campo \var{aio\_sigevent} di \struct{aiocb}.
 % http://webfiveoh.com/content/guides/2012/aug/mon-13th/linux-asynchronous-io-and-libaio.html, 
 % https://code.google.com/p/kernel/wiki/AIOUserGuide,
 % http://bert-hubert.blogspot.de/2012/05/on-linux-asynchronous-file-io.html 
+% https://www.fsl.cs.sunysb.edu/~vass/linux-aio.txt
 
 
 \section{Altre modalità di I/O avanzato}
@@ -4103,6 +4110,9 @@ file.
 % TODO trattare MAP_HUGETLB introdotto con il kernel 2.6.32, e modifiche
 % introdotte con il 3.8 per le dimensioni variabili delle huge pages
 
+% TODO trattare  MAP_FIXED_NOREPLACE vedi https://lwn.net/Articles/751651/ e
+% https://lwn.net/Articles/741369/ 
+
 L'argomento \param{flags} specifica infine qual è il tipo di oggetto mappato,
 le opzioni relative alle modalità con cui è effettuata la mappatura e alle
 modalità con cui le modifiche alla memoria mappata vengono condivise o
@@ -4679,6 +4689,12 @@ caching dei dati.
   \label{tab:madvise_advice_values}
 \end{table}
 
+% TODO aggiunta MADV_FREE dal kernel 4.5 (vedi http://lwn.net/Articles/590991/)
+% TODO aggiunta MADV_WIPEONFORK dal kernel 4.14 that causes the affected memory
+% region to appear to be full of zeros in the child process after a fork. It
+% differs from the existing MADV_DONTFORK in that the address range will
+% remain valid in the child (dalla notizia in https://lwn.net/Articles/733256/).  
+
 \footnotetext{a partire dal kernel 2.6.32 è stato introdotto un meccanismo che
   identifica pagine di memoria identiche e le accorpa in una unica pagina
   (soggetta al \textit{copy-on-write} per successive modifiche); per evitare
@@ -4895,6 +4911,8 @@ si possono avere in concorrenza processi che utilizzano lo stesso file
 descriptor (si ricordi quanto visto in sez.~\ref{sec:file_adv_func}) con delle
 chiamate a \func{lseek}.
 
+% TODO trattare preadv2() e pwritev2(), introdotte con il kernel 4.6, vedi
+% http://lwn.net/Articles/670231/ ed il flag RWF_HIPRI
 
 
 \subsection{L'I/O diretto fra file descriptor: \func{sendfile} e
@@ -5436,6 +5454,9 @@ copiati i puntatori.
 % TODO?? dal 2.6.25 splice ha ottenuto il supporto per la ricezione su rete
 
 
+% TODO trattare qui copy_file_range (vedi http://lwn.net/Articles/659523/),
+% introdotta nel kernel 4.5
+
 \subsection{Gestione avanzata dell'accesso ai dati dei file}
 \label{sec:file_fadvise}