X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=948f7210a2f2eca265fbf11f21a32749b384ab6a;hp=15b32e484783f2ddabda09139565c947682d64c1;hb=c2e762abed93fe970c6c4d019a8bfe95fadb4efa;hpb=89048a8614cd82de7976ac1859a905b2ff182b50 diff --git a/fileadv.tex b/fileadv.tex index 15b32e4..948f721 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -2011,6 +2011,9 @@ questo caso la trattazione di un esempio concreto a quando avremo esaminato in dettaglio le caratteristiche dei socket; in particolare si potrà trovare un programma che utilizza questa interfaccia in sez.~\ref{sec:TCP_serv_epoll}. +% TODO: trattare epoll_wait2, introdotta con il kernel 5.11 (vedi +% https://lwn.net/Articles/837816/) + \itindend{epoll} @@ -2788,6 +2791,9 @@ definita la macro \macro{\_GNU\_SOURCE} prima di includere \headfile{fcntl.h}. \itindbeg{file~lease} +% TODO: questa funzionalità potrebbe essere estesa vedi: +% https://lwn.net/Articles/796000/ + La prima di queste funzionalità è quella del cosiddetto \textit{file lease}; questo è un meccanismo che consente ad un processo, detto \textit{lease holder}, di essere notificato quando un altro processo, chiamato a sua volta @@ -3883,7 +3889,9 @@ per il campo \var{aio\_sigevent} di \struct{aiocb}. % TODO trattare la nuova API per l'I/O asincrono (io_uring), introdotta con il % kernel 5.1, vedi https://lwn.net/Articles/776703/, -% https://lwn.net/ml/linux-fsdevel/20190112213011.1439-1-axboe@kernel.dk/ +% https://lwn.net/ml/linux-fsdevel/20190112213011.1439-1-axboe@kernel.dk/ +% altre feature correlate: +% dal 5.11: support for the shutdown(), renameat2(), and unlinkat() \section{Altre modalità di I/O avanzato} \label{sec:file_advanced_io} @@ -4721,7 +4729,11 @@ caching dei dati. % 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/). +% remain valid in the child (dalla notizia in +% https://lwn.net/Articles/733256/). +% TODO aggiunte MADV_COLD e MADV_PAGEOUT dal kernel 5.4, vedi +% https://git.kernel.org/linus/9c276cc65a58 e +% https://git.kernel.org/linus/1a4e58cce84e \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 @@ -5485,7 +5497,7 @@ copiati i puntatori. % TODO trattare qui copy_file_range (vedi http://lwn.net/Articles/659523/), -% introdotta nel kernel 4.5 +% introdotta nel kernel 4.5, vedi anche https://lwn.net/Articles/846403/ \subsection{Gestione avanzata dell'accesso ai dati dei file} \label{sec:file_fadvise} @@ -5835,15 +5847,27 @@ file uno \textit{sparse file} a posteriori. % TODO aggiungere FALLOC_FL_INSERT vedi http://lwn.net/Articles/629965/ - % TODO aggiungere i file hints di fcntl (F_GET_RW_HINT e compagnia) % con RWH_WRITE_LIFE_EXTREME e RWH_WRITE_LIFE_SHORT aggiunte con % il kernel 4.13 (vedi https://lwn.net/Articles/727385/) +\subsection{Altre funzionalità avanzate} +\label{sec:file_seal_et_al} + +da fare + % TODO non so dove trattarli, ma dal 2.6.39 ci sono i file handle, vedi % http://lwn.net/Articles/432757/ (probabilmente da associare alle % at-functions) +% TODO: trattare i file seal, vedi fcntl / F_ADD_SEAL e memfd_create + +% TODO trattare qui ioctl_ficlonerange ? + +% TODO trattare qui close_range, vedi https://lwn.net/Articles/789023/ +% dal 5.11 aggiunto CLOSE_RANGE_CLOEXEC, https://lwn.net/Articles/837816/ + + % LocalWords: dell'I locking multiplexing cap sez system call socket BSD GID % LocalWords: descriptor client deadlock NONBLOCK EAGAIN polling select kernel