%% fileadv.tex
%%
- %% Copyright (C) 2000-2019 Simone Piccardi. Permission is granted to
+ %% Copyright (C) 2000-2023 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",
% TODO il supporto è stato reso opzionale nel 4.5, verrà eliminato nel futuro
% (vedi http://lwn.net/Articles/667210/)
+% è stato eliminato nel 5.15
\itindend{file~locking}
% http://lwn.net/Articles/343346/ (incluso nel 2.6.36)
% fanotify_mark() ha FAN_MARK_FILESYSTEM dal 4.20
% fanotify() ha FAN_OPEN_EXEC dal 4.21/5.0
+% fanotify() ha FAN_REPORT_PIDFD dal 5.14
+ % fanotify() ha FAN_FS_ERROR dal 5.16, vedi
+ % https://docs.kernel.org/admin-guide/filesystem-monitoring.html
+ % fanotify() ha FAN_RENAME dal 5.17, vedi https://kernelnewbies.org/Linux_5.17
\subsection{L'interfaccia POSIX per l'I/O asincrono}
% 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
+% https://git.kernel.org/linus/1a4e58cce84e
+% TODO: aggiunte MADV_POPULATE_READ e MADV_POPULATE_WRITE (vedi
+% https://lwn.net/Articles/861695/)
\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
% TODO: trattare i file seal, vedi fcntl / F_ADD_SEAL e memfd_create
+% TODO: con il kernel 5.14 è stata introdotta la syscall memfd_secret, vedi
+% https://lwn.net/Articles/835342/ https://lwn.net/Articles/812325/
+% https://lwn.net/Articles/865256/
+% https://lwn.net/ml/linux-mm/20210729082900.1581359-1-rppt@kernel.org/ e
+% https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1507f51255c9
+
% TODO trattare qui ioctl_ficlonerange ?
% TODO trattare qui close_range, vedi https://lwn.net/Articles/789023/
%% filedir.tex
%%
- %% Copyright (C) 2000-2019 Simone Piccardi. Permission is granted to
+ %% Copyright (C) 2000-2023 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",
% * http://lwn.net/Articles/159077/ e
% * Documentation/filesystems/sharedsubtree.txt
+ % TODO: (bassa priorità) trattare mount_setattr, vedi
+ % https://lwn.net/Articles/896255/
+
% TODO: (bassa priorità) non documentati ma presenti in sys/mount.h:
% * MS_POSIXACL
% * MS_KERNMOUNT
\end{funcproto}
% TODO rivedere gli errori
+% TODO aggiungere quotactl_fd introdotta con il kernel 5.14, vedi
+% https://lwn.net/Articles/859679/
La funzione richiede che il filesystem sul quale si vuole operare, che deve
essere specificato con il nome del relativo file di dispositivo nell'argomento
socket o una \textit{pipe}, creati prima di lanciare il processo che eseguirà
il codice non fidato.
+ % TODO: a partire dal kernel 6.6 è stato introdotto
+ % SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP that indicates that events from the
+ % watched process will be handled synchronously; that allows the kernel to
+ % schedule the two processes more efficiently (da LWN)
% TODO a partire dal kernel 3.5 è stato introdotto la possibilità di usare un
% terzo argomento se il secondo è SECCOMP_MODE_FILTER, vedi
%TODO: trattare PR_MPX_*_MANAGEMENT, dal 3.19, vedi
% https://lwn.net/Articles/582712/
%TODO: trattare PR_*NO_NEW_PRIVS, dal 3.5
+%TODO: trattare il core scheduling dal 5.14, vedi
+%https://lwn.net/Articles/780703/ e https://lwn.net/Articles/861251/
+%TODO: trattare PR_SPEC_L1D_FLUSH vedi https://git.kernel.org/linus/b7fe54f6c2d4
+
\begin{basedescript}{\desclabelwidth{1.5cm}\desclabelstyle{\nextlinelabel}}
\item[\constd{PR\_CAPBSET\_READ}] Controlla la disponibilità di una delle
% TODO documentare PR_SET_SYSCALL_USER_DISPATCH in 5.11, vedi
% https://lwn.net/Articles/826313/
+ % TODO documentare PR_SET_MDWE in 6.3, vedi
+ % https://git.kernel.org/linus/b507808ebce2
+
+
\label{sec:prctl_operation}
\end{basedescript}
% vedi anche l'ulteriore opzione "expedited" introdotta con il kernel 4.14
% (https://lwn.net/Articles/728795/)
+ % TODO trattare process_mrelease introdotta con il kernel 5.16, vedi:
+ % https://lwn.net/Articles/864184/
+
%%% Local Variables: