mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
Merge tag 'docs-6.4' of git://git.lwn.net/linux
Pull documentation updates from Jonathan Corbet: "Commit volume in documentation is relatively low this time, but there is still a fair amount going on, including: - Reorganize the architecture-specific documentation under Documentation/arch This makes the structure match the source directory and helps to clean up the mess that is the top-level Documentation directory a bit. This work creates the new directory and moves x86 and most of the less-active architectures there. The current plan is to move the rest of the architectures in 6.5, with the patches going through the appropriate subsystem trees. - Some more Spanish translations and maintenance of the Italian translation - A new "Kernel contribution maturity model" document from Ted - A new tutorial on quickly building a trimmed kernel from Thorsten Plus the usual set of updates and fixes" * tag 'docs-6.4' of git://git.lwn.net/linux: (47 commits) media: Adjust column width for pdfdocs media: Fix building pdfdocs docs: clk: add documentation to log which clocks have been disabled docs: trace: Fix typo in ftrace.rst Documentation/process: always CC responsible lists docs: kmemleak: adjust to config renaming ELF: document some de-facto PT_* ABI quirks Documentation: arm: remove stih415/stih416 related entries docs: turn off "smart quotes" in the HTML build Documentation: firmware: Clarify firmware path usage docs/mm: Physical Memory: Fix grammar Documentation: Add document for false sharing dma-api-howto: typo fix docs: move m68k architecture documentation under Documentation/arch/ docs: move parisc documentation under Documentation/arch/ docs: move ia64 architecture docs under Documentation/arch/ docs: Move arc architecture docs under Documentation/arch/ docs: move nios2 documentation under Documentation/arch/ docs: move openrisc documentation under Documentation/arch/ docs: move superh documentation under Documentation/arch/ ...
This commit is contained in:
@@ -85,7 +85,7 @@ contact Bodo Bauer at bb@ricochet.net. We'll be happy to add them to this
|
||||
document.
|
||||
|
||||
The latest version of this document is available online at
|
||||
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
|
||||
https://www.kernel.org/doc/html/latest/filesystems/proc.html
|
||||
|
||||
If the above direction does not works for you, you could try the kernel
|
||||
mailing list at linux-kernel@vger.kernel.org and/or try to reach me at
|
||||
@@ -232,7 +232,7 @@ asynchronous manner and the value may not be very precise. To see a precise
|
||||
snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
|
||||
It's slow but very precise.
|
||||
|
||||
.. table:: Table 1-2: Contents of the status files (as of 4.19)
|
||||
.. table:: Table 1-2: Contents of the status fields (as of 4.19)
|
||||
|
||||
========================== ===================================================
|
||||
Field Content
|
||||
@@ -305,7 +305,7 @@ It's slow but very precise.
|
||||
========================== ===================================================
|
||||
|
||||
|
||||
.. table:: Table 1-3: Contents of the statm files (as of 2.6.8-rc3)
|
||||
.. table:: Table 1-3: Contents of the statm fields (as of 2.6.8-rc3)
|
||||
|
||||
======== =============================== ==============================
|
||||
Field Content
|
||||
@@ -323,7 +323,7 @@ It's slow but very precise.
|
||||
======== =============================== ==============================
|
||||
|
||||
|
||||
.. table:: Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
|
||||
.. table:: Table 1-4: Contents of the stat fields (as of 2.6.30-rc7)
|
||||
|
||||
============= ===============================================================
|
||||
Field Content
|
||||
@@ -1321,9 +1321,9 @@ many times the slaves link has failed.
|
||||
1.4 SCSI info
|
||||
-------------
|
||||
|
||||
If you have a SCSI host adapter in your system, you'll find a subdirectory
|
||||
named after the driver for this adapter in /proc/scsi. You'll also see a list
|
||||
of all recognized SCSI devices in /proc/scsi::
|
||||
If you have a SCSI or ATA host adapter in your system, you'll find a
|
||||
subdirectory named after the driver for this adapter in /proc/scsi.
|
||||
You'll also see a list of all recognized SCSI devices in /proc/scsi::
|
||||
|
||||
>cat /proc/scsi/scsi
|
||||
Attached devices:
|
||||
@@ -1449,16 +1449,18 @@ Various pieces of information about kernel activity are available in the
|
||||
since the system first booted. For a quick look, simply cat the file::
|
||||
|
||||
> cat /proc/stat
|
||||
cpu 2255 34 2290 22625563 6290 127 456 0 0 0
|
||||
cpu0 1132 34 1441 11311718 3675 127 438 0 0 0
|
||||
cpu1 1123 0 849 11313845 2614 0 18 0 0 0
|
||||
intr 114930548 113199788 3 0 5 263 0 4 [... lots more numbers ...]
|
||||
ctxt 1990473
|
||||
btime 1062191376
|
||||
processes 2915
|
||||
procs_running 1
|
||||
cpu 237902850 368826709 106375398 1873517540 1135548 0 14507935 0 0 0
|
||||
cpu0 60045249 91891769 26331539 468411416 495718 0 5739640 0 0 0
|
||||
cpu1 59746288 91759249 26609887 468860630 312281 0 4384817 0 0 0
|
||||
cpu2 59489247 92985423 26904446 467808813 171668 0 2268998 0 0 0
|
||||
cpu3 58622065 92190267 26529524 468436680 155879 0 2114478 0 0 0
|
||||
intr 8688370575 8 3373 0 0 0 0 0 0 1 40791 0 0 353317 0 0 0 0 224789828 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190974333 41958554 123983334 43 0 224593 0 0 0 <more 0's deleted>
|
||||
ctxt 22848221062
|
||||
btime 1605316999
|
||||
processes 746787147
|
||||
procs_running 2
|
||||
procs_blocked 0
|
||||
softirq 183433 0 21755 12 39 1137 231 21459 2263
|
||||
softirq 12121874454 100099120 3938138295 127375644 2795979 187870761 0 173808342 3072582055 52608 224184354
|
||||
|
||||
The very first "cpu" line aggregates the numbers in all of the other "cpuN"
|
||||
lines. These numbers identify the amount of time the CPU has spent performing
|
||||
@@ -1520,8 +1522,8 @@ softirq.
|
||||
Information about mounted ext4 file systems can be found in
|
||||
/proc/fs/ext4. Each mounted filesystem will have a directory in
|
||||
/proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
|
||||
/proc/fs/ext4/dm-0). The files in each per-device directory are shown
|
||||
in Table 1-12, below.
|
||||
/proc/fs/ext4/sda9 or /proc/fs/ext4/dm-0). The files in each per-device
|
||||
directory are shown in Table 1-12, below.
|
||||
|
||||
.. table:: Table 1-12: Files in /proc/fs/ext4/<devname>
|
||||
|
||||
@@ -1601,12 +1603,12 @@ can inadvertently disrupt your system, it is advisable to read both
|
||||
documentation and source before actually making adjustments. In any case, be
|
||||
very careful when writing to any of these files. The entries in /proc may
|
||||
change slightly between the 2.1.* and the 2.2 kernel, so if there is any doubt
|
||||
review the kernel documentation in the directory /usr/src/linux/Documentation.
|
||||
review the kernel documentation in the directory linux/Documentation.
|
||||
This chapter is heavily based on the documentation included in the pre 2.2
|
||||
kernels, and became part of it in version 2.2.1 of the Linux kernel.
|
||||
|
||||
Please see: Documentation/admin-guide/sysctl/ directory for descriptions of these
|
||||
entries.
|
||||
Please see: Documentation/admin-guide/sysctl/ directory for descriptions of
|
||||
these entries.
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
@@ -107,7 +107,7 @@ file /proc/filesystems.
|
||||
struct file_system_type
|
||||
-----------------------
|
||||
|
||||
This describes the filesystem. As of kernel 2.6.39, the following
|
||||
This describes the filesystem. The following
|
||||
members are defined:
|
||||
|
||||
.. code-block:: c
|
||||
@@ -115,14 +115,24 @@ members are defined:
|
||||
struct file_system_type {
|
||||
const char *name;
|
||||
int fs_flags;
|
||||
int (*init_fs_context)(struct fs_context *);
|
||||
const struct fs_parameter_spec *parameters;
|
||||
struct dentry *(*mount) (struct file_system_type *, int,
|
||||
const char *, void *);
|
||||
const char *, void *);
|
||||
void (*kill_sb) (struct super_block *);
|
||||
struct module *owner;
|
||||
struct file_system_type * next;
|
||||
struct list_head fs_supers;
|
||||
struct hlist_head fs_supers;
|
||||
|
||||
struct lock_class_key s_lock_key;
|
||||
struct lock_class_key s_umount_key;
|
||||
struct lock_class_key s_vfs_rename_key;
|
||||
struct lock_class_key s_writers_key[SB_FREEZE_LEVELS];
|
||||
|
||||
struct lock_class_key i_lock_key;
|
||||
struct lock_class_key i_mutex_key;
|
||||
struct lock_class_key invalidate_lock_key;
|
||||
struct lock_class_key i_mutex_dir_key;
|
||||
};
|
||||
|
||||
``name``
|
||||
@@ -132,6 +142,15 @@ members are defined:
|
||||
``fs_flags``
|
||||
various flags (i.e. FS_REQUIRES_DEV, FS_NO_DCACHE, etc.)
|
||||
|
||||
``init_fs_context``
|
||||
Initializes 'struct fs_context' ->ops and ->fs_private fields with
|
||||
filesystem-specific data.
|
||||
|
||||
``parameters``
|
||||
Pointer to the array of filesystem parameters descriptors
|
||||
'struct fs_parameter_spec'.
|
||||
More info in Documentation/filesystems/mount_api.rst.
|
||||
|
||||
``mount``
|
||||
the method to call when a new instance of this filesystem should
|
||||
be mounted
|
||||
@@ -148,7 +167,11 @@ members are defined:
|
||||
``next``
|
||||
for internal VFS use: you should initialize this to NULL
|
||||
|
||||
s_lock_key, s_umount_key: lockdep-specific
|
||||
``fs_supers``
|
||||
for internal VFS use: hlist of filesystem instances (superblocks)
|
||||
|
||||
s_lock_key, s_umount_key, s_vfs_rename_key, s_writers_key,
|
||||
i_lock_key, i_mutex_key, invalidate_lock_key, i_mutex_dir_key: lockdep-specific
|
||||
|
||||
The mount() method has the following arguments:
|
||||
|
||||
@@ -222,33 +245,42 @@ struct super_operations
|
||||
-----------------------
|
||||
|
||||
This describes how the VFS can manipulate the superblock of your
|
||||
filesystem. As of kernel 2.6.22, the following members are defined:
|
||||
filesystem. The following members are defined:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
struct super_operations {
|
||||
struct inode *(*alloc_inode)(struct super_block *sb);
|
||||
void (*destroy_inode)(struct inode *);
|
||||
void (*free_inode)(struct inode *);
|
||||
|
||||
void (*dirty_inode) (struct inode *, int flags);
|
||||
int (*write_inode) (struct inode *, int);
|
||||
void (*drop_inode) (struct inode *);
|
||||
void (*delete_inode) (struct inode *);
|
||||
int (*write_inode) (struct inode *, struct writeback_control *wbc);
|
||||
int (*drop_inode) (struct inode *);
|
||||
void (*evict_inode) (struct inode *);
|
||||
void (*put_super) (struct super_block *);
|
||||
int (*sync_fs)(struct super_block *sb, int wait);
|
||||
int (*freeze_super) (struct super_block *);
|
||||
int (*freeze_fs) (struct super_block *);
|
||||
int (*thaw_super) (struct super_block *);
|
||||
int (*unfreeze_fs) (struct super_block *);
|
||||
int (*statfs) (struct dentry *, struct kstatfs *);
|
||||
int (*remount_fs) (struct super_block *, int *, char *);
|
||||
void (*clear_inode) (struct inode *);
|
||||
void (*umount_begin) (struct super_block *);
|
||||
|
||||
int (*show_options)(struct seq_file *, struct dentry *);
|
||||
int (*show_devname)(struct seq_file *, struct dentry *);
|
||||
int (*show_path)(struct seq_file *, struct dentry *);
|
||||
int (*show_stats)(struct seq_file *, struct dentry *);
|
||||
|
||||
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
|
||||
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
||||
int (*nr_cached_objects)(struct super_block *);
|
||||
void (*free_cached_objects)(struct super_block *, int);
|
||||
struct dquot **(*get_dquots)(struct inode *);
|
||||
|
||||
long (*nr_cached_objects)(struct super_block *,
|
||||
struct shrink_control *);
|
||||
long (*free_cached_objects)(struct super_block *,
|
||||
struct shrink_control *);
|
||||
};
|
||||
|
||||
All methods are called without any locks being held, unless otherwise
|
||||
@@ -269,6 +301,11 @@ or bottom half).
|
||||
->alloc_inode was defined and simply undoes anything done by
|
||||
->alloc_inode.
|
||||
|
||||
``free_inode``
|
||||
this method is called from RCU callback. If you use call_rcu()
|
||||
in ->destroy_inode to free 'struct inode' memory, then it's
|
||||
better to release memory in this method.
|
||||
|
||||
``dirty_inode``
|
||||
this method is called by the VFS when an inode is marked dirty.
|
||||
This is specifically for the inode itself being marked dirty,
|
||||
@@ -296,8 +333,12 @@ or bottom half).
|
||||
practice of using "force_delete" in the put_inode() case, but
|
||||
does not have the races that the "force_delete()" approach had.
|
||||
|
||||
``delete_inode``
|
||||
called when the VFS wants to delete an inode
|
||||
``evict_inode``
|
||||
called when the VFS wants to evict an inode. Caller does
|
||||
*not* evict the pagecache or inode-associated metadata buffers;
|
||||
the method has to use truncate_inode_pages_final() to get rid
|
||||
of those. Caller makes sure async writeback cannot be running for
|
||||
the inode while (or after) ->evict_inode() is called. Optional.
|
||||
|
||||
``put_super``
|
||||
called when the VFS wishes to free the superblock
|
||||
@@ -308,14 +349,25 @@ or bottom half).
|
||||
superblock. The second parameter indicates whether the method
|
||||
should wait until the write out has been completed. Optional.
|
||||
|
||||
``freeze_super``
|
||||
Called instead of ->freeze_fs callback if provided.
|
||||
Main difference is that ->freeze_super is called without taking
|
||||
down_write(&sb->s_umount). If filesystem implements it and wants
|
||||
->freeze_fs to be called too, then it has to call ->freeze_fs
|
||||
explicitly from this callback. Optional.
|
||||
|
||||
``freeze_fs``
|
||||
called when VFS is locking a filesystem and forcing it into a
|
||||
consistent state. This method is currently used by the Logical
|
||||
Volume Manager (LVM).
|
||||
Volume Manager (LVM) and ioctl(FIFREEZE). Optional.
|
||||
|
||||
``thaw_super``
|
||||
called when VFS is unlocking a filesystem and making it writable
|
||||
again after ->freeze_super. Optional.
|
||||
|
||||
``unfreeze_fs``
|
||||
called when VFS is unlocking a filesystem and making it writable
|
||||
again.
|
||||
again after ->freeze_fs. Optional.
|
||||
|
||||
``statfs``
|
||||
called when the VFS needs to get filesystem statistics.
|
||||
@@ -324,22 +376,37 @@ or bottom half).
|
||||
called when the filesystem is remounted. This is called with
|
||||
the kernel lock held
|
||||
|
||||
``clear_inode``
|
||||
called then the VFS clears the inode. Optional
|
||||
|
||||
``umount_begin``
|
||||
called when the VFS is unmounting a filesystem.
|
||||
|
||||
``show_options``
|
||||
called by the VFS to show mount options for /proc/<pid>/mounts.
|
||||
called by the VFS to show mount options for /proc/<pid>/mounts
|
||||
and /proc/<pid>/mountinfo.
|
||||
(see "Mount Options" section)
|
||||
|
||||
``show_devname``
|
||||
Optional. Called by the VFS to show device name for
|
||||
/proc/<pid>/{mounts,mountinfo,mountstats}. If not provided then
|
||||
'(struct mount).mnt_devname' will be used.
|
||||
|
||||
``show_path``
|
||||
Optional. Called by the VFS (for /proc/<pid>/mountinfo) to show
|
||||
the mount root dentry path relative to the filesystem root.
|
||||
|
||||
``show_stats``
|
||||
Optional. Called by the VFS (for /proc/<pid>/mountstats) to show
|
||||
filesystem-specific mount statistics.
|
||||
|
||||
``quota_read``
|
||||
called by the VFS to read from filesystem quota file.
|
||||
|
||||
``quota_write``
|
||||
called by the VFS to write to filesystem quota file.
|
||||
|
||||
``get_dquots``
|
||||
called by quota to get 'struct dquot' array for a particular inode.
|
||||
Optional.
|
||||
|
||||
``nr_cached_objects``
|
||||
called by the sb cache shrinking function for the filesystem to
|
||||
return the number of freeable cached objects it contains.
|
||||
|
Reference in New Issue
Block a user